l.addAll(getAttributeDescriptors()); l.addAll(getReferenceDescriptors()); l.addAll(getCollectionDescriptors());
l.addAll(getAttributeDescriptors()); l.addAll(getReferenceDescriptors()); l.addAll(getCollectionDescriptors());
/** * Merge the attributes of a target model class descriptor <code>original</code> with * the attributes present in class descriptor <code>merge</code>. Returns a new set of * AttributeDescriptors. * * @param original the target model class descriptor * @param merge the additions * @return new set of AttributeDescriptors * @throws ModelMergerException if an error occurs during model mergining */ public static Set<AttributeDescriptor> mergeAttributes(ClassDescriptor original, ClassDescriptor merge) throws ModelMergerException { for (AttributeDescriptor merg : merge.getAttributeDescriptors()) { // nb: does not look for references in superclasses/superinterfaces AttributeDescriptor orig = original.getAttributeDescriptorByName(merg.getName()); if (orig != null) { if (!merg.getType().equals(orig.getType())) { String fldName = original.getName() + "." + orig.getName(); throw new ModelMergerException("type mismatch between attributes: " + fldName + ":" + merg.getType() + " != " + fldName + ":" + orig.getType()); } } } Set<AttributeDescriptor> newSet = new HashSet<AttributeDescriptor>(); newSet.addAll(cloneAttributeDescriptors(original.getAttributeDescriptors())); newSet.addAll(cloneAttributeDescriptors(merge.getAttributeDescriptors())); return newSet; }
/** * Merge the attributes of a target model class descriptor <code>original</code> with * the attributes present in class descriptor <code>merge</code>. Returns a new set of * AttributeDescriptors. * * @param original the target model class descriptor * @param merge the additions * @return new set of AttributeDescriptors * @throws ModelMergerException if an error occurs during model mergining */ public static Set<AttributeDescriptor> mergeAttributes(ClassDescriptor original, ClassDescriptor merge) throws ModelMergerException { for (AttributeDescriptor merg : merge.getAttributeDescriptors()) { // nb: does not look for references in superclasses/superinterfaces AttributeDescriptor orig = original.getAttributeDescriptorByName(merg.getName()); if (orig != null) { if (!merg.getType().equals(orig.getType())) { String fldName = original.getName() + "." + orig.getName(); throw new ModelMergerException("type mismatch between attributes: " + fldName + ":" + merg.getType() + " != " + fldName + ":" + orig.getType()); } } } Set<AttributeDescriptor> newSet = new HashSet<AttributeDescriptor>(); newSet.addAll(cloneAttributeDescriptors(original.getAttributeDescriptors())); newSet.addAll(cloneAttributeDescriptors(merge.getAttributeDescriptors())); return newSet; }
public void testCloneAttributeDescriptors() throws Exception { ClassDescriptor cld = testModel .getClassDescriptorByName("org.intermine.model.testmodel.Employee"); Set attrs = cld.getAttributeDescriptors(); Set copy = ModelMerger.cloneAttributeDescriptors(attrs); assertEquals(attrs, copy); }
/** * Construct a ClassDescriptor that takes on all the properties of <code>cld</code> * without attaching to a particular Model. * * @param cld the ClassDescriptor to clone * @return cloned ClassDescriptor */ protected static ClassDescriptor cloneClassDescriptor(ClassDescriptor cld) { // supers can't be an empty string String supers = StringUtil.join(cld.getSuperclassNames(), " "); if (supers != null && "".equals(supers)) { supers = null; } return new ClassDescriptor(cld.getName(), supers, cld.isInterface(), cloneAttributeDescriptors(cld.getAttributeDescriptors()), cloneReferenceDescriptors(cld.getReferenceDescriptors()), cloneCollectionDescriptors(cld.getCollectionDescriptors())); }
/** * Construct a ClassDescriptor that takes on all the properties of <code>cld</code> * without attaching to a particular Model. * * @param cld the ClassDescriptor to clone * @return cloned ClassDescriptor */ protected static ClassDescriptor cloneClassDescriptor(ClassDescriptor cld) { // supers can't be an empty string String supers = StringUtil.join(cld.getSuperclassNames(), " "); if (supers != null && "".equals(supers)) { supers = null; } return new ClassDescriptor(cld.getName(), supers, cld.isInterface(), cloneAttributeDescriptors(cld.getAttributeDescriptors()), cloneReferenceDescriptors(cld.getReferenceDescriptors()), cloneCollectionDescriptors(cld.getCollectionDescriptors())); }
cd.getCollectionDescriptors()); Set<AttributeDescriptor> adescs = cloneAttributeDescriptors( cd.getAttributeDescriptors()); Set<ReferenceDescriptor> rdescs = cloneReferenceDescriptors( cd.getReferenceDescriptors());
cd.getCollectionDescriptors()); Set<AttributeDescriptor> adescs = cloneAttributeDescriptors( cd.getAttributeDescriptors()); Set<ReferenceDescriptor> rdescs = cloneReferenceDescriptors( cd.getReferenceDescriptors());