NIHVIVO-215

This commit is contained in:
sjm222 2010-03-26 19:26:16 +00:00
parent ae7b5b9835
commit 174ca4dbcb
2 changed files with 170 additions and 48 deletions

View file

@ -10,14 +10,12 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.ontology.AllValuesFromRestriction;
import com.hp.hpl.jena.ontology.DatatypeProperty;
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntProperty;
import com.hp.hpl.jena.ontology.OntResource;
@ -575,26 +573,12 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
ontModel.enterCriticalSection(Lock.WRITE);
try {
com.hp.hpl.jena.ontology.DatatypeProperty jDataprop = ontModel.getDatatypeProperty(dtp.getURI());
if (dtp.getPublicName() == null || dtp.getPublicName().length() == 0) {
jDataprop.removeAll(RDFS.label);
} else {
jDataprop.setLabel(dtp.getPublicName(), (String) getDefaultLanguage());
}
Resource domainRes = null;
if ( (dtp.getDomainClassURI() != null) && (dtp.getDomainClassURI().length()>0) ) {
domainRes = ontModel.getResource(dtp.getDomainClassURI());
}
jDataprop.removeAll(RDFS.domain);
if (domainRes != null) {
jDataprop.setDomain(domainRes);
}
if (dtp.getRangeDatatypeURI() != null && !dtp.getRangeDatatypeURI().equals("")) {
Resource rangeResource = ontModel.getResource(dtp.getRangeDatatypeURI());
if (rangeResource != null)
jDataprop.setRange(rangeResource);
} else {
jDataprop.removeAll(RDFS.range);
}
updateRDFSLabel(jDataprop, dtp.getPublicName());
updatePropertyResourceURIValue(jDataprop, RDFS.domain,dtp.getDomainClassURI(),ontModel);
updatePropertyResourceURIValue(jDataprop, RDFS.range,dtp.getRangeDatatypeURI(),ontModel);
if (dtp.getFunctional()) {
if (!ontModel.contains(jDataprop,RDF.type,OWL.FunctionalProperty)) {
ontModel.add(jDataprop,RDF.type,OWL.FunctionalProperty);
@ -604,37 +588,25 @@ public class DataPropertyDaoJena extends PropertyDaoJena implements
ontModel.remove(jDataprop,RDF.type,OWL.FunctionalProperty);
}
}
updatePropertyStringValue(jDataprop, EXAMPLE, dtp.getExample(), ontModel);
updatePropertyStringValue(jDataprop, DESCRIPTION_ANNOT, dtp.getDescription(), ontModel);
updatePropertyStringValue(jDataprop, PUBLIC_DESCRIPTION_ANNOT, dtp.getPublicDescription(), ontModel);
updatePropertyNonNegativeIntValue(jDataprop, DISPLAY_RANK_ANNOT, dtp.getDisplayTier(), ontModel);
updatePropertyNonNegativeIntValue(jDataprop, DISPLAY_LIMIT, dtp.getDisplayLimit(), ontModel);
//updatePropertyStringValue(jDataprop, HIDDEN_ANNOT, dtp.getHidden(), ontModel);
jDataprop.removeAll(HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT);
if (HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT != null && dtp.getHiddenFromDisplayBelowRoleLevel() != null) { // only need to add if present
jDataprop.addProperty(HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT, ResourceFactory.createResource(dtp.getHiddenFromDisplayBelowRoleLevel().getURI()));
}
jDataprop.removeAll(PROHIBITED_FROM_UPDATE_BELOW_ROLE_LEVEL_ANNOT);
if (PROHIBITED_FROM_UPDATE_BELOW_ROLE_LEVEL_ANNOT != null && dtp.getProhibitedFromUpdateBelowRoleLevel() != null) { // only need to add if present
jDataprop.addProperty(PROHIBITED_FROM_UPDATE_BELOW_ROLE_LEVEL_ANNOT, ResourceFactory.createResource(dtp.getProhibitedFromUpdateBelowRoleLevel().getURI()));
}
/*
updatePropertyBooleanValue(jDataprop, PROPERTY_SELFEDITPROHIBITEDANNOT, dtp.isSelfEditProhibited(), ontModel, JenaBaseDao.KEEP_ONLY_IF_TRUE);
updatePropertyBooleanValue(jDataprop, PROPERTY_CURATOREDITPROHIBITEDANNOT, dtp.isCuratorEditProhibited(), ontModel, JenaBaseDao.KEEP_ONLY_IF_TRUE);
*/
try {
jDataprop.removeAll(PROPERTY_INPROPERTYGROUPANNOT);
if (dtp.getGroupURI() != null && dtp.getGroupURI().length()>0) {
String badURIErrorStr = checkURI(dtp.getGroupURI());
if (badURIErrorStr == null) {
jDataprop.addProperty(PROPERTY_INPROPERTYGROUPANNOT, ontModel.getResource(dtp.getGroupURI()));
} else {
log.error(badURIErrorStr);
}
}
} catch (Exception e) {
log.error("error linking data property "+dtp.getURI()+" to property group");
}
if (dtp.getHiddenFromDisplayBelowRoleLevel() != null) {
updatePropertyResourceURIValue(jDataprop,HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT,dtp.getHiddenFromDisplayBelowRoleLevel().getURI(),ontModel);
}
if (dtp.getProhibitedFromUpdateBelowRoleLevel() != null) {
updatePropertyResourceURIValue(jDataprop,PROHIBITED_FROM_UPDATE_BELOW_ROLE_LEVEL_ANNOT,dtp.getProhibitedFromUpdateBelowRoleLevel().getURI(),ontModel);
}
if (dtp.getGroupURI() != null) {
updatePropertyResourceURIValue(jDataprop,PROPERTY_INPROPERTYGROUPANNOT,dtp.getGroupURI(),ontModel);
}
updatePropertyStringValue(jDataprop,PROPERTY_CUSTOMENTRYFORMANNOT,dtp.getCustomEntryForm(),ontModel);
} finally {
ontModel.leaveCriticalSection();