private boolean isCircularInclude(String a_href) { if (getShortFileName().equals(a_href)) { return true; } // if ModuleManager manager = ModuleManager.getSingletonInstance(); XInclude[] includes = m_glyph.getBody().getInclude(); int i; for (i = 0; i < includes.length; i++) { XInclude include = includes[i]; GlyphFile child = manager.getGlyphFile(include.getHref()); if (child.isCircularInclude(a_href)) { return true; } // if } // for i return false; }
public void addInclude(XInclude a_include) throws CircularIncludeException { if (isCircularInclude(a_include.getHref())) { throw new CircularIncludeException(); } // if m_actives.unselectAll(); m_actives.addActive((GlyphObject) a_include); m_glyph.getBody().addInclude(a_include); m_history.record("addInclude"); }
/** used for cut and paste. */ public void addObjectFromClipboard(String a_value) throws CircularIncludeException { Reader reader = new StringReader(a_value); Document document = null; try { document = UJAXP.getDocument(reader); } catch (Exception e) { e.printStackTrace(); return; } // try-catch Element root = document.getDocumentElement(); if (!root.getNodeName().equals("clipboard")) { return; } // if Node child; for (child = root.getFirstChild(); child != null; child = child.getNextSibling()) { if (!(child instanceof Element)) { continue; } // if Element element = (Element) child; IGlyphFactory factory = GlyphFactory.getFactory(); if (XModule.isMatch(element)) { EModuleInvoke module = (EModuleInvoke) factory.createXModule(element); addModule(module); continue; } // if if (XContour.isMatch(element)) { EContour contour = (EContour) factory.createXContour(element); addContour(contour); continue; } // if if (XInclude.isMatch(element)) { EIncludeInvoke include = (EIncludeInvoke) factory.createXInclude(element); addInclude(include); continue; } // if } // while }