@Override public void endElement(String uri, String localName, String qName) { if ("class".equals(qName)) { classes.add(new ClassDescriptor(cls.name, cls.supers, cls.isInterface, cls.attributes, cls.references, cls.collections)); } } }
@Override public void endElement(String uri, String localName, String qName) { if ("class".equals(qName)) { classes.add(new ClassDescriptor(cls.name, cls.supers, cls.isInterface, cls.attributes, cls.references, cls.collections)); } } }
public void testConstructNameNull() { try { new ClassDescriptor("", null, false, noAttrs, noRefs, noColls); fail("Expected: IllegalArgumentException"); } catch (IllegalArgumentException e) { } }
public void testGenerateClassDescriptorHasSuperclass() throws Exception { ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, false, new HashSet(), new HashSet(), new HashSet()); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", "package.name.Class1", false, new HashSet(), new HashSet(), new HashSet()); Model model = new Model("model", "package.name", new HashSet(Arrays.asList(new Object[] {cld1, cld2}))); String expected = "public class Class2 extends package.name.Class1" + ENDL + "{" + ENDL + INDENT + "@Override public boolean equals(Object o) { return (o instanceof Class2 && id != null) ? id.equals(((Class2)o).getId()) : this == o; }" + ENDL + INDENT + "@Override public int hashCode() { return (id != null) ? id.hashCode() : super.hashCode(); }" + ENDL + INDENT + "@Override public String toString() { return \"Class2 [id=\" + id + \"]\"; }" + ENDL; assertTrue(expected, mo.generate(cld2, false).contains(expected)); }
public void testGenerateHashCode() throws Exception { ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, false, new HashSet(), new HashSet(), new HashSet()); Model model = new Model("model", "package.name", new HashSet(Collections.singleton(cld1))); String expected = INDENT + "@Override public int hashCode() { return (id != null) ? id.hashCode() : super.hashCode(); }" + ENDL; assertEquals(expected, mo.generateHashCode(cld1)); }
public void testGenerateClassDescriptorIsInterface() throws Exception { ClassDescriptor cld1 = new ClassDescriptor("package.name.Interface1", null, true, new HashSet(), new HashSet(), new HashSet()); Model model = new Model("model", "package.name", new HashSet(Collections.singleton(cld1))); String expected = "package package.name;" + ENDL + ENDL + "public interface Interface1 extends org.intermine.model.InterMineObject" + ENDL + "{" + ENDL + "}" + ENDL; assertEquals(expected, mo.generate(cld1, false)); }
public void testGenerateAttributeDescriptor() throws Exception { AttributeDescriptor atd1 = new AttributeDescriptor("atd1", "java.lang.String"); Set atts = new HashSet(Collections.singleton(atd1)); ClassDescriptor cld1 = new ClassDescriptor("Class1", null, false, atts, new HashSet(), new HashSet()); Model model = new Model("model", "", new HashSet(Collections.singleton(cld1))); String expected = INDENT + "// Attr: Class1.atd1" + ENDL + INDENT + "protected java.lang.String atd1;" + ENDL + INDENT + "public java.lang.String getAtd1() { return atd1; }" + ENDL + INDENT + "public void setAtd1(final java.lang.String atd1) { this.atd1 = atd1; }" + ENDL + ENDL; assertEquals(expected, mo.generate(atd1, true)); }
public void testReferencedClassNotSet() throws Exception { CollectionDescriptor cod1 = new CollectionDescriptor("cod1", "Class2", null); Set<CollectionDescriptor> collections = Collections.singleton(cod1); // cld1 has a CollectionDescriptor that contains objects of type Class2 new ClassDescriptor("Class1", null, false, noAttrs, noRefs, collections); new ClassDescriptor("Class2", null, false, noAttrs, noRefs, noColls); try { cod1.getReferencedClassDescriptor(); fail("Expected IllegalStateException, model has not yet been set"); } catch (IllegalStateException e) { } }
public void testGenerateGetSet() throws Exception { AttributeDescriptor atd1 = new AttributeDescriptor("atd1", "java.lang.String"); Set atts = new HashSet(Collections.singleton(atd1)); ClassDescriptor cld1 = new ClassDescriptor("Class1", null, false, atts, new HashSet(), new HashSet()); Model model = new Model("model", "", new HashSet(Collections.singleton(cld1))); String expected = INDENT + "public java.lang.String getAtd1() { return atd1; }" + ENDL + INDENT + "public void setAtd1(final java.lang.String atd1) { this.atd1 = atd1; }" + ENDL; assertEquals(expected, mo.generateGetSet(atd1, true)); }
public void testGenerateEquals() throws Exception { AttributeDescriptor atd1 = new AttributeDescriptor("atd1", "java.lang.String"); Set atts = new HashSet(Collections.singleton(atd1)); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, false, atts, new HashSet(), new HashSet()); Model model = new Model("model", "package.name", new HashSet(Collections.singleton(cld1))); String expected = INDENT + "@Override public boolean equals(Object o) { return (o instanceof Class1 && id != null) ? id.equals(((Class1)o).getId()) : this == o; }" + ENDL; assertEquals(expected, mo.generateEquals(cld1)); }
public void testMultiInheritanceLegal() throws Exception { AttributeDescriptor atd1 = new AttributeDescriptor("atd1", "int"); AttributeDescriptor atd2 = new AttributeDescriptor("atd1", "int"); Set<AttributeDescriptor> atds1 = Collections.singleton(atd1); Set<AttributeDescriptor> atds2 = Collections.singleton(atd2); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, true, atds1, noRefs, noColls); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", null, true, atds2, noRefs, noColls); ClassDescriptor cld3 = makeClass("package.name.Class3", "package.name.Class1 package.name.Class2"); new Model("model", "package.name", Arrays.asList(cld1, cld2, cld3)); }
public ClassDescriptor makeInterface(String name, String... supers) { return new ClassDescriptor(prefix(name), prefixAll(supers), true, NO_ATTRS, NO_REFS, NO_COLLS); } }
public void testMultiInheritanceLegalRef() throws Exception { ReferenceDescriptor ref1 = new ReferenceDescriptor("atd1", "package.name.Class2", null); ReferenceDescriptor ref2 = new ReferenceDescriptor("atd1", "package.name.Class2", null); Set<ReferenceDescriptor> refs1 = Collections.singleton(ref1); Set<ReferenceDescriptor> refs2 = Collections.singleton(ref2); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, true, noAttrs, refs1, noColls); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", null, true, noAttrs, refs2, noColls); ClassDescriptor cld3 = makeClass("package.name.Class3", "package.name.Class1 package.name.Class2"); new Model("model", "package.name", Arrays.asList(cld1, cld2, cld3)); ReferenceDescriptor rd = cld3.getReferenceDescriptorByName("atd1", true); assertEquals("package.name.Class2", rd.getReferencedClassName()); }
public void testRelationTypeManyToMany() throws Exception { CollectionDescriptor col1 = new CollectionDescriptor("col1", "package.name.Class1", "col2"); CollectionDescriptor col2 = new CollectionDescriptor("col2", "package.name.Class1", null); Set<CollectionDescriptor> cols = new HashSet<CollectionDescriptor>(Arrays.asList(col1, col2)); ClassDescriptor cld = new ClassDescriptor("package.name.Class1", null, false, noAttrs, noRefs, cols); new Model("model1", "package.name", Collections.singleton(cld)); assertEquals(FieldDescriptor.M_N_RELATION, col1.relationType()); }
public void testRelationTypeUnidirectional() throws Exception { CollectionDescriptor col = new CollectionDescriptor("col1", "package.name.Class1", null); Set<CollectionDescriptor> cols = Collections.singleton(col); ClassDescriptor cld = new ClassDescriptor("package.name.Class1", null, false, noAttrs, noRefs, cols); new Model("model1", "package.name", Collections.singleton(cld)); assertEquals(FieldDescriptor.M_N_RELATION, col.relationType()); }
public void testRelationTypeUnidirectional() throws Exception { ReferenceDescriptor ref = new ReferenceDescriptor("ref1", "package.name.Class1", null); ClassDescriptor cld = new ClassDescriptor("package.name.Class1", null, false, ClassDescriptorFactory.NO_ATTRS, Collections.singleton(ref), ClassDescriptorFactory.NO_COLLS); new Model("model1", "package.name", Collections.singleton(cld)); assertEquals(FieldDescriptor.N_ONE_RELATION, ref.relationType()); }
public void testMultiInheritanceLegalCol() throws Exception { CollectionDescriptor coll1 = new CollectionDescriptor("atd1", "package.name.Class2", null); CollectionDescriptor coll2 = new CollectionDescriptor("atd1", "package.name.Class2", null); Set<CollectionDescriptor> colls1 = Collections.singleton(coll1); Set<CollectionDescriptor> colls2 = Collections.singleton(coll2); ClassDescriptor cld1 = new ClassDescriptor("package.name.Class1", null, true, noAttrs, noRefs, colls1); ClassDescriptor cld2 = new ClassDescriptor("package.name.Class2", null, true, noAttrs, noRefs, colls2); ClassDescriptor cld3 = makeClass("package.name.Class3", "package.name.Class1 package.name.Class2"); new Model("model", "package.name", Arrays.asList(cld1, cld2, cld3)); ReferenceDescriptor rd = cld3.getCollectionDescriptorByName("atd1", true); assertEquals("package.name.Class2", rd.getReferencedClassName()); }
public void testRelationTypeOneToMany() throws Exception { CollectionDescriptor col = new CollectionDescriptor("col1", "package.name.Class1", "ref1"); ReferenceDescriptor ref = new ReferenceDescriptor("ref1", "package.name.Class1", null); Set<CollectionDescriptor> cols = Collections.singleton(col); Set<ReferenceDescriptor> refs = Collections.singleton(ref); ClassDescriptor cld = new ClassDescriptor("package.name.Class1", null, false, noAttrs, refs, cols); new Model("model1", "package.name", Collections.singleton(cld)); assertEquals(FieldDescriptor.ONE_N_RELATION, col.relationType()); }
public void testRelationTypeOneToOne() throws Exception { ReferenceDescriptor ref1 = new ReferenceDescriptor("ref1", "package.name.Class1", "ref2"); ReferenceDescriptor ref2 = new ReferenceDescriptor("ref2", "package.name.Class1", null); ClassDescriptor cld = new ClassDescriptor("package.name.Class1", null, false, ClassDescriptorFactory.NO_ATTRS, Arrays.asList(ref1, ref2), ClassDescriptorFactory.NO_COLLS); new Model("model1", "package.name", Collections.singleton(cld)); assertEquals(FieldDescriptor.ONE_ONE_RELATION, ref1.relationType()); }
public void testFieldDescriptorByName() throws Exception { ClassDescriptor cld = new ClassDescriptor( "package.name.Class1", null, false, getAttributes(), getReferences(), getCollections()); cld.setAllFieldDescriptors(); assertNotNull(cld.getFieldDescriptorByName("atd1")); assertNotNull(cld.getFieldDescriptorByName("atd2")); assertNotNull(cld.getFieldDescriptorByName("rfd1")); assertNotNull(cld.getFieldDescriptorByName("rfd2")); assertNotNull(cld.getFieldDescriptorByName("cld1")); assertNotNull(cld.getFieldDescriptorByName("cld2")); }