@SuppressWarnings("WeakerAccess") public <T extends Visitor> void addToExecutionLifecycleSets(ContentHandlerConfigMapTable<T> handlerSet) { Collection<List<ContentHandlerConfigMap<T>>> mapEntries = handlerSet.getTable().values(); for(List<ContentHandlerConfigMap<T>> mapList : mapEntries) { for(ContentHandlerConfigMap<T> map : mapList) { if(map.isLifecycleInitializable()) { execInitializableHandlers.add((ExecutionLifecycleInitializable) map.getContentHandler()); } if(map.isLifecycleCleanable()) { execCleanableHandlers.add((ExecutionLifecycleCleanable) map.getContentHandler()); } } } }
private <T extends Visitor> FilterBypass getFilterBypass(ContentHandlerConfigMapTable<T> visitorTable) { Set<Entry<String, List<ContentHandlerConfigMap<T>>>> entries = visitorTable.getTable().entrySet(); for(Entry<String, List<ContentHandlerConfigMap<T>>> entry : entries) { ContentHandlerConfigMap<T> configMap = entry.getValue().get(0); SmooksResourceConfiguration resourceConfig = configMap.getResourceConfig(); if(!resourceConfig.isDefaultResource()) { if(resourceConfig.getTargetElement().equals(SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR)) { T visitor = configMap.getContentHandler(); if(visitor instanceof FilterBypass) { return (FilterBypass) visitor; } } // Make sure we only iterate once... return null; } } return null; } }
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"); } } }
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"); } } }
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"); } } }
public <T extends Visitor> void addToExecutionLifecycleSets(ContentHandlerConfigMapTable<T> handlerSet) { Collection<List<ContentHandlerConfigMap<T>>> mapEntries = handlerSet.getTable().values(); for(List<ContentHandlerConfigMap<T>> mapList : mapEntries) { for(ContentHandlerConfigMap<T> map : mapList) { if(map.isLifecycleInitializable()) { execInitializableHandlers.add((ExecutionLifecycleInitializable) map.getContentHandler()); } if(map.isLifecycleCleanable()) { execCleanableHandlers.add((ExecutionLifecycleCleanable) map.getContentHandler()); } } } }
@SuppressWarnings("WeakerAccess") public <T extends Visitor> void addToExecutionLifecycleSets(ContentHandlerConfigMapTable<T> handlerSet) { Collection<List<ContentHandlerConfigMap<T>>> mapEntries = handlerSet.getTable().values(); for(List<ContentHandlerConfigMap<T>> mapList : mapEntries) { for(ContentHandlerConfigMap<T> map : mapList) { if(map.isLifecycleInitializable()) { execInitializableHandlers.add((ExecutionLifecycleInitializable) map.getContentHandler()); } if(map.isLifecycleCleanable()) { execCleanableHandlers.add((ExecutionLifecycleCleanable) map.getContentHandler()); } } } }
@SuppressWarnings("WeakerAccess") public <T extends Visitor> void addToExecutionLifecycleSets(ContentHandlerConfigMapTable<T> handlerSet) { Collection<List<ContentHandlerConfigMap<T>>> mapEntries = handlerSet.getTable().values(); for(List<ContentHandlerConfigMap<T>> mapList : mapEntries) { for(ContentHandlerConfigMap<T> map : mapList) { if(map.isLifecycleInitializable()) { execInitializableHandlers.add((ExecutionLifecycleInitializable) map.getContentHandler()); } if(map.isLifecycleCleanable()) { execCleanableHandlers.add((ExecutionLifecycleCleanable) map.getContentHandler()); } } } }
private <T extends Visitor> FilterBypass getFilterBypass(ContentHandlerConfigMapTable<T> visitorTable) { Set<Entry<String, List<ContentHandlerConfigMap<T>>>> entries = visitorTable.getTable().entrySet(); for(Entry<String, List<ContentHandlerConfigMap<T>>> entry : entries) { ContentHandlerConfigMap<T> configMap = entry.getValue().get(0); SmooksResourceConfiguration resourceConfig = configMap.getResourceConfig(); if(!resourceConfig.isDefaultResource()) { if(resourceConfig.getTargetElement().equals(SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR)) { T visitor = configMap.getContentHandler(); if(visitor instanceof FilterBypass) { return (FilterBypass) visitor; } } // Make sure we only iterate once... return null; } } return null; } }
private <T extends Visitor> FilterBypass getFilterBypass(ContentHandlerConfigMapTable<T> visitorTable) { Set<Entry<String, List<ContentHandlerConfigMap<T>>>> entries = visitorTable.getTable().entrySet(); for(Entry<String, List<ContentHandlerConfigMap<T>>> entry : entries) { ContentHandlerConfigMap<T> configMap = entry.getValue().get(0); SmooksResourceConfiguration resourceConfig = configMap.getResourceConfig(); if(!resourceConfig.isDefaultResource()) { if(resourceConfig.getTargetElement().equals(SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR)) { T visitor = configMap.getContentHandler(); if(visitor instanceof FilterBypass) { return (FilterBypass) visitor; } } // Make sure we only iterate once... return null; } } return null; } }
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 " + (domSupported?"x":" ") + " " + (saxSupported?"x":" ") + " " + configMap.getResourceConfig() + "\n"); } } }
private <T extends Visitor> FilterBypass getFilterBypass(ContentHandlerConfigMapTable<T> visitorTable) { Set<Entry<String, List<ContentHandlerConfigMap<T>>>> entries = visitorTable.getTable().entrySet(); for(Entry<String, List<ContentHandlerConfigMap<T>>> entry : entries) { ContentHandlerConfigMap<T> configMap = entry.getValue().get(0); SmooksResourceConfiguration resourceConfig = configMap.getResourceConfig(); if(!resourceConfig.isDefaultResource()) { if(resourceConfig.getTargetElement().equals(SmooksResourceConfiguration.DOCUMENT_FRAGMENT_SELECTOR)) { T visitor = configMap.getContentHandler(); if(visitor instanceof FilterBypass) { return (FilterBypass) visitor; } } // Make sure we only iterate once... return null; } } return null; } }
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); } } } }
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); } } } }
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); } } } }
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); } } } }
private void assertSelectorsNotAccessingText(ContentHandlerConfigMapTable saxVisitorMap) { Map<String, List<ContentHandlerConfigMap<? extends SAXVisitor>>> table = saxVisitorMap.getTable(); Collection<List<ContentHandlerConfigMap<? extends SAXVisitor>>> contentHandlerMaps = table.values(); for(List<ContentHandlerConfigMap<? extends SAXVisitor>> contentHandlerMapList : contentHandlerMaps) { for(ContentHandlerConfigMap<? extends SAXVisitor> contentHandlerMap : contentHandlerMapList) { SmooksResourceConfiguration resourceConfig = contentHandlerMap.getResourceConfig(); SelectorStep selectorStep = resourceConfig.getSelectorStep(); if(selectorStep.accessesText()) { throw new SmooksConfigurationException("Unsupported selector '" + selectorStep.getXPathExpression() + "' on resource '" + resourceConfig + "'. The 'text()' XPath token is only supported on SAX Visitor implementations that implement the " + SAXVisitAfter.class.getName() + " interface only. Class '" + resourceConfig.getResource() + "' implements other SAX Visitor interfaces."); } } } }
private void assertSelectorsNotAccessingText(ContentHandlerConfigMapTable saxVisitorMap) { Map<String, List<ContentHandlerConfigMap<? extends SAXVisitor>>> table = saxVisitorMap.getTable(); Collection<List<ContentHandlerConfigMap<? extends SAXVisitor>>> contentHandlerMaps = table.values(); for(List<ContentHandlerConfigMap<? extends SAXVisitor>> contentHandlerMapList : contentHandlerMaps) { for(ContentHandlerConfigMap<? extends SAXVisitor> contentHandlerMap : contentHandlerMapList) { SmooksResourceConfiguration resourceConfig = contentHandlerMap.getResourceConfig(); SelectorStep selectorStep = resourceConfig.getSelectorStep(); if(selectorStep.accessesText()) { throw new SmooksConfigurationException("Unsupported selector '" + selectorStep.getXPathExpression() + "' on resource '" + resourceConfig + "'. The 'text()' XPath token is only supported on SAX Visitor implementations that implement the " + SAXVisitAfter.class.getName() + " interface only. Class '" + resourceConfig.getResource() + "' implements other SAX Visitor interfaces."); } } } }
private void assertSelectorsNotAccessingText(ContentHandlerConfigMapTable saxVisitorMap) { Map<String, List<ContentHandlerConfigMap<? extends SAXVisitor>>> table = saxVisitorMap.getTable(); Collection<List<ContentHandlerConfigMap<? extends SAXVisitor>>> contentHandlerMaps = table.values(); for(List<ContentHandlerConfigMap<? extends SAXVisitor>> contentHandlerMapList : contentHandlerMaps) { for(ContentHandlerConfigMap<? extends SAXVisitor> contentHandlerMap : contentHandlerMapList) { SmooksResourceConfiguration resourceConfig = contentHandlerMap.getResourceConfig(); SelectorStep selectorStep = resourceConfig.getSelectorStep(); if(selectorStep.accessesText()) { throw new SmooksConfigurationException("Unsupported selector '" + selectorStep.getXPathExpression() + "' on resource '" + resourceConfig + "'. The 'text()' XPath token is only supported on SAX Visitor implementations that implement the " + SAXVisitAfter.class.getName() + " interface only. Class '" + resourceConfig.getResource() + "' implements other SAX Visitor interfaces."); } } } }
private void assertSelectorsNotAccessingText(ContentHandlerConfigMapTable saxVisitorMap) { Map<String, List<ContentHandlerConfigMap<? extends SAXVisitor>>> table = saxVisitorMap.getTable(); Collection<List<ContentHandlerConfigMap<? extends SAXVisitor>>> contentHandlerMaps = table.values(); for(List<ContentHandlerConfigMap<? extends SAXVisitor>> contentHandlerMapList : contentHandlerMaps) { for(ContentHandlerConfigMap<? extends SAXVisitor> contentHandlerMap : contentHandlerMapList) { SmooksResourceConfiguration resourceConfig = contentHandlerMap.getResourceConfig(); SelectorStep selectorStep = resourceConfig.getSelectorStep(); if(selectorStep.accessesText()) { throw new SmooksConfigurationException("Unsupported selector '" + selectorStep.getXPathExpression() + "' on resource '" + resourceConfig + "'. The 'text()' XPath token is only supported on SAX Visitor implementations that implement the " + SAXVisitAfter.class.getName() + " interface only. Class '" + resourceConfig.getResource() + "' implements other SAX Visitor interfaces."); } } } }