NIHVIVO-1232 Give the resource actions a common ancestor. Clean them up. Make them immutable objects.

This commit is contained in:
jeb228 2010-12-02 18:31:51 +00:00
parent 9279dd1b4c
commit 2fe2a52256
3 changed files with 66 additions and 72 deletions

View file

@ -0,0 +1,48 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.auth.requestedAction.resource;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyDecision;
import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.VisitingPolicyIface;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestActionConstants;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction;
/**
* A common base class for resource-related actions.
*/
public abstract class AbstractResourceAction implements RequestedAction {
private final String typeUri;
private final String subjectUri;
public AbstractResourceAction(String typeUri, String subjectUri) {
this.typeUri = typeUri;
this.subjectUri = subjectUri;
}
// This should return a list of type URIs since an Indiviudal can be
// multiple types.
public String getTypeUri() {
return typeUri;
}
public String getSubjectUri() {
return subjectUri;
}
@Override
public String getURI() {
return RequestActionConstants.actionNamespace
+ this.getClass().getName();
}
@Override
public abstract PolicyDecision accept(VisitingPolicyIface policy,
IdentifierBundle whoToAuth);
@Override
public String toString() {
return this.getClass().getSimpleName() + " <" + subjectUri + ">";
}
}

View file

@ -5,45 +5,17 @@ package edu.cornell.mannlib.vitro.webapp.auth.requestedAction.resource;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle; import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyDecision; import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyDecision;
import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.VisitingPolicyIface; import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.VisitingPolicyIface;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestActionConstants;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.SingleParameterAction;
public class AddResource extends SingleParameterAction implements RequestedAction { public class AddResource extends AbstractResourceAction implements
RequestedAction {
private String typeUri; public AddResource(String typeUri, String subjectUri) {
private String uri; super(typeUri, subjectUri);
}
public AddResource(String typeUri, String uri) { public PolicyDecision accept(VisitingPolicyIface policy,
super(); IdentifierBundle ids) {
this.typeUri = typeUri; return policy.visit(ids, this);
this.uri = uri; }
}
//This should return a list of type URIs since an Indiviudal can be multiple types.
public String getTypeUri() {
return typeUri;
}
public void setTypeUri(String typeUri) {
this.typeUri = typeUri;
}
//TODO: rename this method to avoid confusion with getURI()
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
/** returns "java//edu.cornell.mannlib.vitro.webapp.auth.requestedAction.CreateResource" */
public String getURI() {
return RequestActionConstants.actionNamespace + this.getClass().getName();
}
public PolicyDecision accept(VisitingPolicyIface policy, IdentifierBundle ids){
return policy.visit(ids,this);
}
} }

View file

@ -5,43 +5,17 @@ package edu.cornell.mannlib.vitro.webapp.auth.requestedAction.resource;
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle; import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyDecision; import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.PolicyDecision;
import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.VisitingPolicyIface; import edu.cornell.mannlib.vitro.webapp.auth.policy.ifaces.VisitingPolicyIface;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestActionConstants;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestedAction;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.SingleParameterAction;
public class DropResource extends SingleParameterAction implements RequestedAction { public class DropResource extends AbstractResourceAction implements
RequestedAction {
private String typeUri; public DropResource(String typeUri, String subjectUri) {
private String uri; super(typeUri, subjectUri);
}
public DropResource(String typeUri, String uri) { public PolicyDecision accept(VisitingPolicyIface policy,
super(); IdentifierBundle ids) {
this.typeUri = typeUri; return policy.visit(ids, this);
this.uri = uri; }
}
public String getTypeUri() {
return typeUri;
}
public void setTypeUri(String typeUri) {
this.typeUri = typeUri;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
/** returns "java//edu.cornell.mannlib.vitro.webapp.auth.requestedAction.CreateResource" */
public String getURI() {
return RequestActionConstants.actionNamespace + this.getClass().getName();
}
public PolicyDecision accept(VisitingPolicyIface policy, IdentifierBundle ids){
return policy.visit(ids, (DropResource)this);
}
} }