NIHVIVO-1333 Make ObjectPropertyTemplateModel a non-abstract class to represent uncollated object properties, so UncollatedObjectPropertyTemplateModel is not needed. Some test code in the template to distinguish collated and uncollated object properties.

This commit is contained in:
rjy7 2010-12-06 22:55:17 +00:00
parent 96b10bed71
commit cb230a10c3
5 changed files with 34 additions and 17 deletions

View file

@ -7,11 +7,11 @@ import java.util.List;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
public class CollatedObjectProperty extends ObjectPropertyTemplateModel { public class CollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateModel {
private List<SubclassList> subclassList; private List<SubclassList> subclassList;
CollatedObjectProperty(ObjectProperty property) { CollatedObjectPropertyTemplateModel(ObjectProperty property) {
super(property); super(property);
subclassList = new ArrayList<SubclassList>(); subclassList = new ArrayList<SubclassList>();
} }
@ -20,13 +20,14 @@ public class CollatedObjectProperty extends ObjectPropertyTemplateModel {
return subclassList; return subclassList;
} }
public List<SubclassList> getStatements() { // public List<SubclassList> getStatements() {
return subclassList; // return subclassList;
} // }
/* Access methods for templates */ /* Access methods for templates */
public boolean getIsCollatedBySubtype() { @Override
public boolean isCollatedBySubclass() {
return true; return true;
} }
} }

View file

@ -2,16 +2,27 @@
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual; package edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual;
import java.util.ArrayList;
import java.util.List;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel { public class ObjectPropertyTemplateModel extends PropertyTemplateModel {
private static final String TYPE = "object"; private static final String TYPE = "object";
private List<ObjectPropertyStatementTemplateModel> statements;
ObjectPropertyTemplateModel(ObjectProperty property) { ObjectPropertyTemplateModel(ObjectProperty property) {
super(property); super(property);
statements = new ArrayList<ObjectPropertyStatementTemplateModel>();
// get the statements from the db via sparql query
} }
protected static ObjectPropertyTemplateModel getObjectPropertyTemplateModel(ObjectProperty op) {
return op.getCollateBySubclass() ? new CollatedObjectPropertyTemplateModel(op)
: new ObjectPropertyTemplateModel(op);
}
/* Access methods for templates */ /* Access methods for templates */
@ -19,7 +30,9 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
return TYPE; return TYPE;
} }
public abstract boolean getIsCollatedBySubtype(); public boolean isCollatedBySubclass() {
return false;
}
@Override @Override
public String getAddLink() { public String getAddLink() {
@ -40,4 +53,9 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
public List<ObjectPropertyStatementTemplateModel> getStatements() {
// TODO Auto-generated method stub
return null;
}
} }

View file

@ -26,11 +26,7 @@ public class PropertyGroupTemplateModel extends BaseTemplateModel {
for (Property p : propertyList) { for (Property p : propertyList) {
if (p instanceof ObjectProperty) { if (p instanceof ObjectProperty) {
ObjectProperty op = (ObjectProperty)p; ObjectProperty op = (ObjectProperty)p;
if (op.getCollateBySubclass()) { properties.add(ObjectPropertyTemplateModel.getObjectPropertyTemplateModel(op));
properties.add(new CollatedObjectProperty(op));
} else {
properties.add(new UncollatedObjectProperty(op));
}
} else { } else {
properties.add(new DataPropertyTemplateModel((DataProperty)p, subject, wdf)); properties.add(new DataPropertyTemplateModel((DataProperty)p, subject, wdf));
} }

View file

@ -7,17 +7,18 @@ import java.util.List;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty; import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
public class UncollatedObjectProperty extends ObjectPropertyTemplateModel { public class UncollatedObjectPropertyTemplateModel extends ObjectPropertyTemplateModel {
private List<ObjectPropertyStatementTemplateModel> statements; private List<ObjectPropertyStatementTemplateModel> statements;
UncollatedObjectProperty(ObjectProperty property) { UncollatedObjectPropertyTemplateModel(ObjectProperty property) {
super(property); super(property);
statements = new ArrayList<ObjectPropertyStatementTemplateModel>(); statements = new ArrayList<ObjectPropertyStatementTemplateModel>();
// get the statements from the db via sparql query // get the statements from the db via sparql query
} }
@Override
public List<ObjectPropertyStatementTemplateModel> getStatements() { public List<ObjectPropertyStatementTemplateModel> getStatements() {
return statements; return statements;
} }
@ -25,7 +26,8 @@ public class UncollatedObjectProperty extends ObjectPropertyTemplateModel {
/* Access methods for templates */ /* Access methods for templates */
public boolean getIsCollatedBySubtype() { @Override
public boolean isCollatedBySubclass() {
return false; return false;
} }
} }

View file

@ -42,7 +42,7 @@
</#list> </#list>
<#else> <#-- object property --> <#else> <#-- object property -->
<p>Collated? ${property.collatedBySubclass?string("yes", "no")}</p>
</#if> </#if>
</div> <!-- end property --> </div> <!-- end property -->
</#list> </#list>