merging in updates for NIHVIVO-1157 from branch 1.1
This commit is contained in:
parent
503652796c
commit
bbde9a3eb5
3 changed files with 332 additions and 116 deletions
|
@ -18,32 +18,32 @@ public class VClass extends BaseResourceBean implements Comparable<VClass>
|
||||||
/**
|
/**
|
||||||
* What this VClass is called
|
* What this VClass is called
|
||||||
*/
|
*/
|
||||||
private String myName = null;
|
protected String myName = null;
|
||||||
public String getName() { return myName; }
|
public String getName() { return myName; }
|
||||||
public void setName( String name ) { myName = name; }
|
public void setName( String name ) { myName = name; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An example member of this VClass
|
* An example member of this VClass
|
||||||
*/
|
*/
|
||||||
private String myExample = null;
|
protected String myExample = null;
|
||||||
public String getExample() { return myExample; }
|
public String getExample() { return myExample; }
|
||||||
public void setExample( String example ) { myExample = example; }
|
public void setExample( String example ) { myExample = example; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Information about the type of information expected of a member of this VClass
|
* Information about the type of information expected of a member of this VClass
|
||||||
*/
|
*/
|
||||||
private String myDescription = null;
|
protected String myDescription = null;
|
||||||
public String getDescription() { return myDescription; }
|
public String getDescription() { return myDescription; }
|
||||||
public void setDescription( String descr ) { myDescription = descr; }
|
public void setDescription( String descr ) { myDescription = descr; }
|
||||||
|
|
||||||
private String myShortDefinition = null;
|
protected String myShortDefinition = null;
|
||||||
public String getShortDef() { return myShortDefinition; }
|
public String getShortDef() { return myShortDefinition; }
|
||||||
public void setShortDef( String sd ) { myShortDefinition = sd; }
|
public void setShortDef( String sd ) { myShortDefinition = sd; }
|
||||||
|
|
||||||
// TODO: [kwg8-08/01/07] What is this for? It seems an entity count is the number of entities of
|
// TODO: [kwg8-08/01/07] What is this for? It seems an entity count is the number of entities of
|
||||||
// this type in the database. Is this the case?
|
// this type in the database. Is this the case?
|
||||||
// [bjl23 2007-08-12] Yep. A count of individuals in the class.
|
// [bjl23 2007-08-12] Yep. A count of individuals in the class.
|
||||||
private int myEntityCount = -1;
|
protected int myEntityCount = -1;
|
||||||
|
|
||||||
// rjy7 Removing deprecation since currently we have no other means to get this value.
|
// rjy7 Removing deprecation since currently we have no other means to get this value.
|
||||||
// @Deprecated
|
// @Deprecated
|
||||||
|
@ -51,39 +51,39 @@ public class VClass extends BaseResourceBean implements Comparable<VClass>
|
||||||
|
|
||||||
public void setEntityCount( int ec ) { myEntityCount = ec; }
|
public void setEntityCount( int ec ) { myEntityCount = ec; }
|
||||||
|
|
||||||
private int displayLimit = -1;
|
protected Integer displayLimit = null;
|
||||||
public int getDisplayLimit() { return displayLimit; }
|
public int getDisplayLimit() { return (displayLimit == null ? -1 : displayLimit); }
|
||||||
public void setDisplayLimit(int displayLimit) { this.displayLimit = displayLimit; }
|
public void setDisplayLimit(int displayLimit) { this.displayLimit = displayLimit; }
|
||||||
|
|
||||||
private String quickEditJsp = null;
|
protected String quickEditJsp = null;
|
||||||
public String getQuickEditJsp() { return quickEditJsp; }
|
public String getQuickEditJsp() { return quickEditJsp; }
|
||||||
public void setQuickEditJsp(String quickEditJsp) { this.quickEditJsp = quickEditJsp; }
|
public void setQuickEditJsp(String quickEditJsp) { this.quickEditJsp = quickEditJsp; }
|
||||||
|
|
||||||
private int displayRank = -1;
|
protected Integer displayRank = null;
|
||||||
public int getDisplayRank() { return displayRank; }
|
public int getDisplayRank() { return (displayLimit == null ? -1 : displayLimit); }
|
||||||
public void setDisplayRank(int displayRank) { this.displayRank = displayRank; }
|
public void setDisplayRank(int displayRank) { this.displayRank = displayRank; }
|
||||||
|
|
||||||
private String groupURI = null;
|
protected String groupURI = null;
|
||||||
public String getGroupURI() { return groupURI; }
|
public String getGroupURI() { return groupURI; }
|
||||||
public void setGroupURI(String groupURI) { this.groupURI = groupURI; }
|
public void setGroupURI(String groupURI) { this.groupURI = groupURI; }
|
||||||
|
|
||||||
private VClassGroup group=null;
|
protected VClassGroup group=null;
|
||||||
public VClassGroup getGroup() { return group; }
|
public VClassGroup getGroup() { return group; }
|
||||||
public void setGroup(VClassGroup vcg) { group = vcg; }
|
public void setGroup(VClassGroup vcg) { group = vcg; }
|
||||||
|
|
||||||
private String customEntryForm = null;
|
protected String customEntryForm = null;
|
||||||
public String getCustomEntryForm() { return customEntryForm; }
|
public String getCustomEntryForm() { return customEntryForm; }
|
||||||
public void setCustomEntryForm(String s) { this.customEntryForm = s; }
|
public void setCustomEntryForm(String s) { this.customEntryForm = s; }
|
||||||
|
|
||||||
private String customDisplayView = null;
|
protected String customDisplayView = null;
|
||||||
public String getCustomDisplayView() { return customDisplayView; }
|
public String getCustomDisplayView() { return customDisplayView; }
|
||||||
public void setCustomDisplayView(String s) { this.customDisplayView = s; }
|
public void setCustomDisplayView(String s) { this.customDisplayView = s; }
|
||||||
|
|
||||||
private String customShortView = null;
|
protected String customShortView = null;
|
||||||
public String getCustomShortView() { return customShortView; }
|
public String getCustomShortView() { return customShortView; }
|
||||||
public void setCustomShortView(String s) { this.customShortView = s; }
|
public void setCustomShortView(String s) { this.customShortView = s; }
|
||||||
|
|
||||||
private String customSearchView = null;
|
protected String customSearchView = null;
|
||||||
public String getCustomSearchView() { return customSearchView; }
|
public String getCustomSearchView() { return customSearchView; }
|
||||||
public void setCustomSearchView(String s) { this.customSearchView = s; }
|
public void setCustomSearchView(String s) { this.customSearchView = s; }
|
||||||
|
|
||||||
|
|
|
@ -438,7 +438,7 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
|
||||||
try {
|
try {
|
||||||
OntClass cls = (OntClass) classIt.next();
|
OntClass cls = (OntClass) classIt.next();
|
||||||
if (!cls.isAnon() && !(NONUSER_NAMESPACES.contains(cls.getNameSpace()))) {
|
if (!cls.isAnon() && !(NONUSER_NAMESPACES.contains(cls.getNameSpace()))) {
|
||||||
classes.add(vClassWebappFromOntClass(cls));
|
classes.add(new VClassJena(cls,getWebappDaoFactory()));
|
||||||
}
|
}
|
||||||
} catch (ClassCastException cce) {
|
} catch (ClassCastException cce) {
|
||||||
cce.printStackTrace();
|
cce.printStackTrace();
|
||||||
|
@ -536,7 +536,7 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
|
||||||
try {
|
try {
|
||||||
OntClass cls = (OntClass) rootIt.next();
|
OntClass cls = (OntClass) rootIt.next();
|
||||||
if (!cls.isAnon() && cls.getNameSpace() != null && !(NONUSER_NAMESPACES.contains(cls.getNameSpace()))) {
|
if (!cls.isAnon() && cls.getNameSpace() != null && !(NONUSER_NAMESPACES.contains(cls.getNameSpace()))) {
|
||||||
rootClasses.add(vClassWebappFromOntClass(cls));
|
rootClasses.add(new VClassJena(cls,getWebappDaoFactory()));
|
||||||
}
|
}
|
||||||
} catch (ClassCastException e) {}
|
} catch (ClassCastException e) {}
|
||||||
}
|
}
|
||||||
|
@ -578,7 +578,7 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
|
||||||
superStmtIt.close();
|
superStmtIt.close();
|
||||||
}
|
}
|
||||||
if (root) {
|
if (root) {
|
||||||
ontologyRootClasses.add(this.vClassWebappFromOntClass(ontClass));
|
ontologyRootClasses.add(new VClassJena(ontClass,getWebappDaoFactory()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -662,7 +662,7 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
|
||||||
try {
|
try {
|
||||||
OntClass cls = getOntClass(getOntModel(),URIStr);
|
OntClass cls = getOntClass(getOntModel(),URIStr);
|
||||||
if (cls != null) {
|
if (cls != null) {
|
||||||
return vClassWebappFromOntClass(cls);
|
return new VClassJena(cls,getWebappDaoFactory());
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -941,101 +941,6 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private VClass vClassWebappFromOntClass(OntClass cls) {
|
|
||||||
VClass vcw = new VClass();
|
|
||||||
getOntModel().enterCriticalSection(Lock.READ);
|
|
||||||
vcw.setName(getLabelForClass(cls,false,false));
|
|
||||||
vcw.setLocalNameWithPrefix(getLabelForClass(cls,true,false));
|
|
||||||
vcw.setPickListName(getLabelForClass(cls,false,true));
|
|
||||||
try {
|
|
||||||
if (cls.isAnon()) {
|
|
||||||
vcw.setNamespace(PSEUDO_BNODE_NS);
|
|
||||||
vcw.setLocalName(cls.getId().toString());
|
|
||||||
log.debug("setting local name with prefix to: " + vcw.getLocalNameWithPrefix());
|
|
||||||
} else {
|
|
||||||
if (vcw.getName() == null)
|
|
||||||
vcw.setName("[null]");
|
|
||||||
vcw.setURI(cls.getURI());
|
|
||||||
vcw.setNamespace(cls.getNameSpace());
|
|
||||||
vcw.setLocalName(cls.getLocalName());
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
Resource groupRes = (Resource) cls.getPropertyValue(IN_CLASSGROUP);
|
|
||||||
if (groupRes != null) {
|
|
||||||
vcw.setGroupURI(groupRes.getURI());
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("error retrieving vitro:inClassGroup property value for "+cls.getURI());
|
|
||||||
log.trace(e);
|
|
||||||
}
|
|
||||||
vcw.setShortDef(getPropertyStringValue(cls,SHORTDEF));
|
|
||||||
vcw.setExample(getPropertyStringValue(cls,EXAMPLE_ANNOT));
|
|
||||||
vcw.setDescription(getPropertyStringValue(cls,DESCRIPTION_ANNOT));
|
|
||||||
vcw.setDisplayLimit(getPropertyNonNegativeIntValue(cls,DISPLAY_LIMIT));
|
|
||||||
vcw.setDisplayRank(getPropertyNonNegativeIntValue(cls,DISPLAY_RANK_ANNOT));
|
|
||||||
vcw.setCustomEntryForm(getPropertyStringValue(cls,PROPERTY_CUSTOMENTRYFORMANNOT));
|
|
||||||
vcw.setCustomDisplayView(getPropertyStringValue(cls,PROPERTY_CUSTOMDISPLAYVIEWANNOT));
|
|
||||||
vcw.setCustomShortView(getPropertyStringValue(cls,PROPERTY_CUSTOMSHORTVIEWANNOT));
|
|
||||||
vcw.setCustomSearchView(getPropertyStringValue(cls,PROPERTY_CUSTOMSEARCHVIEWANNOT));
|
|
||||||
vcw.setSearchBoost(getPropertyFloatValue(cls,SEARCH_BOOST_ANNOT));
|
|
||||||
|
|
||||||
//There might be multiple HIDDEN_FROM_EDIT_DISPLAY_ANNOT properties, only use the highest
|
|
||||||
StmtIterator it = cls.listProperties(HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT);
|
|
||||||
BaseResourceBean.RoleLevel hiddenRoleLevel = null;
|
|
||||||
while( it.hasNext() ){
|
|
||||||
Statement stmt = it.nextStatement();
|
|
||||||
RDFNode obj;
|
|
||||||
if( stmt != null && (obj = stmt.getObject()) != null && obj.isURIResource() ){
|
|
||||||
Resource res = (Resource)obj.as(Resource.class);
|
|
||||||
if( res != null && res.getURI() != null ){
|
|
||||||
BaseResourceBean.RoleLevel roleFromModel = BaseResourceBean.RoleLevel.getRoleByUri(res.getURI());
|
|
||||||
if( roleFromModel != null &&
|
|
||||||
(hiddenRoleLevel == null || roleFromModel.compareTo(hiddenRoleLevel) > 0 )){
|
|
||||||
hiddenRoleLevel = roleFromModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vcw.setHiddenFromDisplayBelowRoleLevel(hiddenRoleLevel);//this might get set to null
|
|
||||||
|
|
||||||
//There might be multiple PROHIBITED_FROM_UPDATE_DISPLAY_ANNOT properties, only use the highest
|
|
||||||
it = cls.listProperties(PROHIBITED_FROM_UPDATE_BELOW_ROLE_LEVEL_ANNOT);
|
|
||||||
BaseResourceBean.RoleLevel prohibitedRoleLevel = null;
|
|
||||||
while( it.hasNext() ){
|
|
||||||
Statement stmt = it.nextStatement();
|
|
||||||
RDFNode obj;
|
|
||||||
if( stmt != null && (obj = stmt.getObject()) != null && obj.isURIResource() ){
|
|
||||||
Resource res = (Resource)obj.as(Resource.class);
|
|
||||||
if( res != null && res.getURI() != null ){
|
|
||||||
BaseResourceBean.RoleLevel roleFromModel = BaseResourceBean.RoleLevel.getRoleByUri(res.getURI());
|
|
||||||
if( roleFromModel != null &&
|
|
||||||
(prohibitedRoleLevel == null || roleFromModel.compareTo(prohibitedRoleLevel) > 0 )){
|
|
||||||
prohibitedRoleLevel = roleFromModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
vcw.setProhibitedFromUpdateBelowRoleLevel(prohibitedRoleLevel);//this might get set to null
|
|
||||||
|
|
||||||
// We need a better way of caching the counts. For now I'm only setting 0 for the empty classes, to hide them from the DWR editing
|
|
||||||
/*
|
|
||||||
ClosableIterator typeIt = getOntModel().listStatements(null,RDF.type,cls);
|
|
||||||
try {
|
|
||||||
if (!typeIt.hasNext()) {
|
|
||||||
vcw.setEntityCount(0);
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
typeIt.close();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
} finally {
|
|
||||||
getOntModel().leaveCriticalSection();
|
|
||||||
}
|
|
||||||
return vcw;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isSubClassOf(VClass vc1, VClass vc2) {
|
public boolean isSubClassOf(VClass vc1, VClass vc2) {
|
||||||
if (vc1 == null || vc2 == null) {
|
if (vc1 == null || vc2 == null) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -0,0 +1,311 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.dao.jena;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import com.hp.hpl.jena.ontology.OntClass;
|
||||||
|
import com.hp.hpl.jena.rdf.model.RDFNode;
|
||||||
|
import com.hp.hpl.jena.rdf.model.Resource;
|
||||||
|
import com.hp.hpl.jena.rdf.model.Statement;
|
||||||
|
import com.hp.hpl.jena.rdf.model.StmtIterator;
|
||||||
|
import com.hp.hpl.jena.shared.Lock;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Java class representing a lazy loading ontology ("VIVO") class
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class VClassJena extends VClass {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(VClassJena.class.getName());
|
||||||
|
private OntClass cls = null;
|
||||||
|
private WebappDaoFactoryJena webappDaoFactory = null;
|
||||||
|
|
||||||
|
public VClassJena(OntClass cls, WebappDaoFactoryJena wadf) {
|
||||||
|
this.cls = cls;
|
||||||
|
|
||||||
|
if (cls.isAnon()) {
|
||||||
|
this.setNamespace(VitroVocabulary.PSEUDO_BNODE_NS);
|
||||||
|
this.setLocalName(cls.getId().toString());
|
||||||
|
} else {
|
||||||
|
this.URI = cls.getURI();
|
||||||
|
this.namespace = cls.getNameSpace();
|
||||||
|
this.localName = cls.getLocalName();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.webappDaoFactory = wadf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* What this VClass is called
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
|
||||||
|
if (this.myName != null) {
|
||||||
|
return myName;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
this.myName = webappDaoFactory.getJenaBaseDao().getLabelOrId(cls);
|
||||||
|
if (this.myName == null) {
|
||||||
|
this.myName = "[null]";
|
||||||
|
}
|
||||||
|
return this.myName;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An example member of this VClass
|
||||||
|
*/
|
||||||
|
public String getExample() {
|
||||||
|
|
||||||
|
if (this.myExample != null) {
|
||||||
|
return myName;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setExample(webappDaoFactory.getJenaBaseDao().getPropertyStringValue(cls, webappDaoFactory.getJenaBaseDao().EXAMPLE_ANNOT));
|
||||||
|
return myExample;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Information about the type of information expected of a member of this VClass
|
||||||
|
*/
|
||||||
|
public String getDescription() {
|
||||||
|
|
||||||
|
if (this.myDescription != null) {
|
||||||
|
return myDescription;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setDescription(webappDaoFactory.getJenaBaseDao().getPropertyStringValue(cls, webappDaoFactory.getJenaBaseDao().DESCRIPTION_ANNOT));
|
||||||
|
return myDescription;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getShortDef() {
|
||||||
|
|
||||||
|
if (this.myShortDefinition != null) {
|
||||||
|
return myShortDefinition;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setShortDef(webappDaoFactory.getJenaBaseDao().getPropertyStringValue(cls, webappDaoFactory.getJenaBaseDao().SHORTDEF));
|
||||||
|
return myShortDefinition;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDisplayLimit() {
|
||||||
|
|
||||||
|
if (this.displayLimit != null) {
|
||||||
|
return displayLimit;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setDisplayLimit(webappDaoFactory.getJenaBaseDao().getPropertyNonNegativeIntValue(cls, webappDaoFactory.getJenaBaseDao().DISPLAY_LIMIT));
|
||||||
|
return displayLimit;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDisplayRank() {
|
||||||
|
|
||||||
|
if (this.displayRank != null) {
|
||||||
|
return displayRank;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setDisplayRank(webappDaoFactory.getJenaBaseDao().getPropertyNonNegativeIntValue(cls, webappDaoFactory.getJenaBaseDao().DISPLAY_RANK_ANNOT));
|
||||||
|
return displayRank;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGroupURI() {
|
||||||
|
|
||||||
|
if (this.groupURI != null) {
|
||||||
|
return this.groupURI;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
Resource groupRes = (Resource) cls.getPropertyValue(webappDaoFactory.getJenaBaseDao().IN_CLASSGROUP);
|
||||||
|
|
||||||
|
if (groupRes != null) {
|
||||||
|
setGroupURI(groupRes.getURI());
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("error retrieving vitro:inClassGroup property value for " + cls.getURI());
|
||||||
|
log.trace(e);
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.groupURI;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomEntryForm() {
|
||||||
|
|
||||||
|
if (this.customEntryForm != null) {
|
||||||
|
return this.customEntryForm;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setCustomEntryForm(webappDaoFactory.getJenaBaseDao().getPropertyStringValue(cls, webappDaoFactory.getJenaBaseDao().PROPERTY_CUSTOMENTRYFORMANNOT));
|
||||||
|
return this.customEntryForm;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomDisplayView() {
|
||||||
|
|
||||||
|
if (this.customDisplayView != null) {
|
||||||
|
return this.customDisplayView;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setCustomEntryForm(webappDaoFactory.getJenaBaseDao().getPropertyStringValue(cls, webappDaoFactory.getJenaBaseDao().PROPERTY_CUSTOMDISPLAYVIEWANNOT));
|
||||||
|
return this.customDisplayView;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomShortView() {
|
||||||
|
|
||||||
|
if (this.customShortView != null) {
|
||||||
|
return this.customShortView;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setCustomShortView(webappDaoFactory.getJenaBaseDao().getPropertyStringValue(cls, webappDaoFactory.getJenaBaseDao().PROPERTY_CUSTOMSHORTVIEWANNOT));
|
||||||
|
return this.customShortView;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomSearchView() {
|
||||||
|
|
||||||
|
if (this.customSearchView != null) {
|
||||||
|
return this.customSearchView;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setCustomSearchView(webappDaoFactory.getJenaBaseDao().getPropertyStringValue(cls, webappDaoFactory.getJenaBaseDao().PROPERTY_CUSTOMSEARCHVIEWANNOT));
|
||||||
|
return this.customSearchView;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Float getSearchBoost() {
|
||||||
|
|
||||||
|
if (this.searchBoost != null) {
|
||||||
|
return this.searchBoost;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
setSearchBoost(webappDaoFactory.getJenaBaseDao().getPropertyFloatValue(cls, webappDaoFactory.getJenaBaseDao().SEARCH_BOOST_ANNOT));
|
||||||
|
return this.searchBoost;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public RoleLevel getHiddenFromDisplayBelowRoleLevel() {
|
||||||
|
|
||||||
|
if (this.hiddenFromDisplayBelowRoleLevel != null) {
|
||||||
|
return this.hiddenFromDisplayBelowRoleLevel;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
//There might be multiple HIDDEN_FROM_EDIT_DISPLAY_ANNOT properties, only use the highest
|
||||||
|
StmtIterator it = cls.listProperties(webappDaoFactory.getJenaBaseDao().HIDDEN_FROM_DISPLAY_BELOW_ROLE_LEVEL_ANNOT);
|
||||||
|
BaseResourceBean.RoleLevel hiddenRoleLevel = null;
|
||||||
|
|
||||||
|
while( it.hasNext() ){
|
||||||
|
Statement stmt = it.nextStatement();
|
||||||
|
RDFNode obj;
|
||||||
|
if( stmt != null && (obj = stmt.getObject()) != null && obj.isURIResource() ){
|
||||||
|
Resource res = (Resource)obj.as(Resource.class);
|
||||||
|
if( res != null && res.getURI() != null ){
|
||||||
|
BaseResourceBean.RoleLevel roleFromModel = BaseResourceBean.RoleLevel.getRoleByUri(res.getURI());
|
||||||
|
if( roleFromModel != null &&
|
||||||
|
(hiddenRoleLevel == null || roleFromModel.compareTo(hiddenRoleLevel) > 0 )){
|
||||||
|
hiddenRoleLevel = roleFromModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setHiddenFromDisplayBelowRoleLevel(hiddenRoleLevel); //this might get set to null
|
||||||
|
return this.hiddenFromDisplayBelowRoleLevel;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public RoleLevel getProhibitedFromUpdateBelowRoleLevel() {
|
||||||
|
|
||||||
|
if (this.prohibitedFromUpdateBelowRoleLevel != null) {
|
||||||
|
return this.prohibitedFromUpdateBelowRoleLevel;
|
||||||
|
} else {
|
||||||
|
cls.getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
//There might be multiple PROHIBITED_FROM_UPDATE_DISPLAY_ANNOT properties, only use the highest
|
||||||
|
StmtIterator it = cls.listProperties(webappDaoFactory.getJenaBaseDao().PROHIBITED_FROM_UPDATE_BELOW_ROLE_LEVEL_ANNOT);
|
||||||
|
BaseResourceBean.RoleLevel prohibitedRoleLevel = null;
|
||||||
|
while( it.hasNext() ){
|
||||||
|
Statement stmt = it.nextStatement();
|
||||||
|
RDFNode obj;
|
||||||
|
if( stmt != null && (obj = stmt.getObject()) != null && obj.isURIResource() ){
|
||||||
|
Resource res = (Resource)obj.as(Resource.class);
|
||||||
|
if( res != null && res.getURI() != null ){
|
||||||
|
BaseResourceBean.RoleLevel roleFromModel = BaseResourceBean.RoleLevel.getRoleByUri(res.getURI());
|
||||||
|
if( roleFromModel != null &&
|
||||||
|
(prohibitedRoleLevel == null || roleFromModel.compareTo(prohibitedRoleLevel) > 0 )){
|
||||||
|
prohibitedRoleLevel = roleFromModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setProhibitedFromUpdateBelowRoleLevel(prohibitedRoleLevel); //this might get set to null
|
||||||
|
return this.prohibitedFromUpdateBelowRoleLevel;
|
||||||
|
} finally {
|
||||||
|
cls.getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue