public boolean canRemoveMapping(Mapping mapping) { int enablementFlags = domain.getMappingEnablementFlags(); if (mapping.getNestedIn() == null || (enablementFlags & MappingDomain.ENABLE_UNMAPPED_PARENTS) == 0 && hasMappedChildren(mapping)) { return false; } return true; }
public boolean canCreateMapping(Collection<?> inputs, Collection<?> outputs, Mapping mapping) { if (domain == null) { return false; } int enablementFlags = domain.getMappingEnablementFlags(); if ((enablementFlags & MappingDomain.ENABLE_EMPTY_INPUTS) == 0 && inputs.size() == 0 || (enablementFlags & MappingDomain.ENABLE_EMPTY_OUTPUTS) == 0 && outputs.size() == 0 || inputs.size() == 0 && outputs.size() == 0 || (enablementFlags & MappingDomain.ENABLE_MULTIPLE_INPUTS) == 0 && inputs.size() > 1 || (enablementFlags & MappingDomain.ENABLE_MULTIPLE_OUTPUTS) == 0 && outputs.size() > 1 || (enablementFlags & MappingDomain.ENABLE_MULTIPLE_INPUT_MAPPINGS) == 0 && isMapped(inputs, mapping) || (enablementFlags & MappingDomain.ENABLE_MULTIPLE_OUTPUT_MAPPINGS) == 0 && isMapped(outputs, mapping) || (enablementFlags & MappingDomain.ENABLE_UNMAPPED_PARENTS) == 0 && !hasMappedParents(inputs, outputs) || (enablementFlags & MappingDomain.ENABLE_INCOMPATIBLE_METAOBJECTS) == 0 && !hasCompatibleMetaObjects(inputs, outputs) || (enablementFlags & MappingDomain.ENABLE_INCOMPATIBLE_TYPE_CLASSIFIERS) == 0 && !hasCompatibleTypes(inputs, outputs)) { return false; } for (Object input : inputs) { if (!isAttachedObject(input)) { return false; } } for (Object output : outputs) { if (!isAttachedObject(output)) { return false; } } return true; }