/** * Add all the content handlers defined in the supplied configMap. * @param configMap The config map. */ public void addAll(ContentHandlerConfigMapTable<T> configMap) { Set<Map.Entry<String, List<ContentHandlerConfigMap<T>>>> mappingsES = configMap.table.entrySet(); for (Map.Entry<String, List<ContentHandlerConfigMap<T>>> elementMappings : mappingsES) { String elementName = elementMappings.getKey(); List<ContentHandlerConfigMap<T>> mappingList = elementMappings.getValue(); for (ContentHandlerConfigMap<T> mapping : mappingList) { addMapping(elementName, mapping); } } }
protected FilterBypass getFilterBypass(ContentHandlerConfigMapTable... visitorTables) { for(ContentHandlerConfigMapTable visitorTable : visitorTables) { if(visitorTable != null && visitorTable.getUserConfiguredCount() > 1) { // If any of the visitor tables have more than 1 visitor instance... return null; } } // Gather the possible set of FilterBypass instances... Set<FilterBypass> bypassSet = new HashSet<FilterBypass>(); for(ContentHandlerConfigMapTable visitorTable : visitorTables) { if(visitorTable != null && visitorTable.getUserConfiguredCount() == 1) { FilterBypass filterBypass = getFilterBypass(visitorTable); if(filterBypass != null) { bypassSet.add(filterBypass); } else { // There's a non-FilterBypass Visitor configured, so we can't // use the Bypass Filter return null; } } } // If there's just one FilterBypass instance, return it... if(bypassSet.size() == 1) { return bypassSet.iterator().next(); } // Otherwise we're not going to allow filter bypassing... return null; }
private boolean applyAssembly(ContentHandlerConfigMapTable<DOMVisitBefore> visitBefores, ContentHandlerConfigMapTable<DOMVisitAfter> visitAfters) { return !visitBefores.isEmpty() || !visitAfters.isEmpty() || (globalAssemblyBefores != null && !globalAssemblyBefores.isEmpty()) || (globalAssemblyAfters != null && !globalAssemblyAfters.isEmpty()); }
private <U extends ContentHandler> void printHandlerCharacteristics(ContentHandlerConfigMapTable<U> table, StringBuffer stringBuf, List<ContentHandler> printedHandlers) { Collection<List<ContentHandlerConfigMap<U>>> map = table.getTable().values(); for (List<ContentHandlerConfigMap<U>> mapList : map) { for (ContentHandlerConfigMap<U> configMap : mapList) { ContentHandler handler = configMap.getContentHandler(); boolean domSupported = VisitorConfigMap.isDOMVisitor(handler); boolean saxSupported = VisitorConfigMap.isSAXVisitor(handler); if(printedHandlers.contains(handler)) { continue; } else { printedHandlers.add(handler); } stringBuf.append("\t\t ") .append(domSupported ? "x" : " ") .append(" ") .append(saxSupported ? "x" : " ") .append(" ") .append(configMap.getResourceConfig()) .append("\n"); } } }
if (isRoot) { processingBefores = deliveryConfig.getProcessingVisitBefores().getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); processingAfters = deliveryConfig.getProcessingVisitAfters().getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); processingCleanables = deliveryConfig.getVisitCleanables().getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); } else { processingBefores = deliveryConfig.getProcessingVisitBefores().getMappings(elementName); processingAfters = deliveryConfig.getProcessingVisitAfters().getMappings(elementName); processingCleanables = deliveryConfig.getVisitCleanables().getMappings(elementName);
private void extractChildVisitors() { // Need to extract the child visitor impls from the visitBefores and the visitAfters. Need to make sure that we don't add // the same handler twice - handlers can impl both SAXVisitBefore and SAXVisitAfter. So, we don't add child handlers from the // visitBefores if they also impl SAXVisitAfter (avoiding adding where it impls both). We add from the visitafters list // if it impls SAXVisitAfter without checking for SAXVisitBefore (catching the case where it impls both). Set<Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitBefore>>>> beforeMappings = visitBefores.getTable().entrySet(); for (Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitBefore>>> beforeMapping : beforeMappings) { List<ContentHandlerConfigMap<SAXVisitBefore>> elementMappings = beforeMapping.getValue(); for (ContentHandlerConfigMap<SAXVisitBefore> elementMapping : elementMappings) { String elementName = beforeMapping.getKey(); SAXVisitBefore handler = elementMapping.getContentHandler(); // Wanna make sure we don't add the same handler twice, so if it also impls SAXVisitAfter, leave // that until we process the SAXVisitAfter handlers... if(handler instanceof SAXVisitChildren && !(handler instanceof SAXVisitAfter)) { childVisitors.addMapping(elementName, elementMapping.getResourceConfig(), (SAXVisitChildren) handler); } } } Set<Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitAfter>>>> afterMappings = visitAfters.getTable().entrySet(); for (Map.Entry<String,List<ContentHandlerConfigMap<SAXVisitAfter>>> afterMapping : afterMappings) { List<ContentHandlerConfigMap<SAXVisitAfter>> elementMappings = afterMapping.getValue(); for (ContentHandlerConfigMap<SAXVisitAfter> elementMapping : elementMappings) { String elementName = afterMapping.getKey(); SAXVisitAfter handler = elementMapping.getContentHandler(); if(handler instanceof SAXVisitChildren) { childVisitors.addMapping(elementName, elementMapping.getResourceConfig(), (SAXVisitChildren) handler); } } } }
public void sort() throws SmooksConfigurationException { assemblyVisitBefores.sort(Sorter.SortOrder.PRODUCERS_FIRST); assemblyVisitAfters.sort(Sorter.SortOrder.CONSUMERS_FIRST); processingVisitBefores.sort(Sorter.SortOrder.PRODUCERS_FIRST); processingVisitAfters.sort(Sorter.SortOrder.CONSUMERS_FIRST); }
public void addAll(VisitorConfigMap visitorConfigMap) { if(visitorConfigMap != null) { domAssemblyVisitBefores.addAll(visitorConfigMap.getDomAssemblyVisitBefores()); domAssemblyVisitAfters.addAll(visitorConfigMap.getDomAssemblyVisitAfters()); domProcessingVisitBefores.addAll(visitorConfigMap.getDomProcessingVisitBefores()); domProcessingVisitAfters.addAll(visitorConfigMap.getDomProcessingVisitAfters()); domSerializationVisitors.addAll(visitorConfigMap.getDomSerializationVisitors()); saxVisitBefores.addAll(visitorConfigMap.getSaxVisitBefores()); saxVisitAfters.addAll(visitorConfigMap.getSaxVisitAfters()); visitCleanables.addAll(visitorConfigMap.getVisitCleanables()); visitorCount += visitorConfigMap.getVisitorCount(); saxVisitorCount += visitorConfigMap.getSaxVisitorCount(); domVisitorCount += visitorConfigMap.getDomVisitorCount(); } } }
public MockContentDeliveryConfig() { setSmooksResourceConfigurations(new LinkedHashMap<String, List<SmooksResourceConfiguration>>()); setAssemblyVisitBefores(new ContentHandlerConfigMapTable()); setAssemblyVisitAfters(new ContentHandlerConfigMapTable()); setProcessingVisitBefores(new ContentHandlerConfigMapTable()); setProcessingVisitAfters(new ContentHandlerConfigMapTable()); setSerializationVisitors(new ContentHandlerConfigMapTable()); setVisitCleanables(new ContentHandlerConfigMapTable()); }
private <U extends ContentHandler> void printHandlerCharacteristics(ContentHandlerConfigMapTable<U> table, StringBuffer stringBuf, List<ContentHandler> printedHandlers) { Collection<List<ContentHandlerConfigMap<U>>> map = table.getTable().values(); for (List<ContentHandlerConfigMap<U>> mapList : map) { for (ContentHandlerConfigMap<U> configMap : mapList) { ContentHandler handler = configMap.getContentHandler(); boolean domSupported = VisitorConfigMap.isDOMVisitor(handler); boolean saxSupported = VisitorConfigMap.isSAXVisitor(handler); if(printedHandlers.contains(handler)) { continue; } else { printedHandlers.add(handler); } stringBuf.append("\t\t ") .append(domSupported ? "x" : " ") .append(" ") .append(saxSupported ? "x" : " ") .append(" ") .append(configMap.getResourceConfig()) .append("\n"); } } }
if (isRoot) { processingBefores = deliveryConfig.getProcessingVisitBefores().getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); processingAfters = deliveryConfig.getProcessingVisitAfters().getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); processingCleanables = deliveryConfig.getVisitCleanables().getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); } else { processingBefores = deliveryConfig.getProcessingVisitBefores().getMappings(elementName); processingAfters = deliveryConfig.getProcessingVisitAfters().getMappings(elementName); processingCleanables = deliveryConfig.getVisitCleanables().getMappings(elementName);
private void extractChildVisitors() { // Need to extract the child visitor impls from the visitBefores and the visitAfters. Need to make sure that we don't add // the same handler twice - handlers can impl both SAXVisitBefore and SAXVisitAfter. So, we don't add child handlers from the // visitBefores if they also impl SAXVisitAfter (avoiding adding where it impls both). We add from the visitafters list // if it impls SAXVisitAfter without checking for SAXVisitBefore (catching the case where it impls both). Set<Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitBefore>>>> beforeMappings = visitBefores.getTable().entrySet(); for (Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitBefore>>> beforeMapping : beforeMappings) { List<ContentHandlerConfigMap<SAXVisitBefore>> elementMappings = beforeMapping.getValue(); for (ContentHandlerConfigMap<SAXVisitBefore> elementMapping : elementMappings) { String elementName = beforeMapping.getKey(); SAXVisitBefore handler = elementMapping.getContentHandler(); // Wanna make sure we don't add the same handler twice, so if it also impls SAXVisitAfter, leave // that until we process the SAXVisitAfter handlers... if(handler instanceof SAXVisitChildren && !(handler instanceof SAXVisitAfter)) { childVisitors.addMapping(elementName, elementMapping.getResourceConfig(), (SAXVisitChildren) handler); } } } Set<Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitAfter>>>> afterMappings = visitAfters.getTable().entrySet(); for (Map.Entry<String,List<ContentHandlerConfigMap<SAXVisitAfter>>> afterMapping : afterMappings) { List<ContentHandlerConfigMap<SAXVisitAfter>> elementMappings = afterMapping.getValue(); for (ContentHandlerConfigMap<SAXVisitAfter> elementMapping : elementMappings) { String elementName = afterMapping.getKey(); SAXVisitAfter handler = elementMapping.getContentHandler(); if(handler instanceof SAXVisitChildren) { childVisitors.addMapping(elementName, elementMapping.getResourceConfig(), (SAXVisitChildren) handler); } } } }
public void addAll(VisitorConfigMap visitorConfigMap) { if(visitorConfigMap != null) { domAssemblyVisitBefores.addAll(visitorConfigMap.getDomAssemblyVisitBefores()); domAssemblyVisitAfters.addAll(visitorConfigMap.getDomAssemblyVisitAfters()); domProcessingVisitBefores.addAll(visitorConfigMap.getDomProcessingVisitBefores()); domProcessingVisitAfters.addAll(visitorConfigMap.getDomProcessingVisitAfters()); domSerializationVisitors.addAll(visitorConfigMap.getDomSerializationVisitors()); saxVisitBefores.addAll(visitorConfigMap.getSaxVisitBefores()); saxVisitAfters.addAll(visitorConfigMap.getSaxVisitAfters()); visitCleanables.addAll(visitorConfigMap.getVisitCleanables()); visitorCount += visitorConfigMap.getVisitorCount(); saxVisitorCount += visitorConfigMap.getSaxVisitorCount(); domVisitorCount += visitorConfigMap.getDomVisitorCount(); } } }
public MockContentDeliveryConfig() { setSmooksResourceConfigurations(new LinkedHashMap<String, List<SmooksResourceConfiguration>>()); setAssemblyVisitBefores(new ContentHandlerConfigMapTable()); setAssemblyVisitAfters(new ContentHandlerConfigMapTable()); setProcessingVisitBefores(new ContentHandlerConfigMapTable()); setProcessingVisitAfters(new ContentHandlerConfigMapTable()); setSerializationVisitors(new ContentHandlerConfigMapTable()); setVisitCleanables(new ContentHandlerConfigMapTable()); }
private <U extends ContentHandler> void printHandlerCharacteristics(ContentHandlerConfigMapTable<U> table, StringBuffer stringBuf, List<ContentHandler> printedHandlers) { Collection<List<ContentHandlerConfigMap<U>>> map = table.getTable().values(); for (List<ContentHandlerConfigMap<U>> mapList : map) { for (ContentHandlerConfigMap<U> configMap : mapList) { ContentHandler handler = configMap.getContentHandler(); boolean domSupported = VisitorConfigMap.isDOMVisitor(handler); boolean saxSupported = VisitorConfigMap.isSAXVisitor(handler); if(printedHandlers.contains(handler)) { continue; } else { printedHandlers.add(handler); } stringBuf.append("\t\t ") .append(domSupported ? "x" : " ") .append(" ") .append(saxSupported ? "x" : " ") .append(" ") .append(configMap.getResourceConfig()) .append("\n"); } } }
if (isRoot) { elementVisitBefores = visitBeforeTable.getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); elementVisitAfters = visitAfterTable.getMappings(new String[]{SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR, elementName}); } else { elementVisitBefores = visitBeforeTable.getMappings(elementName); elementVisitAfters = visitAfterTable.getMappings(elementName);
private void extractChildVisitors() { // Need to extract the child visitor impls from the visitBefores and the visitAfters. Need to make sure that we don't add // the same handler twice - handlers can impl both SAXVisitBefore and SAXVisitAfter. So, we don't add child handlers from the // visitBefores if they also impl SAXVisitAfter (avoiding adding where it impls both). We add from the visitafters list // if it impls SAXVisitAfter without checking for SAXVisitBefore (catching the case where it impls both). Set<Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitBefore>>>> beforeMappings = visitBefores.getTable().entrySet(); for (Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitBefore>>> beforeMapping : beforeMappings) { List<ContentHandlerConfigMap<SAXVisitBefore>> elementMappings = beforeMapping.getValue(); for (ContentHandlerConfigMap<SAXVisitBefore> elementMapping : elementMappings) { String elementName = beforeMapping.getKey(); SAXVisitBefore handler = elementMapping.getContentHandler(); // Wanna make sure we don't add the same handler twice, so if it also impls SAXVisitAfter, leave // that until we process the SAXVisitAfter handlers... if(handler instanceof SAXVisitChildren && !(handler instanceof SAXVisitAfter)) { childVisitors.addMapping(elementName, elementMapping.getResourceConfig(), (SAXVisitChildren) handler); } } } Set<Map.Entry<String, List<ContentHandlerConfigMap<SAXVisitAfter>>>> afterMappings = visitAfters.getTable().entrySet(); for (Map.Entry<String,List<ContentHandlerConfigMap<SAXVisitAfter>>> afterMapping : afterMappings) { List<ContentHandlerConfigMap<SAXVisitAfter>> elementMappings = afterMapping.getValue(); for (ContentHandlerConfigMap<SAXVisitAfter> elementMapping : elementMappings) { String elementName = afterMapping.getKey(); SAXVisitAfter handler = elementMapping.getContentHandler(); if(handler instanceof SAXVisitChildren) { childVisitors.addMapping(elementName, elementMapping.getResourceConfig(), (SAXVisitChildren) handler); } } } }
/** * Add all the content handlers defined in the supplied configMap. * @param configMap The config map. */ public void addAll(ContentHandlerConfigMapTable<T> configMap) { Set<Map.Entry<String, List<ContentHandlerConfigMap<T>>>> mappingsES = configMap.table.entrySet(); for (Map.Entry<String, List<ContentHandlerConfigMap<T>>> elementMappings : mappingsES) { String elementName = elementMappings.getKey(); List<ContentHandlerConfigMap<T>> mappingList = elementMappings.getValue(); for (ContentHandlerConfigMap<T> mapping : mappingList) { addMapping(elementName, mapping); } } }
public void sort() throws SmooksConfigurationException { assemblyVisitBefores.sort(Sorter.SortOrder.PRODUCERS_FIRST); assemblyVisitAfters.sort(Sorter.SortOrder.CONSUMERS_FIRST); processingVisitBefores.sort(Sorter.SortOrder.PRODUCERS_FIRST); processingVisitAfters.sort(Sorter.SortOrder.CONSUMERS_FIRST); }