protected void matchChildren(Collection<?> inputChildren, Collection<?> outputChildren) { ArrayList<Object> newMappedInputs = new ArrayList<Object>(); mappedInputs = newMappedInputs; MappingRoot mappingRoot = domain.getMappingRoot(); boolean multipleMatchesAllowed = (domain.getMappingEnablementFlags() & MappingDomain.ENABLE_MULTIPLE_INPUT_MAPPINGS) != 0; for (Object childOutput : outputChildren) { if (mappingRoot.getMappings(childOutput).isEmpty()) { Collection<Object> mappedObjects = new ArrayList<Object>(); for (Object childInput : inputChildren) { boolean canCreateMapping = multipleMatchesAllowed || (!mappedInputs.contains(childInput) && mappingRoot.getMappings(childInput).isEmpty()); if (canCreateMapping && match(childInput, childOutput, mappedObjects)) { break; } } if (!mappedObjects.isEmpty()) { newMappedInputs.addAll(mappedObjects); mappedObjects.add(childOutput); Command mapCommand = CreateMappingCommand.create(domain, mappedObjects); appendIfCanExecute(mapCommand); } } } }
protected void matchChildren(Collection<?> inputChildren, Collection<?> outputChildren) { ArrayList<Object> newMappedInputs = new ArrayList<Object>(); mappedInputs = newMappedInputs; MappingRoot mappingRoot = domain.getMappingRoot(); boolean multipleMatchesAllowed = (domain.getMappingEnablementFlags() & MappingDomain.ENABLE_MULTIPLE_INPUT_MAPPINGS) != 0; for (Object childOutput : outputChildren) { if (mappingRoot.getMappings(childOutput).isEmpty()) { Collection<Object> mappedObjects = new ArrayList<Object>(); for (Object childInput : inputChildren) { boolean canCreateMapping = multipleMatchesAllowed || (!mappedInputs.contains(childInput) && mappingRoot.getMappings(childInput).isEmpty()); if (canCreateMapping && match(childInput, childOutput, mappedObjects)) { break; } } if (!mappedObjects.isEmpty()) { newMappedInputs.addAll(mappedObjects); mappedObjects.add(childOutput); Command mapCommand = CreateMappingCommand.create(domain, mappedObjects); appendIfCanExecute(mapCommand); } } } }