Object bindComplexBlock(ComplexObjectBlock block) throws DADLBindingException, RMObjectBuildingException { if (block instanceof SingleAttributeObjectBlock) { SingleAttributeObjectBlock singleBlock = (SingleAttributeObjectBlock) block; // a special case to deal with empty attribute list if("LIST".equalsIgnoreCase(singleBlock.getTypeIdentifier()) && singleBlock.getAttributeValues().isEmpty()) { return new ArrayList(); } return bindAttributes(singleBlock.getTypeIdentifier(), singleBlock .getAttributeValues()); } else { MultipleAttributeObjectBlock multiBlock = (MultipleAttributeObjectBlock) block; List<KeyedObject> list = multiBlock.getKeyObjects(); // TODO assume list? List<Object> valueList = new ArrayList<Object>(); for(KeyedObject ko : list) { Object key = ko.getKey().getValue(); Object value = bindObjectBlock(ko.getObject()); valueList.add(value); } return valueList; } }
final public MultipleAttributeObjectBlock multiple_attr_object_block() throws ParseException { String type = null; KeyedObject obj; List < KeyedObject > keyedObjects = new ArrayList < KeyedObject > (); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SYM_L_PARENTHESIS: type = type_identifier(); break; default: jj_la1[2] = jj_gen; ; } jj_consume_token(SYM_LT); label_1: while (true) { obj = keyed_object(); keyedObjects.add(obj); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SYM_L_BRACKET: ; break; default: jj_la1[3] = jj_gen; break label_1; } } jj_consume_token(SYM_GT); {if (true) return new MultipleAttributeObjectBlock(type, keyedObjects);} throw new Error("Missing return statement in function"); }
final public MultipleAttributeObjectBlock multiple_attr_object_block() throws ParseException { String type = null; KeyedObject obj; List < KeyedObject > keyedObjects = new ArrayList < KeyedObject > (); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SYM_L_PARENTHESIS: type = type_identifier(); break; default: jj_la1[2] = jj_gen; ; } jj_consume_token(SYM_LT); label_1: while (true) { obj = keyed_object(); keyedObjects.add(obj); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SYM_L_BRACKET: ; break; default: jj_la1[3] = jj_gen; break label_1; } } jj_consume_token(SYM_GT); {if (true) return new MultipleAttributeObjectBlock(type, keyedObjects);} throw new Error("Missing return statement in function"); }
Object bindComplexBlock(ComplexObjectBlock block) throws DADLBindingException, RMObjectBuildingException { if (block instanceof SingleAttributeObjectBlock) { SingleAttributeObjectBlock singleBlock = (SingleAttributeObjectBlock) block; // a special case to deal with empty attribute list if("LIST".equalsIgnoreCase(singleBlock.getTypeIdentifier()) && singleBlock.getAttributeValues().isEmpty()) { return new ArrayList(); } return bindAttributes(singleBlock.getTypeIdentifier(), singleBlock .getAttributeValues()); } else { MultipleAttributeObjectBlock multiBlock = (MultipleAttributeObjectBlock) block; List<KeyedObject> list = multiBlock.getKeyObjects(); // TODO assume list? List<Object> valueList = new ArrayList<Object>(); for(KeyedObject ko : list) { Object key = ko.getKey().getValue(); Object value = bindObjectBlock(ko.getObject()); valueList.add(value); } return valueList; } }
List<KeyedObject> list = multiBlock.getKeyObjects();