custom form changes for NIHVIVO-601, 764 and 2602 plus all related subtasks

This commit is contained in:
tworrall 2012-03-06 14:40:12 +00:00
parent b7b7607242
commit 4782e06ff3
11 changed files with 1161 additions and 115 deletions

View file

@ -2,47 +2,284 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpSession;
import com.hp.hpl.jena.vocabulary.RDFS;
import com.hp.hpl.jena.vocabulary.XSD;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeIntervalValidationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisionVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
public class AddPresenterRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
private static String template = "addPresenterRoleToPerson.ftl";
@Override
String getTemplate() {
return template;
}
public class AddPresenterRoleToPersonGenerator extends VivoBaseGenerator implements
EditConfigurationGenerator {
@Override
String getRoleType() {
return "http://vivoweb.org/ontology/core#PresenterRole";
}
@Override
RoleActivityOptionTypes getRoleActivityTypeOptionsType() {
return RoleActivityOptionTypes.HARDCODED_LITERALS;
}
@Override
String getRoleActivityTypeObjectClassUri(VitroRequest vreq) {
return null;
}
final static String presentationClass = vivoCore + "Presentation";
final static String roleClass = vivoCore + "PresenterRole";
final static String conferenceClass = bibo + "Conference";
final static String hasRolePred = vivoCore + "hasPresenterRole";
final static String roleOfPred = vivoCore + "presenterRoleOf";
final static String roleRealizedInPred = vivoCore + "roleRealizedIn";
final static String realizedRolePred = vivoCore + "realizedRole";
final static String includesEventPred = vivoCore + "includesEvent";
final static String eventWithinPred = vivoCore + "eventWithin";
final static String roleToInterval = vivoCore + "dateTimeInterval";
final static String intervalType = vivoCore + "DateTimeInterval";
final static String intervalToStart = vivoCore + "start";
final static String intervalToEnd = vivoCore + "end";
final static String dateTimeValueType = vivoCore + "DateTimeValue";
final static String dateTimeValue = vivoCore + "dateTime";
final static String dateTimePrecision = vivoCore + "dateTimePrecision";
public AddPresenterRoleToPersonGenerator() {}
@Override
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq,
HttpSession session) {
EditConfigurationVTwo conf = new EditConfigurationVTwo();
initBasics(conf, vreq);
initPropertyParameters(vreq, session, conf);
initObjectPropForm(conf, vreq);
conf.setTemplate("addPresenterRoleToPerson.ftl");
conf.setVarNameForSubject("person");
conf.setVarNameForPredicate("predicate");
conf.setVarNameForObject("role");
conf.setN3Required( Arrays.asList( n3ForNewRole,
roleLabelAssertion,
presTypeAssertion,
presLabelAssertion ) );
conf.setN3Optional( Arrays.asList( n3ForConference, n3ForConfLabel, n3ForStart, n3ForEnd ) );
conf.addNewResource("presentation", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("conference", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("role", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("intervalNode", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("startNode", DEFAULT_NS_FOR_NEW_RESOURCE);
conf.addNewResource("endNode", DEFAULT_NS_FOR_NEW_RESOURCE);
//uris in scope: none
//literals in scope: none
conf.setUrisOnform(Arrays.asList("presentation", "conference", "role", "presentationType"));
conf.setLiteralsOnForm(Arrays.asList("presentationLabel", "conferenceLabel", "roleLabel"));
conf.addSparqlForExistingLiteral("presentationLabel", presentationLabelQuery);
conf.addSparqlForExistingLiteral("conferenceLabel", conferenceLabelQuery);
conf.addSparqlForExistingLiteral("roleLabel", roleLabelQuery);
conf.addSparqlForExistingUris("presentation", presentationQuery);
conf.addSparqlForExistingUris("conference", conferenceQuery);
conf.addSparqlForExistingUris("presentationType", presentationTypeQuery);
conf.addSparqlForExistingLiteral(
"startField-value", existingStartDateQuery);
conf.addSparqlForExistingLiteral(
"endField-value", existingEndDateQuery);
conf.addSparqlForExistingUris(
"intervalNode", existingIntervalNodeQuery);
conf.addSparqlForExistingUris("startNode", existingStartNodeQuery);
conf.addSparqlForExistingUris("endNode", existingEndNodeQuery);
conf.addSparqlForExistingUris("startField-precision",
existingStartPrecisionQuery);
conf.addSparqlForExistingUris("endField-precision",
existingEndPrecisionQuery);
conf.addField( new FieldVTwo().
setName("presentation").
setOptionsType(FieldVTwo.OptionsType.INDIVIDUALS_VIA_VCLASS).
setObjectClassUri(presentationClass)
);
//Presenter role involves hard-coded options for the "right side" of the role or activity
@Override
protected HashMap<String, String> getRoleActivityTypeLiteralOptions() {
HashMap<String, String> literalOptions = new HashMap<String, String>();
literalOptions.put("", "Select type");
literalOptions.put("http://vivoweb.org/ontology/core#Presentation", "Presentation");
literalOptions.put("http://vivoweb.org/ontology/core#InvitedTalk","Invited Talk");
return literalOptions;
}
conf.addField( new FieldVTwo().
setName("presentationLabel")
.setRangeDatatypeUri( XSD.xstring.toString() ).
setValidators( list("nonempty") )
);
conf.addField( new FieldVTwo().
setName("presentationType").
setOptionsType(FieldVTwo.OptionsType.CHILD_VCLASSES_WITH_PARENT).
setObjectClassUri(presentationClass).
setValidators( list("nonempty") )
);
conf.addField( new FieldVTwo().
setName("roleLabel")
.setRangeDatatypeUri( XSD.xstring.toString() ).
setValidators( list("nonempty") )
);
@Override
boolean isShowRoleLabelField(){return true;}
conf.addField( new FieldVTwo().
setName("conference").
setOptionsType(FieldVTwo.OptionsType.INDIVIDUALS_VIA_VCLASS).
setObjectClassUri(conferenceClass)
);
conf.addField( new FieldVTwo().
setName("conferenceLabel").
setRangeDatatypeUri(XSD.xstring.toString() )
);
conf.addField( new FieldVTwo().setName("startField").
setEditElement(
new DateTimeWithPrecisionVTwo(null,
VitroVocabulary.Precision.YEAR.uri(),
VitroVocabulary.Precision.NONE.uri())
)
);
conf.addField( new FieldVTwo().setName("endField").
setEditElement(
new DateTimeWithPrecisionVTwo(null,
VitroVocabulary.Precision.YEAR.uri(),
VitroVocabulary.Precision.NONE.uri())
)
);
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
conf.addValidator(new AntiXssValidation());
prepare(vreq, conf);
return conf;
}
/* N3 assertions */
final static String n3ForNewRole =
"@prefix core: <" + vivoCore + "> . \n\n" +
"?person <" + hasRolePred + "> ?role . \n" +
"?role a <" + roleClass + "> . \n" +
"?role <" + roleOfPred + "> ?person . \n" +
"?role <" + roleRealizedInPred + "> ?presentation . \n" +
"?presentation <" + realizedRolePred + "> ?role .";
final static String roleLabelAssertion =
"?role <" + label + "> ?roleLabel .";
final static String presLabelAssertion =
"?presentation <" + label + "> ?presentationLabel .";
final static String presTypeAssertion =
"?presentation a ?presentationType .";
final static String n3ForConference =
"?conference a <" + conferenceClass + "> . \n" +
"?conference <" + includesEventPred + "> ?presentation . \n" +
"?presentation <" + eventWithinPred + "> ?conference . ";
final static String n3ForConfLabel =
"?conference <" + label + "> ?conferenceLabel .";
final static String n3ForStart =
"?role <" + roleToInterval + "> ?intervalNode . \n" +
"?intervalNode a <" + intervalType + "> . \n" +
"?intervalNode <" + intervalToStart + "> ?startNode . \n" +
"?startNode a <" + dateTimeValueType + "> . \n" +
"?startNode <" + dateTimeValue + "> ?startField-value . \n" +
"?startNode <" + dateTimePrecision + "> ?startField-precision . \n";
final static String n3ForEnd =
"?role <" + roleToInterval + "> ?intervalNode . \n" +
"?intervalNode a <" + intervalType + "> . \n" +
"?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
"?endNode a <" + dateTimeValueType + "> . \n" +
"?endNode <" + dateTimeValue + "> ?endField-value . \n" +
"?endNode <" + dateTimePrecision + "> ?endField-precision . \n";
/* Queries for editing an existing entry */
final static String roleLabelQuery =
"SELECT ?existingRoleLabel WHERE { \n" +
"?role <" + label + "> ?existingRoleLabel . }";
final static String presentationQuery =
"SELECT ?existingPresentation WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . }";
final static String presentationLabelQuery =
"SELECT ?existingPresentationLabel WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation <" + label + "> ?existingPresentationLabel . }";
final static String presentationTypeQuery =
"PREFIX vitro: <" + VitroVocabulary.vitroURI + "> \n" +
"SELECT ?existingPresentationType WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation vitro:mostSpecificType ?existingPresentationType . }";
final static String conferenceQuery =
"SELECT ?existingConference WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation <" + eventWithinPred + "> ?existingConference . }";
final static String conferenceLabelQuery =
"SELECT ?existingConferenceLabel WHERE { \n" +
"?role <" + roleRealizedInPred + "> ?existingPresentation . " +
"?existingPresentation <" + eventWithinPred + "> ?existingConference . \n" +
"?existingConference <" + label + "> ?existingConferenceLabel . }";
final static String existingStartDateQuery =
"SELECT ?existingDateStart WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?startNode . \n" +
" ?startNode a <" + dateTimeValueType +"> . \n" +
" ?startNode <" + dateTimeValue + "> ?existingDateStart . }";
final static String existingEndDateQuery =
"SELECT ?existingEndDate WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n " +
" ?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
" ?endNode a <" + dateTimeValueType + "> . \n" +
" ?endNode <" + dateTimeValue + "> ?existingEndDate . }";
final static String existingIntervalNodeQuery =
"SELECT ?existingIntervalNode WHERE { \n" +
" ?role <" + roleToInterval + "> ?existingIntervalNode . \n" +
" ?existingIntervalNode a <" + intervalType + "> . }";
final static String existingStartNodeQuery =
"SELECT ?existingStartNode WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?existingStartNode . \n" +
" ?existingStartNode a <" + dateTimeValueType + "> . } ";
final static String existingEndNodeQuery =
"SELECT ?existingEndNode WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToEnd + "> ?existingEndNode . \n" +
" ?existingEndNode a <" + dateTimeValueType + "> .} ";
final static String existingStartPrecisionQuery =
"SELECT ?existingStartPrecision WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToStart + "> ?startNode . \n" +
" ?startNode a <" + dateTimeValueType + "> . \n" +
" ?startNode <" + dateTimePrecision + "> ?existingStartPrecision . }";
final static String existingEndPrecisionQuery =
"SELECT ?existingEndPrecision WHERE { \n" +
" ?role <" + roleToInterval + "> ?intervalNode . \n" +
" ?intervalNode a <" + intervalType + "> . \n" +
" ?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
" ?endNode a <" + dateTimeValueType + "> . \n" +
" ?endNode <" + dateTimePrecision + "> ?existingEndPrecision . }";
}

View file

@ -13,6 +13,7 @@ import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.vocabulary.XSD;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
@ -21,7 +22,11 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUti
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils;
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeIntervalValidationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisionVTwo;
/**
* On an add/new, this will show a form, on an edit/update this will skip to the
@ -29,6 +34,25 @@ import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
*/
public class AddPublicationToPersonGenerator extends VivoBaseGenerator implements EditConfigurationGenerator {
final static String collectionClass = bibo + "Periodical";
final static String bookClass = bibo + "Document";
final static String conferenceClass = bibo + "Conference";
final static String editorClass = foaf + "Person";
final static String publisherClass = vivoCore + "Publisher";
final static String presentedAtPred = bibo + "presentedAt";
final static String localePred = vivoCore + "placeOfPublication";
final static String volumePred = bibo + "volume";
final static String numberPred = bibo + "number";
final static String issuePred = bibo + "issue";
final static String startPagePred = bibo + "pageStart";
final static String endPagePred = bibo + "pageEnd";
final static String dateTimePred = vivoCore + "dateTimeValue";
final static String dateTimeValueType = vivoCore + "DateTimeValue";
final static String dateTimeValue = vivoCore + "dateTime";
final static String dateTimePrecision = vivoCore + "dateTimePrecision";
public AddPublicationToPersonGenerator() {}
@Override
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq, HttpSession session) {
@ -89,6 +113,7 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
editConfiguration.setTemplate("addPublicationToPerson.ftl");
// adding person has publication validator
editConfiguration.addValidator(new PersonHasPublicationValidator());
editConfiguration.addValidator(new AntiXssValidation());
// Adding additional data, specifically edit mode
addFormSpecificData(editConfiguration, vreq);
@ -113,14 +138,32 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
}
/***N3 strings both required and optional***/
private List<String> generateN3Optional() {
return list(getN3ForExistingPub(),
getN3ForNewPub(),
getN3NewPubNameAssertion(),
getN3NewPubTypeAssertion());
getN3NewPubTypeAssertion(),
getN3ForCollection(),
getN3CollectionNameAssertion(),
getN3ForBook(),
getN3BookNameAssertion(),
getN3ForConference(),
getN3ConferenceNameAssertion(),
getN3ForEvent(),
getN3EventNameAssertion(),
getN3ForEditor(),
getN3EditorNameAssertion(),
getN3ForPublisher(),
getN3PublisherNameAssertion(),
getN3ForLocaleAssertion(),
getN3ForVolumeAssertion(),
getN3ForNumberAssertion(),
getN3ForIssueAssertion(),
getN3ForStartPageAssertion(),
getN3ForEndPageAssertion(),
getN3ForDateTimeAssertion()
);
}
@ -158,6 +201,110 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
}
private String getN3ForCollection() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri vivo:hasPublicationVenue ?collectionUri . \n" +
"?collectionUri a <" + collectionClass + "> . \n" +
"?collectionUri vivo:publicationVenueFor ?pubUri . ";
}
private String getN3CollectionNameAssertion() {
return "?collectionUri <" + label + "> ?collection .";
}
private String getN3ForBook() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri vivo:hasPublicationVenue ?bookUri . \n" +
"?bookUri a <" + bookClass + "> . \n" +
"?bookUri vivo:publicationVenueFor ?pubUri . ";
}
private String getN3BookNameAssertion() {
return "?bookUri <" + label + "> ?book .";
}
private String getN3ForConference() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + presentedAtPred + "> ?conferenceUri . \n" +
"?conferenceUri a <" + conferenceClass + "> . \n" +
"?conferenceUri vivo:includesEvent ?pubUri . ";
}
private String getN3ConferenceNameAssertion() {
return "?conferenceUri <" + label + "> ?conference .";
}
private String getN3ForEvent() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri vivo:proceedingsOf ?eventUri . \n" +
"?eventUri a <" + conferenceClass + "> . \n" +
"?eventUri vivo:hasProceedings ?pubUri . ";
}
private String getN3EventNameAssertion() {
return "?eventUri <" + label + "> ?event .";
}
private String getN3ForEditor() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri vivo:editor ?editorUri . \n" +
"?editorUri a <" + editorClass + "> . \n" +
"?editorUri vivo:editorOf ?pubUri . ";
}
private String getN3EditorNameAssertion() {
return "?editorUri <" + label + "> ?editor .";
}
private String getN3ForPublisher() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri vivo:publisher ?publisherUri . \n" +
"?publisherUri a <" + publisherClass + "> . \n" +
"?publisherUri vivo:publisherOf ?pubUri . ";
}
private String getN3PublisherNameAssertion() {
return "?publisherUri <" + label + "> ?publisher .";
}
private String getN3ForLocaleAssertion() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + localePred + "> ?locale . ";
}
private String getN3ForVolumeAssertion() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + volumePred + "> ?volume . ";
}
private String getN3ForNumberAssertion() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + numberPred + "> ?number . ";
}
private String getN3ForIssueAssertion() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + issuePred + "> ?issue . ";
}
private String getN3ForStartPageAssertion() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + startPagePred + "> ?startPage . ";
}
private String getN3ForEndPageAssertion() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + endPagePred + ">?endPage . ";
}
private String getN3ForDateTimeAssertion() {
return "@prefix vivo: <" + vivoCore + "> . \n" +
"?pubUri <" + dateTimePred + "> ?dateTimeNode . \n" +
"?dateTimeNode a <" + dateTimeValueType + "> . \n" +
"?dateTimeNode <" + dateTimeValue + "> ?dateTime-value . \n" +
"?dateTimeNode <" + dateTimePrecision + "> ?dateTime-precision . ";
}
/** Get new resources */
private Map<String, String> generateNewResources(VitroRequest vreq) {
String DEFAULT_NS_TOKEN=null; //null forces the default NS
@ -165,6 +312,13 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
HashMap<String, String> newResources = new HashMap<String, String>();
newResources.put("authorshipUri", DEFAULT_NS_TOKEN);
newResources.put("pubUri", DEFAULT_NS_TOKEN);
newResources.put("collectionUri", DEFAULT_NS_TOKEN);
newResources.put("bookUri", DEFAULT_NS_TOKEN);
newResources.put("conferenceUri", DEFAULT_NS_TOKEN);
newResources.put("eventUri", DEFAULT_NS_TOKEN);
newResources.put("editorUri", DEFAULT_NS_TOKEN);
newResources.put("publisherUri", DEFAULT_NS_TOKEN);
newResources.put("dateTimeNode", DEFAULT_NS_TOKEN);
return newResources;
}
@ -186,11 +340,23 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
//add role activity and roleActivityType to uris on form
urisOnForm.add("pubUri");
urisOnForm.add("pubType");
urisOnForm.add("collectionUri");
urisOnForm.add("bookUri");
urisOnForm.add("conferenceUri");
urisOnForm.add("eventUri");
urisOnForm.add("editorUri");
urisOnForm.add("publisherUri");
editConfiguration.setUrisOnform(urisOnForm);
//activity label and role label are literals on form
List<String> literalsOnForm = new ArrayList<String>();
literalsOnForm.add("title");
literalsOnForm.add("locale");
literalsOnForm.add("volume");
literalsOnForm.add("number");
literalsOnForm.add("issue");
literalsOnForm.add("startPage");
literalsOnForm.add("endPage");
editConfiguration.setLiteralsOnForm(literalsOnForm);
}
@ -212,6 +378,25 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
setTitleField(editConfiguration);
setPubTypeField(editConfiguration);
setPubUriField(editConfiguration);
setCollectionLabelField(editConfiguration);
setCollectionUriField(editConfiguration);
setBookLabelField(editConfiguration);
setBookUriField(editConfiguration);
setConferenceLabelField(editConfiguration);
setConferenceUriField(editConfiguration);
setEventLabelField(editConfiguration);
setEventUriField(editConfiguration);
setEditorLabelField(editConfiguration);
setEditorUriField(editConfiguration);
setPublisherLabelField(editConfiguration);
setPublisherUriField(editConfiguration);
setLocaleField(editConfiguration);
setVolumeField(editConfiguration);
setNumberField(editConfiguration);
setIssueField(editConfiguration);
setStartPageField(editConfiguration);
setEndPageField(editConfiguration);
setDateTimeField(editConfiguration);
}
private void setTitleField(EditConfigurationVTwo editConfiguration) {
@ -220,13 +405,8 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
setName("title").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setPubTypeField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("pubType").
@ -234,16 +414,154 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
setLiteralOptions(getPublicationTypeLiteralOptions()));
}
private void setPubUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("pubUri").
setObjectClassUri(personClass));
}
private void setCollectionLabelField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("collection").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setCollectionUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("collectionUri").
setObjectClassUri(collectionClass));
}
private void setBookLabelField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("book").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setBookUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("bookUri").
setObjectClassUri(bookClass));
}
private void setConferenceLabelField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("conference").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setConferenceUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("conferenceUri").
setObjectClassUri(conferenceClass));
}
private void setEventLabelField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("event").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setEventUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("eventUri").
setObjectClassUri(conferenceClass));
}
private void setEditorLabelField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("editor").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setEditorUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("editorUri").
setObjectClassUri(editorClass));
}
private void setPublisherLabelField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("publisher").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setPublisherUriField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("publisherUri").
setObjectClassUri(publisherClass));
}
private void setLocaleField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("locale").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setVolumeField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("volume").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setNumberField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("number").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setIssueField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("issue").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setStartPageField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("startPage").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setEndPageField(EditConfigurationVTwo editConfiguration) {
String stringDatatypeUri = XSD.xstring.toString();
editConfiguration.addField(new FieldVTwo().
setName("endPage").
setValidators(list("datatype:" + stringDatatypeUri)).
setRangeDatatypeUri(stringDatatypeUri));
}
private void setDateTimeField(EditConfigurationVTwo editConfiguration) {
editConfiguration.addField(new FieldVTwo().
setName("dateTime").
setEditElement(
new DateTimeWithPrecisionVTwo(null,
VitroVocabulary.Precision.YEAR.uri(),
VitroVocabulary.Precision.NONE.uri())
)
);
}
private List<List<String>> getPublicationTypeLiteralOptions() {
List<List<String>> literalOptions = new ArrayList<List<String>>();
@ -278,8 +596,6 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
return literalOptions;
}
//Form specific data
public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();

