1 17 package org.eclipse.emf.mapping.command; 18 19 20 import java.util.Collection ; 21 22 import org.eclipse.emf.common.command.Command; 23 import org.eclipse.emf.edit.command.CommandParameter; 24 import org.eclipse.emf.mapping.Mapping; 25 import org.eclipse.emf.mapping.domain.MappingDomain; 26 27 28 public class TypeMatchMappingCommand extends MatchMappingCommand 29 { 30 34 public static Command create(MappingDomain domain, Mapping mapping) 35 { 36 return domain.createCommand(TypeMatchMappingCommand.class, new CommandParameter(mapping)); 37 } 38 39 public TypeMatchMappingCommand(MappingDomain domain, Mapping mapping) 40 { 41 super(domain, mapping); 42 } 43 44 protected boolean match(Object inputObject, Object outputObject, Collection mappedObjects) 45 { 46 if (mappedInputs.contains(inputObject) || !domain.getMappingRoot().getMappings(inputObject).isEmpty()) 47 { 48 return false; } 50 51 Object inputType = domain.getTypeClassifier(inputObject); 52 if (inputType != null) 53 { 54 Object outputType = domain.getTypeClassifier(outputObject); 55 Object convertedInputType = domain.getOutputTypeClassifier(inputType); 56 57 if (outputType != null && outputType == convertedInputType) 58 { 59 mappedObjects.add(inputObject); 60 return true; 61 } 62 } 63 64 return false; 65 } 66 67 } 68 | Popular Tags |