private static Map<Class<? extends UrlRewriteFunctionDescriptor>,Map<String,Class<? extends UrlRewriteFunctionProcessor>>> loadProcessors() { Map<Class<? extends UrlRewriteFunctionDescriptor>,Map<String,Class<? extends UrlRewriteFunctionProcessor>>> descriptorMap = new HashMap<>(); ServiceLoader<UrlRewriteFunctionProcessor> processors = ServiceLoader.load( UrlRewriteFunctionProcessor.class ); for( UrlRewriteFunctionProcessor processor : processors ) { Class<? extends UrlRewriteFunctionDescriptor> descriptorInterface = getDescriptorInterface( processor ); Map<String,Class<? extends UrlRewriteFunctionProcessor>> typeMap = descriptorMap.get( descriptorInterface ); if( typeMap == null ) { typeMap = new HashMap<>(); descriptorMap.put( descriptorInterface, typeMap ); } String functionName = processor.name(); typeMap.put( functionName, processor.getClass() ); } return descriptorMap; }
private static Map<Class<? extends UrlRewriteFunctionDescriptor>,Map<String,Class<? extends UrlRewriteFunctionProcessor>>> loadProcessors() { Map<Class<? extends UrlRewriteFunctionDescriptor>,Map<String,Class<? extends UrlRewriteFunctionProcessor>>> descriptorMap = new HashMap<>(); ServiceLoader<UrlRewriteFunctionProcessor> processors = ServiceLoader.load( UrlRewriteFunctionProcessor.class ); for( UrlRewriteFunctionProcessor processor : processors ) { Class<? extends UrlRewriteFunctionDescriptor> descriptorInterface = getDescriptorInterface( processor ); Map<String,Class<? extends UrlRewriteFunctionProcessor>> typeMap = descriptorMap.get( descriptorInterface ); if( typeMap == null ) { typeMap = new HashMap<>(); descriptorMap.put( descriptorInterface, typeMap ); } String functionName = processor.name(); typeMap.put( functionName, processor.getClass() ); } return descriptorMap; }