View file

@ -200,9 +200,9 @@ public class PersonHasAwardOrHonorGenerator extends VivoBaseGenerator implements
"?awardReceipt <"+ descriptionPred +"> ?description .";
final static String n3ForOrgAssertion =
"?award <" + awardConferredByPred +"> ?org . \n" +
"?awardReceipt <" + awardConferredByPred +"> ?org . \n" +
"?org a <" + orgClass + "> . \n" +
"?org <" + awardConferredPred + "> ?award .";
"?org <" + awardConferredPred + "> ?awardReceipt .";
final static String orgLabelAssertion =
"?org <"+ label + "> ?orgLabel .";
@ -238,8 +238,8 @@ public class PersonHasAwardOrHonorGenerator extends VivoBaseGenerator implements
final static String orgQuery =
"SELECT ?existingOrg WHERE { \n" +
" ?award <" + awardConferredByPred + "> ?existingOrg . \n" +
"}";
" ?awardReceipt <" + awardConferredByPred + "> ?existingOrg . \n" +
" ?existingOrg <" + awardConferredPred + "> ?awardReceipt . }";
final static String awardReceiptLabelQuery =
"SELECT ?existingAwardReceiptLabel WHERE { \n" +

View file

@ -16,6 +16,7 @@ public abstract class VivoBaseGenerator extends BaseEditConfigurationGenerator i
final static String foaf = "http://xmlns.com/foaf/0.1/";
final static String type =VitroVocabulary.RDF_TYPE ;
final static String label =rdfs+"label" ;
final static String bibo = "http://purl.org/ontology/bibo/";
final static String trainingClass = vivoCore+"EducationalTraining" ;
final static String degreeClass =vivoCore+"AcademicDegree" ;