Adding a new boolean property to ObjectProperty. NIHVIVO-118

This commit is contained in:
bdc34 2010-03-22 22:04:47 +00:00
parent b00f1c50e2
commit 87a97cd8df
7 changed files with 85 additions and 8 deletions

View file

@ -75,6 +75,8 @@ public class ObjectProperty extends Property implements Comparable<ObjectPropert
private boolean offerCreateNewOption = false;
private boolean forceStubObjectDeletion = false;
private boolean collateBySubclass = false;
public ObjectProperty() {
super();
}
@ -252,6 +254,14 @@ public class ObjectProperty extends Property implements Comparable<ObjectPropert
public void setInverseFunctional(boolean inverseFunctional) {
this.inverseFunctional = inverseFunctional;
}
public void setCollateBySubclass(boolean collate) {
collateBySubclass = collate;
}
public boolean getCollateBySubclass() {
return collateBySubclass;
}
/**
* adds a single ObjectPropertyStatement object to Property's object property statements List.

View file

@ -191,7 +191,8 @@ public class PropertyRetryController extends BaseEditController {
request.setAttribute("inverseFunctional",propertyForEditing.getInverseFunctional());
request.setAttribute("selectFromExisting",propertyForEditing.getSelectFromExisting());
request.setAttribute("offerCreateNewOption", propertyForEditing.getOfferCreateNewOption());
request.setAttribute("forceStubObjectDeletion", propertyForEditing.getForceStubObjectDeletion());
request.setAttribute("forceStubObjectDeletion", propertyForEditing.getForceStubObjectDeletion());
request.setAttribute("collateBySubclass", propertyForEditing.getCollateBySubclass());
//checkboxes are pretty annoying : we don't know if someone *unchecked* a box, so we have to default to false on updates.
if (propertyForEditing.getURI() != null) {
@ -201,7 +202,8 @@ public class PropertyRetryController extends BaseEditController {
propertyForEditing.setInverseFunctional(false);
propertyForEditing.setSelectFromExisting(false);
propertyForEditing.setOfferCreateNewOption(false);
propertyForEditing.setForceStubObjectDeletion(false);
propertyForEditing.setForceStubObjectDeletion(false);
propertyForEditing.setCollateBySubclass(false);
}
epo.setFormObject(foo);

View file

@ -108,7 +108,8 @@ public class VitroVocabulary {
public static final String MASKS_PROPERTY = vitroURI + "masksProperty";
public static final String SKIP_EDIT_FORM = vitroURI + "skipEditForm";
public static final String PROPERTY_DEPENDENCYPROPERTYANNOT = vitroURI + "dependencyPropertyAnnot";
public static final String PROPERTY_COLLATEBYSUBCLASSANNOT = vitroURI + "collateBySubclassAnnot";
// ================== keyword related ==================================
public static final String KEYWORD = vitroURI+"Keyword";
@ -277,8 +278,5 @@ public class VitroVocabulary {
public static final String NAMESPACE_ISCURRENTPREFIXMAPPING = vitroURI + "isCurrentPrefixMapping";
public static final String ONTOLOGY_PREFIX_ANNOT = vitroURI + "ontologyPrefixAnnot";
}

View file

@ -80,6 +80,7 @@ public class JenaBaseDaoCon {
protected AnnotationProperty PROPERTY_SELECTFROMEXISTINGANNOT = _constModel.createAnnotationProperty(VitroVocabulary.PROPERTY_SELECTFROMEXISTINGANNOT);
protected AnnotationProperty PROPERTY_OFFERCREATENEWOPTIONANNOT = _constModel.createAnnotationProperty(VitroVocabulary.PROPERTY_OFFERCREATENEWOPTIONANNOT);
protected AnnotationProperty PROPERTY_INPROPERTYGROUPANNOT = _constModel.createAnnotationProperty(VitroVocabulary.PROPERTY_INPROPERTYGROUPANNOT);
protected AnnotationProperty PROPERTY_COLLATEBYSUBCLASSANNOT = _constModel.createAnnotationProperty(VitroVocabulary.PROPERTY_COLLATEBYSUBCLASSANNOT);
protected OntClass PROPERTYGROUP = _constModel.createClass(VitroVocabulary.PROPERTYGROUP);
protected OntClass KEYWORD = _constModel.createClass(VitroVocabulary.KEYWORD);

View file

@ -223,6 +223,9 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp
Boolean forceStubObjectDeletionObj = getPropertyBooleanValue(op,PROPERTY_FORCESTUBDELETIONANNOT);
p.setForceStubObjectDeletion(forceStubObjectDeletionObj==null ? false : forceStubObjectDeletionObj);
Boolean collateBySubclass = getPropertyBooleanValue(op,PROPERTY_COLLATEBYSUBCLASSANNOT);
p.setCollateBySubclass(collateBySubclass==null ? false : collateBySubclass);
// the <i> thing from the old system causes sorting problems and ugliness; here is an inelegant way of dealing with it for now (Note <i>s will disappear on update)
if (p.getDomainSidePhasedOut() != null) {
p.setDomainSidePhasedOut(stripItalics(p.getDomainSidePhasedOut()));
@ -364,8 +367,7 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp
com.hp.hpl.jena.ontology.ObjectProperty p = ontModel.createObjectProperty(prop.getURI());
com.hp.hpl.jena.ontology.ObjectProperty inv = null;
if (hasInverse(prop)) {
System.out.println(prop.getURIInverse());
System.out.println("non-null inverse URI");
log.debug("non-null inverse URI: " +prop.getURIInverse());
errMsgStr = getWebappDaoFactory().checkURI(prop.getURIInverse());
if (errMsgStr != null) {
throw new InsertException("Unusable URI for inverse property: "+errMsgStr);
@ -603,6 +605,7 @@ public class ObjectPropertyDaoJena extends PropertyDaoJena implements ObjectProp
updatePropertyBooleanValue(p,PROPERTY_SELECTFROMEXISTINGANNOT,prop.getSelectFromExisting(),ontModel,JenaBaseDao.KEEP_ONLY_IF_FALSE);
updatePropertyBooleanValue(p,PROPERTY_OFFERCREATENEWOPTIONANNOT,prop.getOfferCreateNewOption(),ontModel,JenaBaseDao.KEEP_ONLY_IF_TRUE);
updatePropertyBooleanValue(p,PROPERTY_FORCESTUBDELETIONANNOT,prop.getForceStubObjectDeletion(),ontModel,JenaBaseDao.KEEP_ONLY_IF_TRUE);
updatePropertyBooleanValue(p,PROPERTY_COLLATEBYSUBCLASSANNOT,prop.getCollateBySubclass(),ontModel,JenaBaseDao.KEEP_ONLY_IF_TRUE);
try {
p.removeAll(PROPERTY_INPROPERTYGROUPANNOT);
if (prop.getGroupURI() != null && prop.getGroupURI().length()>0) {