From 6adee49eef95c7406c9463d2bd7c03dff097b537 Mon Sep 17 00:00:00 2001 From: rjy7 Date: Fri, 11 Jun 2010 21:11:17 +0000 Subject: [PATCH] NIHVIVO-646 add authors to publications custom form --- .../vitro/webapp/beans/Individual.java | 8 +++ .../vitro/webapp/beans/IndividualImpl.java | 55 +++++++++++++++- .../dao/filtering/IndividualFiltering.java | 64 +++++++++++++++++-- .../vitro/webapp/view/VClassGroupView.java | 5 +- 4 files changed, 122 insertions(+), 10 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java index 6f925e23f..51ad79f85 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/Individual.java @@ -48,6 +48,10 @@ public interface Individual extends ResourceBean, VitroTimeWindowedResource, Com void setDataPropertyStatements(List list); List getDataPropertyStatements(); + List getDataPropertyStatements(String propertyUri); + + List getDataValues(String propertyUri); + String getDataValue(String propertyUri); VClass getVClass(); void setVClass(VClass class1); @@ -59,6 +63,10 @@ public interface Individual extends ResourceBean, VitroTimeWindowedResource, Com void setObjectPropertyStatements(List list); List getObjectPropertyStatements(); + List getObjectPropertyStatements(String propertyUri); + + List getRelatedIndividuals(String propertyUri); + Individual getRelatedIndividual(String propertyUri); List getExternalIds(); void setExternalIds(List externalIds); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/IndividualImpl.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/IndividualImpl.java index 158cd310e..afaa5163c 100755 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/IndividualImpl.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/beans/IndividualImpl.java @@ -125,8 +125,34 @@ public class IndividualImpl extends BaseResourceBean implements Individual, Comp public void setDataPropertyStatements(List list) { dataPropertyStatements = list; } - public List getDataPropertyStatements(){ + public List getDataPropertyStatements(){ return dataPropertyStatements; + } + + public List getDataPropertyStatements(String propertyUri) { + List stmts = getDataPropertyStatements(); + List stmtsForProp = new ArrayList(); + for (DataPropertyStatement stmt : stmts) { + if (stmt.getDatapropURI().equals(propertyUri)) { + stmtsForProp.add(stmt); + } + } + return stmtsForProp; + } + + public List getDataValues(String propertyUri) { + List stmts = getDataPropertyStatements(propertyUri); + List dataValues = new ArrayList(stmts.size()); + for (DataPropertyStatement stmt : stmts) { + dataValues.add(stmt.getData()); + } + return dataValues; + } + + + public String getDataValue(String propertyUri) { + List stmts = getDataPropertyStatements(propertyUri); + return stmts.isEmpty() ? null : stmts.get(0).getData(); } public VClass getVClass() { @@ -160,8 +186,33 @@ public class IndividualImpl extends BaseResourceBean implements Individual, Comp objectPropertyStatements = list; } - public List getObjectPropertyStatements(){ + public List getObjectPropertyStatements(){ return objectPropertyStatements; + } + + public List getObjectPropertyStatements(String propertyUri) { + List stmts = getObjectPropertyStatements(); + List stmtsForProp = new ArrayList(); + for (ObjectPropertyStatement stmt : stmts) { + if (stmt.getPropertyURI().equals(propertyUri)) { + stmtsForProp.add(stmt); + } + } + return stmtsForProp; + } + + public List getRelatedIndividuals(String propertyUri) { + List stmts = getObjectPropertyStatements(propertyUri); + List relatedIndividuals = new ArrayList(stmts.size()); + for (ObjectPropertyStatement stmt : stmts) { + relatedIndividuals.add(stmt.getObject()); + } + return relatedIndividuals; + } + + public Individual getRelatedIndividual(String propertyUri) { + List stmts = getObjectPropertyStatements(propertyUri); + return stmts.isEmpty() ? null : stmts.get(0).getObject(); } public List getExternalIds(){ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java index ec7e82f74..0ca84ee6e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/filtering/IndividualFiltering.java @@ -3,6 +3,7 @@ package edu.cornell.mannlib.vitro.webapp.dao.filtering; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; @@ -71,10 +72,21 @@ public class IndividualFiltering implements Individual { public List getDataPropertyStatements() { List dstmts = _innerIndividual.getDataPropertyStatements(); - List outDstmts = new LinkedList(); - Filter.filter(dstmts,_filters.getDataPropertyStatementFilter(), outDstmts); - return outDstmts; + return filterDataPropertyStatements(dstmts); } + + public List getDataPropertyStatements(String propertyUri) { + List dstmts = _innerIndividual.getDataPropertyStatements(propertyUri); + return filterDataPropertyStatements(dstmts); + } + + private List filterDataPropertyStatements(List dStmts) { + List outDstmts = new LinkedList(); + Filter.filter(dStmts,_filters.getDataPropertyStatementFilter(), outDstmts); + return outDstmts; + } + + public Map getDataPropertyMap() { Map innerMap = _innerIndividual.getDataPropertyMap(); @@ -109,7 +121,7 @@ public class IndividualFiltering implements Individual { public List getObjectPropertyStatements() { List stmts = _innerIndividual.getObjectPropertyStatements(); - return ObjectPropertyStatementDaoFiltering.filterAndWrapList(stmts, _filters); + return filterObjectPropertyStatements(stmts); // // //filter ObjectPropertyStatements from inner // List filteredStmts = new LinkedList(); @@ -133,6 +145,17 @@ public class IndividualFiltering implements Individual { // return stmts; } + public List getObjectPropertyStatements(String propertyUri) { + List stmts = _innerIndividual.getObjectPropertyStatements(propertyUri); + return filterObjectPropertyStatements(stmts); + } + + private List filterObjectPropertyStatements(List opStmts) { + return ObjectPropertyStatementDaoFiltering.filterAndWrapList(opStmts, _filters); + } + + + //TODO: may cause problems since one can get ObjectPropertyStatement list from // the ObjectProperty, and that won't be filtered. //might need to make a ObjectPropertyFiltering and a ObjectPropertyStatementFiltering @@ -560,5 +583,36 @@ public class IndividualFiltering implements Individual { public void setSearchBoost(Float boost) { _innerIndividual.setSearchBoost( boost ); } public Float getSearchBoost() {return _innerIndividual.getSearchBoost(); } - + + public List getDataValues(String propertyUri) { + List stmts = getDataPropertyStatements(propertyUri); + // Since the statements have been filtered, we can just take the data values without filtering. + List dataValues = new ArrayList(stmts.size()); + for (DataPropertyStatement stmt : stmts) { + dataValues.add(stmt.getData()); + } + return dataValues; + } + + public String getDataValue(String propertyUri) { + List stmts = getDataPropertyStatements(propertyUri); + // Since the statements have been filtered, we can just take the first data value without filtering. + return stmts.isEmpty() ? null : stmts.get(0).getData(); + } + + public List getRelatedIndividuals(String propertyUri) { + List stmts = getObjectPropertyStatements(propertyUri); + // Since the statements have been filtered, we can just take the individuals without filtering. + List relatedIndividuals = new ArrayList(stmts.size()); + for (ObjectPropertyStatement stmt : stmts) { + relatedIndividuals.add(stmt.getObject()); + } + return relatedIndividuals; + } + + public Individual getRelatedIndividual(String propertyUri) { + List stmts = getObjectPropertyStatements(propertyUri); + // Since the statements have been filtered, we can just take the first individual without filtering. + return stmts.isEmpty() ? null : stmts.get(0).getObject(); + } } \ No newline at end of file diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/view/VClassGroupView.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/view/VClassGroupView.java index 063e8b32e..78c9b44a2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/view/VClassGroupView.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/view/VClassGroupView.java @@ -47,9 +47,8 @@ public class VClassGroupView extends ViewObject { if (classes == null) { List classList = vClassGroup.getVitroClassList(); classes = new ArrayList(); - Iterator i = classList.iterator(); - while (i.hasNext()) { - classes.add(new VClassView((VClass) i.next())); + for (VClass vc : classList) { + classes.add(new VClassView(vc)); } }