private ICategory<String> handleObjectArray( Class<?> clazz, Map<ConfigurationOptions, String> parameterOptions) { ICategory<String> objects = HandlingDispatcherHelper.getObjectHierarchy(this.grammar, clazz); logger.debug( "Objects in array are {} for class {} with parameterOptions {}", new Object[] {objects, clazz, parameterOptions}); Class<?> componentType = clazz.getComponentType(); ICategory<String> componentCategory = this.handle(componentType, parameterOptions); // TODO why is object variable not used // ICategory<String> object = this.getObjectHierarchy(this.grammar, // clazz.getComponentType()); Rule r1 = null; if (parameterOptions.get(ConfigurationOptions.ARRAY_DELIMITER).matches("\\s+")) { r1 = new Rule( objects, objects, WhitespaceCategoryDefinition.getAndSetRequiredWhitespace(this.grammar), objects); } else if (parameterOptions.get(ConfigurationOptions.ARRAY_DELIMITER).isEmpty()) { r1 = new Rule(objects, objects, objects); } else { Category ad = new Category(parameterOptions.get(ConfigurationOptions.ARRAY_DELIMITER), true); this.grammar.addCategory(ad); ICategory<String> WS = WhitespaceCategoryDefinition.getAndSetOptionalWhitespace(this.grammar); r1 = new Rule(objects, objects, WS, ad, WS, objects); // Rule r1a = new Rule(objects, objects, ad, WS, objects); // Rule r1b = new Rule(objects, objects, WS, ad, objects); // Rule r1c = new Rule(objects, objects, ad, objects); // this.grammar.addRules(r1c, r1b, r1a); } Rule r2 = new Rule(objects, componentCategory); this.grammar.addRules(r1, r2); this.grammar.addCategory(objects); return objects; }
private ICategory<String> handleObject(Class<?> clazz) { ICategory<String> object = HandlingDispatcherHelper.getObjectHierarchy(this.grammar, clazz); return object; }