public void appendChildren(IUAElement[] children) { if (this.children == null && children.length > 0) { this.children = new ArrayList<>(4); } for (int i=0;i<children.length;i++) { appendChild(children[i] instanceof UAElement ? (UAElement)children[i] : UAElementFactory.newElement(children[i])); } }
public UAElement read(InputStream in, String charset) throws IOException, SAXException, ParserConfigurationException { ManagedBuilder managedBuilder = getManagedBuilder(); InputSource input = null; if (charset != null) { input = new InputSource(new InputStreamReader(in, charset)); } else { input = new InputSource(in); } Document document = managedBuilder.builder.parse(input); managedBuilder.inUse = false; prepareDocument(document); return UAElementFactory.newElement(document.getDocumentElement()); }
@Override public synchronized IUAElement[] getChildren() { if (children == null) { if (element.hasChildNodes()) { children = new ArrayList<>(4); Node node = element.getFirstChild(); while (node != null) { if (node.getNodeType() == Node.ELEMENT_NODE) { UAElement uaElement = UAElementFactory.newElement((Element)node); if (uaElement != null) { uaElement.parent = this; children.add(uaElement); } } node = node.getNextSibling(); } } else { return new UAElement[0]; } } return children.toArray(new UAElement[children.size()]); }
private void addUnfilteredExtensions(List<Element> elements, Element[] extensionContents) { for (int i = 0; i < extensionContents.length; i++) { Element extensionContentElement = extensionContents[i]; if (!UAContentFilter.isFiltered(UAElementFactory.newElement(extensionContentElement), IntroEvaluationContext.getContext())) { elements.add(extensionContentElement); } } }
/** * Resolve each include in this container's children. Includes are lazily * resolved on a per container basis, when the container is resolved. */ protected void resolveChildren() { AbstractIntroElement[] array = children.toArray(new AbstractIntroElement[children.size()]); for (int i=0;i<array.length;++i) { AbstractIntroElement child = array[i]; if (UAContentFilter.isFiltered(UAElementFactory.newElement(child.getElement()), IntroEvaluationContext.getContext())) { children.remove(child); } else if (child.getType() == AbstractIntroElement.INCLUDE) { resolveInclude((IntroInclude) child); } } resolved = true; }
private void loadExtensions(String locale) { extensionsByPath = new HashMap<>(); replacesByPath = new HashMap<>(); contentExtensionProviders = getContentExtensionProviders(); for (int i=0;i<contentExtensionProviders.length;++i) { IContentExtension[] extensions = contentExtensionProviders[i].getContentExtensions(locale); for (int j=0;j<extensions.length;++j) { ContentExtension extension = (extensions[j] instanceof ContentExtension ? (ContentExtension)extensions[j] : (ContentExtension)UAElementFactory.newElement(extensions[j])); String content = extension.getContent(); String path = extension.getPath(); if (content != null && path != null) { int type = extension.getType(); Map<String, List<ContentExtension>> map = (type == IContentExtension.CONTRIBUTION ? extensionsByPath : replacesByPath); content = normalizePath(content); path = normalizePath(path); extension.setContent(content); extension.setPath(path); List<ContentExtension> list = map.get(path); if (list == null) { list = new ArrayList<>(); map.put(path, list); } list.add(extension); } } } }
IIndex index = contrib[j].getIndex(); contribution.setIndex(index instanceof Index ? (Index) index : (Index) UAElementFactory.newElement(index)); contributions.add(contribution);
contribution.setLocale(contrib[j].getLocale()); ICriteriaDefinition criteria = contrib[j].getCriteriaDefinition(); contribution.setCriteriaDefinition(criteria instanceof CriteriaDefinition ? (CriteriaDefinition)criteria : (CriteriaDefinition)UAElementFactory.newElement(criteria)); contributions.add(contribution);
if (nodes[i].getNodeType() == Node.ELEMENT_NODE) { parent.insertBefore(UAElementFactory.newElement((Element)nodes[i]), uaElement);
contribution.setPrimary(contrib[j].isPrimary()); IToc toc = contrib[j].getToc(); Toc t = toc instanceof Toc ? (Toc)toc : (Toc)UAElementFactory.newElement(toc); t.setLinkTo(contrib[j].getLinkTo()); contribution.setToc(t);
private void processConfigExtension(Document dom, IConfigurationElement configExtElement) { // Find the target of this container extension, and add all its // children to target. Make sure to pass correct bundle and base to // propagate to all children. String base = getBase(configExtElement); Element[] extensionContentElements = loadExtensionContent(dom, configExtElement, base); for (int i = 0; i < extensionContentElements.length; i++) { Element extensionContentElement = extensionContentElements[i]; unresolvedConfigExt.add(new ExtensionContent(extensionContentElement, configExtElement)); } // Now load all pages and shared groups // from this config extension. Get the bundle from the extensions since they are // defined in other plugins. Bundle bundle = BundleUtil .getBundleFromConfigurationElement(configExtElement); Element[] pages = ModelUtil.getElementsByTagName(dom, AbstractIntroPage.TAG_PAGE); for (int j = 0; j < pages.length; j++) { // Create the model class for an intro Page. if (!UAContentFilter.isFiltered(UAElementFactory.newElement(pages[j]), IntroEvaluationContext.getContext())) { IntroPage page = new IntroPage(pages[j], bundle, base); page.setParent(this); children.add(page); } } }
documentPath = '/' + input.getPluginId() + input.getUrl().getPath(); processor.process(UAElementFactory.newElement(document.getDocumentElement()), documentPath);
domProcessor = new DocumentProcessor(new ProcessorHandler[] { new FilterHandler(IntroEvaluationContext.getContext()) }); UAElement element = UAElementFactory.newElement(dom.getDocumentElement()); domProcessor.process(element, null);