/** * Gets a ReferenceDescriptor for a field of the given name. Returns null if * not found. Does NOT look in any superclasses or interfaces. * * @param name the name of a ReferenceDescriptor to find * @return a ReferenceDescriptor */ public ReferenceDescriptor getReferenceDescriptorByName(String name) { return getReferenceDescriptorByName(name, false); }
/** * Return true if and only if the argument names a possible reference for this Item. ie. the * ClassDescriptor for this Item contains a ReferenceDescriptor for this name. * * @param name the field name * @return Return true if and only if this Item has a reference of the given name in the model */ public boolean canHaveReference(String name) { return classDescriptor.getReferenceDescriptorByName(name, true) != null; }
/** * Gets a ReferenceDescriptor for a field of the given name. Returns null if * not found. Does NOT look in any superclasses or interfaces. * * @param name the name of a ReferenceDescriptor to find * @return a ReferenceDescriptor */ public ReferenceDescriptor getReferenceDescriptorByName(String name) { return getReferenceDescriptorByName(name, false); }
/** * Return true if and only if the argument names a possible reference for this Item. ie. the * ClassDescriptor for this Item contains a ReferenceDescriptor for this name. * * @param name the field name * @return Return true if and only if this Item has a reference of the given name in the model */ public boolean canHaveReference(String name) { return classDescriptor.getReferenceDescriptorByName(name, true) != null; }
private static void verifyClassAndField(String className, String fieldName, Model model) { String checkFileMsg = "Please check modelUpdate.properties file"; if ("".equals(className)) { throw new BuildException("Class " + className + " can not be blank. " + checkFileMsg); } ClassDescriptor cd = model.getClassDescriptorByName(className); if (cd == null) { if (fieldName != null) { throw new BuildException("Class " + className + " containing " + fieldName + " not defined in the model " + model.getName() + ". " + checkFileMsg); } else { throw new BuildException("Class " + className + " not defined in the model " + model.getName() + ". " + checkFileMsg); } } if (fieldName != null) { if ("".equals(fieldName)) { throw new BuildException("Attribute " + fieldName + " in the class " + className + " can not be blank. " + checkFileMsg); } if (cd.getAttributeDescriptorByName(fieldName) == null && cd.getReferenceDescriptorByName(fieldName) == null && cd.getCollectionDescriptorByName(fieldName) == null) { throw new BuildException("The " + fieldName + " in the class " + className + " not defined in the model " + model.getName() + ". " + checkFileMsg); } } }
private static void verifyClassAndField(String className, String fieldName, Model model) { String checkFileMsg = "Please check modelUpdate.properties file"; if ("".equals(className)) { throw new BuildException("Class " + className + " can not be blank. " + checkFileMsg); } ClassDescriptor cd = model.getClassDescriptorByName(className); if (cd == null) { if (fieldName != null) { throw new BuildException("Class " + className + " containing " + fieldName + " not defined in the model " + model.getName() + ". " + checkFileMsg); } else { throw new BuildException("Class " + className + " not defined in the model " + model.getName() + ". " + checkFileMsg); } } if (fieldName != null) { if ("".equals(fieldName)) { throw new BuildException("Attribute " + fieldName + " in the class " + className + " can not be blank. " + checkFileMsg); } if (cd.getAttributeDescriptorByName(fieldName) == null && cd.getReferenceDescriptorByName(fieldName) == null && cd.getCollectionDescriptorByName(fieldName) == null) { throw new BuildException("The " + fieldName + " in the class " + className + " not defined in the model " + model.getName() + ". " + checkFileMsg); } } }
if ((startCld.getReferenceDescriptorByName(refName, true) == null) && (startCld.getCollectionDescriptorByName(refName, true) == null)) { throw new IllegalArgumentException("Cannot find descriptor for " + refName
private void setRefsAndCollections(List<String> parents, Item feature) { String clsName = feature.getClassName(); Map<String, String> refsAndCollections = handler.getRefsAndCollections(); if (refsAndCollections != null && refsAndCollections.containsKey(clsName) && parents != null && !parents.isEmpty()) { ClassDescriptor cld = tgtModel.getClassDescriptorByName(tgtModel.getPackageName() + "." + clsName); String refName = refsAndCollections.get(clsName); Iterator<String> parentIter = parents.iterator(); if (cld.getReferenceDescriptorByName(refName, true) != null) { String parent = parentIter.next(); feature.setReference(refName, getRefId(parent)); if (parentIter.hasNext()) { String primaryIdent = feature.getAttribute("primaryIdentifier").getValue(); throw new RuntimeException("Feature has multiple relations for reference: " + refName + " for feature: " + feature.getClassName() + ", " + feature.getIdentifier() + ", " + primaryIdent); } } else if (cld.getCollectionDescriptorByName(refName, true) != null) { List<String> refIds = new ArrayList<String>(); while (parentIter.hasNext()) { refIds.add(getRefId(parentIter.next())); } feature.setCollection(refName, refIds); } else if (parentIter.hasNext()) { throw new RuntimeException("No '" + refName + "' reference/collection found in " + "class: " + clsName + " - is map configured correctly?"); } } }
if ((startCld.getReferenceDescriptorByName(refName, true) == null) && (startCld.getCollectionDescriptorByName(refName, true) == null)) { throw new IllegalArgumentException("Cannot find descriptor for " + refName
String colName = DatabaseUtil.generateSqlCompatibleName(field); if (tableMaster.getReferenceDescriptorByName(field, true) != null) { colName += "id";
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()); }
ReferenceDescriptor rd = riter.next(); ReferenceDescriptor scdDescriptor = scd.getReferenceDescriptorByName(rd.getName()); if (scdDescriptor != null) { LOG.info("removing reference " + rd.getName()
ReferenceDescriptor rd = riter.next(); ReferenceDescriptor scdDescriptor = scd.getReferenceDescriptorByName(rd.getName()); if (scdDescriptor != null) { LOG.info("removing reference " + rd.getName()
if (parentClassDescriptor.getReferenceDescriptorByName(fieldName, true) != null) { LOG.info(parentClassDescriptor.getType().getSimpleName() + " -> " + fieldName + " (OBJECT)");
if (parentClassDescriptor.getReferenceDescriptorByName(fieldName, true) != null) { LOG.info(parentClassDescriptor.getType().getSimpleName() + " -> " + fieldName + " (OBJECT)");
for (ReferenceDescriptor merg : merge.getReferenceDescriptors()) { ReferenceDescriptor orig = original.getReferenceDescriptorByName(merg.getName()); if (orig != null) {
for (ReferenceDescriptor merg : merge.getReferenceDescriptors()) { ReferenceDescriptor orig = original.getReferenceDescriptorByName(merg.getName()); if (orig != null) {
/** * Do the work of processItem() by setting DataSet and DataSource references and collections * on the given Item. * @param model the data model * @param item the Item to process * @param dataSetId the item id of the DataSet to add * @param dataSourceId the item id of the DataSource to add */ public static void setDataSets(Model model, Item item, String dataSetId, String dataSourceId) { String className = item.getClassName(); ClassDescriptor cd = model.getClassDescriptorByName(className); ReferenceDescriptor rd = cd.getReferenceDescriptorByName("source"); String dataSourceClassName = "org.intermine.model.bio.DataSource"; if (rd != null && rd.getReferencedClassDescriptor().getName().equals(dataSourceClassName) && !item.hasReference("source")) { item.setReference("source", dataSourceId); } if (item.canHaveReference("dataSource") && !item.hasReference("dataSource")) { item.setReference("dataSource", dataSourceId); } if (item.canHaveReference("dataSet") && !item.hasReference("dataSet")) { item.setReference("dataSet", dataSetId); } if (item.canHaveCollection("dataSets")) { item.addToCollection("dataSets", dataSetId); } }
reverseRefDesc = referencedClassDesc.getReferenceDescriptorByName(reverseRefName); if (reverseRefDesc == null) { reverseRefDesc = referencedClassDesc
reverseRefDesc = referencedClassDesc.getReferenceDescriptorByName(reverseRefName); if (reverseRefDesc == null) { reverseRefDesc = referencedClassDesc