setObjectManager(arguments.objectManager); setUtility(arguments.utility); return this; var object = getObjectManager().getObject(arguments.class); var primaryKey = object.getPrimaryKey(); if(primaryKey.getIsComposite()) { if(isStruct(arguments.key)) { return buildCompositeKey(object, key); } else { createObject("component", "transfer.com.dynamic.exception.IllegalKeyTypeException").init("struct", arguments.class); } } else { if(isSimpleValue(arguments.key)) { return cleanKey(primaryKey, arguments.key); } else { createObject("component", "transfer.com.dynamic.exception.IllegalKeyTypeException").init("simple", arguments.class); } } var iterator = arguments.compositeKey.getPropertyIterator(); var property = 0; var manytoone = 0; var parentOneToMany = 0; var key = StructNew(); var value = 0; while(iterator.hasNext()) { property = iterator.next(); value = arguments.query[property.getColumn()]; if(Len(value)) { key[property.getName()] = cleanKey(property, value); } } iterator = arguments.compositeKey.getManyToOneIterator(); while(iterator.hasNext()) { manytoone = iterator.next(); value = arguments.query[manytoone.getLink().getColumn()]; if(Len(value)) { key[manytoone.getName()] = cleanKey(manytoone.getLink().getToObject().getPrimaryKey(), value); } } iterator = arguments.compositeKey.getParentOneToManyIterator(); while(iterator.hasNext()) { parentOneToMany = iterator.next(); value = arguments.query[parentOneToMany.getLink().getColumn()]; if(Len(value)) { key["parent" & parentOneToMany.getLink().getToObject().getObjectName()] = cleanKey(parentOneToMany.getLink().getToObject().getPrimaryKey(), value); } } return key; var buffer = createObject("java", "java.lang.StringBuffer").init(); var compositeKey = arguments.object.getPrimaryKey(); var iterator = compositeKey.getPropertyIterator(); var property = 0; var manytoone = 0; var parentOneToMany = 0; var composite = 0; var pipe = "|"; var singleKey = 0; var name = 0; while(iterator.hasNext()) { property = iterator.next(); name = property.getName(); if(StructKeyExists(arguments.key, name)) { buffer.append(cleanKey(property, arguments.key[property.getName()])); } buffer.append(pipe); } iterator = compositeKey.getManyToOneIterator(); while(iterator.hasNext()) { manytoone = iterator.next(); singleKey = manytoone.getName(); if(StructKeyExists(arguments.key, singleKey)) { composite = getObjectManager().getObject(manytoone.getLink().getTo()); buffer.append(cleanKey(composite.getPrimaryKey(), arguments.key[singleKey])); } buffer.append(pipe); } iterator = compositeKey.getParentOneToManyIterator(); while(iterator.hasNext()) { parentOneToMany = iterator.next(); composite = getObjectManager().getObject(parentOneToMany.getLink().getTo()); singleKey = "parent" & composite.getObjectName(); if(StructKeyExists(arguments.key, singleKey)) { buffer.append(cleanKey(composite.getPrimaryKey(), arguments.key[singleKey])); } buffer.append(pipe); } return buffer.toString(); var type = arguments.property.getType(); if(ListFindNoCase("guid,uuid", type)) { arguments.key = UCase(arguments.key); } else if(type eq "numeric") { if(isNumeric(arguments.key)) { //could be 'null' so, check arguments.key = getUtility().trimZero(arguments.key); } } return JavaCast("string", arguments.key);