You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2011/04/26 20:24:13 UTC
svn commit: r1096837 [12/14] - in /incubator/isis/trunk:
core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/
core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/map/
core/metamodel/src/main/java/org/apache/isis/core/met...
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java Tue Apr 26 18:24:05 2011
@@ -17,16 +17,11 @@
* under the License.
*/
-
package org.apache.isis.core.metamodel.specloader.specimpl;
import java.util.Collections;
import java.util.List;
-import org.apache.log4j.Logger;
-
-import com.google.common.collect.Lists;
-
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.query.QueryFindAllInstances;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -70,21 +65,23 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.log4j.Logger;
+import com.google.common.collect.Lists;
public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectAction {
private final static Logger LOG = Logger.getLogger(ObjectActionImpl.class);
public static ActionType getType(final String typeStr) {
- ActionType type = ActionType.valueOf(typeStr);
- if (type == null) {
- throw new IllegalArgumentException();
- }
- return type;
+ final ActionType type = ActionType.valueOf(typeStr);
+ if (type == null) {
+ throw new IllegalArgumentException();
+ }
+ return type;
}
private final ServicesProvider servicesProvider;
-
+
/**
* Lazily initialized by {@link #getParameters()} (so don't use directly!)
*/
@@ -105,14 +102,11 @@ public class ObjectActionImpl extends Ob
// Constructors
// //////////////////////////////////////////////////////////////////
- public ObjectActionImpl(
- final FacetedMethod facetedMethod,
- final ObjectMemberContext objectMemberContext,
- final ServicesProvider servicesProvider) {
+ public ObjectActionImpl(final FacetedMethod facetedMethod, final ObjectMemberContext objectMemberContext,
+ final ServicesProvider servicesProvider) {
super(facetedMethod, FeatureType.ACTION, objectMemberContext);
this.servicesProvider = servicesProvider;
}
-
// //////////////////////////////////////////////////////////////////
// ReturnType, OnType, Actions (set)
@@ -154,10 +148,10 @@ public class ObjectActionImpl extends Ob
// /////////////////////////////////////////////////////////////
// getInstance
// /////////////////////////////////////////////////////////////
-
+
@Override
- public Instance getInstance(ObjectAdapter adapter) {
- ObjectAction specification = this;
+ public Instance getInstance(final ObjectAdapter adapter) {
+ final ObjectAction specification = this;
return adapter.getInstance(specification);
}
@@ -185,7 +179,7 @@ public class ObjectActionImpl extends Ob
return getType(this);
}
- private static ActionType getType(FacetHolder facetHolder) {
+ private static ActionType getType(final FacetHolder facetHolder) {
Facet facet = facetHolder.getFacet(DebugFacet.class);
if (facet != null) {
return ActionType.DEBUG;
@@ -203,15 +197,15 @@ public class ObjectActionImpl extends Ob
@Override
public boolean isContributed() {
- if (!knownWhetherContributed) {
- contributed = determineWhetherContributed();
- knownWhetherContributed = true;
- }
+ if (!knownWhetherContributed) {
+ contributed = determineWhetherContributed();
+ knownWhetherContributed = true;
+ }
return contributed;
}
- private boolean determineWhetherContributed() {
- if (getOnType().isService() && getParameterCount() > 0) {
+ private boolean determineWhetherContributed() {
+ if (getOnType().isService() && getParameterCount() > 0) {
final List<ObjectActionParameter> params = getParameters();
for (int i = 0; i < params.size(); i++) {
if (params.get(i).isObject()) {
@@ -220,7 +214,7 @@ public class ObjectActionImpl extends Ob
}
}
return false;
- }
+ }
// /////////////////////////////////////////////////////////////
// Parameters
@@ -233,7 +227,7 @@ public class ObjectActionImpl extends Ob
@Override
public boolean promptForParameters(final ObjectAdapter target) {
- final List<ObjectActionParameter> parameters = getParameters();
+ final List<ObjectActionParameter> parameters = getParameters();
if (isContributed() && !target.getSpecification().isService()) {
return getParameterCount() > 1 || !target.getSpecification().isOfType(parameters.get(0).getSpecification());
} else {
@@ -245,8 +239,8 @@ public class ObjectActionImpl extends Ob
* Build lazily by {@link #getParameters()}.
*
* <p>
- * Although this is lazily loaded, the method is also <tt>synchronized</tt> so there shouldn't be any
- * thread race conditions.
+ * Although this is lazily loaded, the method is also <tt>synchronized</tt> so there shouldn't be any thread race
+ * conditions.
*/
@Override
public synchronized List<ObjectActionParameter> getParameters() {
@@ -255,8 +249,9 @@ public class ObjectActionImpl extends Ob
final List<ObjectActionParameter> parameters = Lists.newArrayList();
final List<FacetedMethodParameter> paramPeers = getFacetedMethod().getParameters();
for (int i = 0; i < parameterCount; i++) {
- TypedHolder paramPeer = paramPeers.get(i);
- final ObjectSpecification specification = ObjectMemberAbstract.getSpecification(getSpecificationLookup(), paramPeer.getType());
+ final TypedHolder paramPeer = paramPeers.get(i);
+ final ObjectSpecification specification =
+ ObjectMemberAbstract.getSpecification(getSpecificationLookup(), paramPeer.getType());
if (specification.isParseable()) {
parameters.add(new ObjectActionParameterParseable(i, this, paramPeer));
} else if (specification.isNotCollection()) {
@@ -274,9 +269,9 @@ public class ObjectActionImpl extends Ob
@Override
public synchronized List<ObjectSpecification> getParameterTypes() {
- List<ObjectSpecification> parameterTypes = Lists.newArrayList();
+ final List<ObjectSpecification> parameterTypes = Lists.newArrayList();
final List<ObjectActionParameter> parameters = getParameters();
- for(ObjectActionParameter parameter: parameters) {
+ for (final ObjectActionParameter parameter : parameters) {
parameterTypes.add(parameter.getSpecification());
}
return parameterTypes;
@@ -297,8 +292,8 @@ public class ObjectActionImpl extends Ob
private ObjectActionParameter getParameter(final int position) {
final List<ObjectActionParameter> parameters = getParameters();
if (position >= parameters.size()) {
- throw new IllegalArgumentException("getParameter(int): only " + parameters.size() + " parameters, position="
- + position);
+ throw new IllegalArgumentException("getParameter(int): only " + parameters.size()
+ + " parameters, position=" + position);
}
return parameters.get(position);
}
@@ -308,10 +303,8 @@ public class ObjectActionImpl extends Ob
// /////////////////////////////////////////////////////////////
@Override
- public VisibilityContext<?> createVisibleInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter targetObjectAdapter) {
+ public VisibilityContext<?> createVisibleInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter targetObjectAdapter) {
return new ActionVisibilityContext(session, invocationMethod, targetObjectAdapter, getIdentifier());
}
@@ -325,10 +318,8 @@ public class ObjectActionImpl extends Ob
// /////////////////////////////////////////////////////////////
@Override
- public UsabilityContext<?> createUsableInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter targetObjectAdapter) {
+ public UsabilityContext<?> createUsableInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter targetObjectAdapter) {
return new ActionUsabilityContext(session, invocationMethod, targetObjectAdapter, getIdentifier());
}
@@ -351,9 +342,8 @@ public class ObjectActionImpl extends Ob
return isProposedArgumentSetValidResultSet(realTarget(object), parameters).createConsent();
}
- private InteractionResultSet isProposedArgumentSetValidResultSet(
- final ObjectAdapter object,
- final ObjectAdapter[] proposedArguments) {
+ private InteractionResultSet isProposedArgumentSetValidResultSet(final ObjectAdapter object,
+ final ObjectAdapter[] proposedArguments) {
final InteractionInvocationMethod invocationMethod = InteractionInvocationMethod.BY_USER;
final InteractionResultSet resultSet = new InteractionResultSet();
@@ -362,14 +352,16 @@ public class ObjectActionImpl extends Ob
// TODO: doesn't seem to be used...
// ObjectAdapter[] params = realParameters(object, proposedArguments);
for (int i = 0; i < proposedArguments.length; i++) {
- final ValidityContext<?> ic = actionParameters.get(i).createProposedArgumentInteractionContext(getAuthenticationSession(),
+ final ValidityContext<?> ic =
+ actionParameters.get(i).createProposedArgumentInteractionContext(getAuthenticationSession(),
invocationMethod, object, proposedArguments, i);
InteractionUtils.isValidResultSet(getParameter(i), ic, resultSet);
}
}
// only check the action's own validity if all the arguments are OK.
if (resultSet.isAllowed()) {
- final ValidityContext<?> ic = createActionInvocationInteractionContext(getAuthenticationSession(), invocationMethod, object,
+ final ValidityContext<?> ic =
+ createActionInvocationInteractionContext(getAuthenticationSession(), invocationMethod, object,
proposedArguments);
InteractionUtils.isValidResultSet(this, ic, resultSet);
}
@@ -377,12 +369,11 @@ public class ObjectActionImpl extends Ob
}
@Override
- public ActionInvocationContext createActionInvocationInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter targetObject,
- final ObjectAdapter[] proposedArguments) {
- return new ActionInvocationContext(getAuthenticationSession(), invocationMethod, targetObject, getIdentifier(), proposedArguments);
+ public ActionInvocationContext createActionInvocationInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter targetObject,
+ final ObjectAdapter[] proposedArguments) {
+ return new ActionInvocationContext(getAuthenticationSession(), invocationMethod, targetObject, getIdentifier(),
+ proposedArguments);
}
// //////////////////////////////////////////////////////////////////
@@ -403,9 +394,8 @@ public class ObjectActionImpl extends Ob
}
/**
- * Previously (prior to 3.0.x) this method had a check to see if the action was on an instance. With the
- * reflector redesign this has been removed, because NOF 3.x only supports instance methods, not
- * class-level methods.
+ * Previously (prior to 3.0.x) this method had a check to see if the action was on an instance. With the reflector
+ * redesign this has been removed, because NOF 3.x only supports instance methods, not class-level methods.
*/
@Override
public ObjectAdapter realTarget(final ObjectAdapter target) {
@@ -422,7 +412,7 @@ public class ObjectActionImpl extends Ob
private ObjectAdapter findService() {
final List<ObjectAdapter> services = getServicesProvider().getServices();
- for (ObjectAdapter serviceAdapter : services) {
+ for (final ObjectAdapter serviceAdapter : services) {
if (serviceAdapter.getSpecification() == getOnType()) {
return serviceAdapter;
}
@@ -455,34 +445,36 @@ public class ObjectActionImpl extends Ob
// set a flag on entry if for a service - or get from spec using isService
final ActionDefaultsFacet facet = getFacet(ActionDefaultsFacet.class);
if (!facet.isNoop()) {
- // use the old defaultXxx approach
+ // use the old defaultXxx approach
parameterDefaultPojos = facet.getDefaults(realTarget);
if (parameterDefaultPojos.length != parameterCount) {
- throw new DomainModelException("Defaults array of incompatible size; expected " + parameterCount + " elements, but was "
- + parameterDefaultPojos.length + " for " + facet);
- }
+ throw new DomainModelException("Defaults array of incompatible size; expected " + parameterCount
+ + " elements, but was " + parameterDefaultPojos.length + " for " + facet);
+ }
for (int i = 0; i < parameterCount; i++) {
if (parameterDefaultPojos[i] != null) {
- ObjectSpecification componentSpec = getSpecificationLookup().loadSpecification(
- parameterDefaultPojos[i].getClass());
- ObjectSpecification parameterSpec = parameters.get(i).getSpecification();
+ final ObjectSpecification componentSpec =
+ getSpecificationLookup().loadSpecification(parameterDefaultPojos[i].getClass());
+ final ObjectSpecification parameterSpec = parameters.get(i).getSpecification();
if (!componentSpec.isOfType(parameterSpec)) {
- throw new DomainModelException("Defaults type incompatible with parameter " + (i + 1) + " type; expected "
- + parameterSpec.getFullIdentifier() + ", but was " + componentSpec.getFullIdentifier());
+ throw new DomainModelException("Defaults type incompatible with parameter " + (i + 1)
+ + " type; expected " + parameterSpec.getFullIdentifier() + ", but was "
+ + componentSpec.getFullIdentifier());
}
}
}
} else {
- // use the new defaultNXxx approach for each param in turn
- // (the reflector will have made sure both aren't installed).
- parameterDefaultPojos = new Object[parameterCount];
+ // use the new defaultNXxx approach for each param in turn
+ // (the reflector will have made sure both aren't installed).
+ parameterDefaultPojos = new Object[parameterCount];
for (int i = 0; i < parameterCount; i++) {
- ActionParameterDefaultsFacet paramFacet = parameters.get(i).getFacet(ActionParameterDefaultsFacet.class);
- if (paramFacet != null && !paramFacet.isNoop()) {
- parameterDefaultPojos[i] = paramFacet.getDefault(realTarget);
- } else {
- parameterDefaultPojos[i] = null;
- }
+ final ActionParameterDefaultsFacet paramFacet =
+ parameters.get(i).getFacet(ActionParameterDefaultsFacet.class);
+ if (paramFacet != null && !paramFacet.isNoop()) {
+ parameterDefaultPojos[i] = paramFacet.getDefault(realTarget);
+ } else {
+ parameterDefaultPojos[i] = null;
+ }
}
}
@@ -492,7 +484,7 @@ public class ObjectActionImpl extends Ob
parameterDefaultAdapters[i] = adapterFor(parameterDefaultPojos[i]);
}
}
-
+
// set the target if contributed.
if (isContributed() && target != null) {
for (int i = 0; i < parameterCount; i++) {
@@ -508,7 +500,6 @@ public class ObjectActionImpl extends Ob
return pojo == null ? null : getAdapterMap().adapterFor(pojo);
}
-
// /////////////////////////////////////////////////////////////
// options (choices)
// /////////////////////////////////////////////////////////////
@@ -516,55 +507,57 @@ public class ObjectActionImpl extends Ob
@Override
public ObjectAdapter[][] getChoices(final ObjectAdapter target) {
final ObjectAdapter realTarget = realTarget(target);
-
+
final int parameterCount = getParameterCount();
Object[][] parameterChoicesPojos;
-
+
final ActionChoicesFacet facet = getFacet(ActionChoicesFacet.class);
final List<ObjectActionParameter> parameters = getParameters();
-
+
if (!facet.isNoop()) {
// using the old choicesXxx() approach
- parameterChoicesPojos = facet.getChoices(realTarget);
-
+ parameterChoicesPojos = facet.getChoices(realTarget);
+
// if no options, or not the right number of pojos, then default
if (parameterChoicesPojos == null) {
parameterChoicesPojos = new Object[parameterCount][];
- } else if (parameterChoicesPojos.length != parameterCount) {
- throw new DomainModelException("Choices array of incompatible size; expected " + parameterCount + " elements, but was " + parameterChoicesPojos.length + " for " + facet);
+ } else if (parameterChoicesPojos.length != parameterCount) {
+ throw new DomainModelException("Choices array of incompatible size; expected " + parameterCount
+ + " elements, but was " + parameterChoicesPojos.length + " for " + facet);
}
} else {
- // use the new choicesNXxx approach for each param in turn
- // (the reflector will have made sure both aren't installed).
-
- parameterChoicesPojos = new Object[parameterCount][];
+ // use the new choicesNXxx approach for each param in turn
+ // (the reflector will have made sure both aren't installed).
+
+ parameterChoicesPojos = new Object[parameterCount][];
for (int i = 0; i < parameterCount; i++) {
- ActionParameterChoicesFacet paramFacet = parameters.get(i).getFacet(ActionParameterChoicesFacet.class);
- if (paramFacet != null && !paramFacet.isNoop()) {
- parameterChoicesPojos[i] = paramFacet.getChoices(realTarget);
- } else {
- parameterChoicesPojos[i] = new Object[0];
- }
+ final ActionParameterChoicesFacet paramFacet =
+ parameters.get(i).getFacet(ActionParameterChoicesFacet.class);
+ if (paramFacet != null && !paramFacet.isNoop()) {
+ parameterChoicesPojos[i] = paramFacet.getChoices(realTarget);
+ } else {
+ parameterChoicesPojos[i] = new Object[0];
+ }
}
}
-
final ObjectAdapter[][] parameterChoicesAdapters = new ObjectAdapter[parameterCount][];
for (int i = 0; i < parameterCount; i++) {
final ObjectSpecification paramSpec = parameters.get(i).getSpecification();
if (parameterChoicesPojos[i] != null && parameterChoicesPojos[i].length > 0) {
- ObjectActionParameterAbstract.checkChoicesType(getSpecificationLookup(), parameterChoicesPojos[i], paramSpec);
+ ObjectActionParameterAbstract.checkChoicesType(getSpecificationLookup(), parameterChoicesPojos[i],
+ paramSpec);
parameterChoicesAdapters[i] = new ObjectAdapter[parameterChoicesPojos[i].length];
for (int j = 0; j < parameterChoicesPojos[i].length; j++) {
parameterChoicesAdapters[i][j] = adapterFor(parameterChoicesPojos[i][j]);
}
} else if (BoundedFacetUtils.isBoundedSet(paramSpec)) {
- QueryFindAllInstances query = new QueryFindAllInstances(paramSpec.getFullIdentifier());
- final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
+ final QueryFindAllInstances query = new QueryFindAllInstances(paramSpec.getFullIdentifier());
+ final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
parameterChoicesAdapters[i] = new ObjectAdapter[allInstancesAdapter.size()];
int j = 0;
- for(ObjectAdapter adapter: allInstancesAdapter) {
+ for (final ObjectAdapter adapter : allInstancesAdapter) {
parameterChoicesAdapters[i][j++] = adapter;
}
} else if (paramSpec.isNotCollection()) {
@@ -581,7 +574,6 @@ public class ObjectActionImpl extends Ob
return parameterChoicesAdapters;
}
-
// //////////////////////////////////////////////////////////////////
// debug, toString
// //////////////////////////////////////////////////////////////////
@@ -613,14 +605,12 @@ public class ObjectActionImpl extends Ob
return sb.toString();
}
-
- //////////////////////////////////////////////////////
+ // ////////////////////////////////////////////////////
// Dependencies (from constructor)
- //////////////////////////////////////////////////////
-
+ // ////////////////////////////////////////////////////
+
public ServicesProvider getServicesProvider() {
return servicesProvider;
}
-
}
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java Tue Apr 26 18:24:05 2011
@@ -17,9 +17,8 @@
* under the License.
*/
+package org.apache.isis.core.metamodel.specloader.specimpl;
-package org.apache.isis.core.metamodel.specloader.specimpl;
-
import java.util.ArrayList;
import java.util.List;
@@ -52,219 +51,214 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import com.google.common.collect.Lists;
-
-
-public abstract class ObjectActionParameterAbstract implements ObjectActionParameter {
-
- private final int number;
- private final ObjectActionImpl parentAction;
- private final TypedHolder peer;
-
- protected ObjectActionParameterAbstract(
- final int number,
- final ObjectActionImpl objectAction,
- final TypedHolder peer) {
- this.number = number;
- this.parentAction = objectAction;
- this.peer = peer;
- }
-
- /**
- * Subclasses should override either {@link #isObject()} or {@link #isCollection()}.
- */
- @Override
- public boolean isObject() {
- return false;
- }
-
- /**
- * Subclasses should override either {@link #isObject()} or {@link #isCollection()}.
- */
- @Override
- public boolean isCollection() {
- return false;
- }
-
- /**
- * Parameter number, 0-based.
- */
- @Override
- public int getNumber() {
- return number;
- }
-
- @Override
- public ObjectAction getAction() {
- return parentAction;
- }
-
- @Override
- public ObjectSpecification getSpecification() {
- return ObjectMemberAbstract.getSpecification(getSpecificationLookup(), peer.getType());
- }
-
- @Override
- public Identifier getIdentifier() {
- return parentAction.getIdentifier();
- }
-
- @Override
- public String getName() {
- final NamedFacet facet = getFacet(NamedFacet.class);
- String name = facet == null ? null : facet.value();
- name = name == null ? getSpecification().getSingularName() : name;
- return name;
- }
-
- @Override
- public String getDescription() {
- final DescribedAsFacet facet = getFacet(DescribedAsFacet.class);
- final String description = facet.value();
- return description == null ? "" : description;
- }
-
- @Override
- public boolean isOptional() {
- final MandatoryFacet facet = getFacet(MandatoryFacet.class);
- return facet.isInvertedSemantics();
- }
-
- public Consent isUsable() {
- return Allow.DEFAULT;
- }
-
- // //////////////////////////////////////////////////////////
- // FacetHolder
- // //////////////////////////////////////////////////////////
-
- @Override
- public boolean containsFacet(final Class<? extends Facet> facetType) {
- return peer != null ? peer.containsFacet(facetType) : false;
- }
-
+
+public abstract class ObjectActionParameterAbstract implements ObjectActionParameter {
+
+ private final int number;
+ private final ObjectActionImpl parentAction;
+ private final TypedHolder peer;
+
+ protected ObjectActionParameterAbstract(final int number, final ObjectActionImpl objectAction,
+ final TypedHolder peer) {
+ this.number = number;
+ this.parentAction = objectAction;
+ this.peer = peer;
+ }
+
+ /**
+ * Subclasses should override either {@link #isObject()} or {@link #isCollection()}.
+ */
+ @Override
+ public boolean isObject() {
+ return false;
+ }
+
+ /**
+ * Subclasses should override either {@link #isObject()} or {@link #isCollection()}.
+ */
+ @Override
+ public boolean isCollection() {
+ return false;
+ }
+
+ /**
+ * Parameter number, 0-based.
+ */
+ @Override
+ public int getNumber() {
+ return number;
+ }
+
+ @Override
+ public ObjectAction getAction() {
+ return parentAction;
+ }
+
+ @Override
+ public ObjectSpecification getSpecification() {
+ return ObjectMemberAbstract.getSpecification(getSpecificationLookup(), peer.getType());
+ }
+
+ @Override
+ public Identifier getIdentifier() {
+ return parentAction.getIdentifier();
+ }
+
+ @Override
+ public String getName() {
+ final NamedFacet facet = getFacet(NamedFacet.class);
+ String name = facet == null ? null : facet.value();
+ name = name == null ? getSpecification().getSingularName() : name;
+ return name;
+ }
+
+ @Override
+ public String getDescription() {
+ final DescribedAsFacet facet = getFacet(DescribedAsFacet.class);
+ final String description = facet.value();
+ return description == null ? "" : description;
+ }
+
+ @Override
+ public boolean isOptional() {
+ final MandatoryFacet facet = getFacet(MandatoryFacet.class);
+ return facet.isInvertedSemantics();
+ }
+
+ public Consent isUsable() {
+ return Allow.DEFAULT;
+ }
+
+ // //////////////////////////////////////////////////////////
+ // FacetHolder
+ // //////////////////////////////////////////////////////////
+
+ @Override
+ public boolean containsFacet(final Class<? extends Facet> facetType) {
+ return peer != null ? peer.containsFacet(facetType) : false;
+ }
+
@Override
public boolean containsDoOpFacet(final Class<? extends Facet> facetType) {
return peer == null ? false : peer.containsDoOpFacet(facetType);
}
@Override
- public <T extends Facet> T getFacet(final Class<T> cls) {
- return peer != null ? peer.getFacet(cls) : null;
- }
-
- @Override
- public Class<? extends Facet>[] getFacetTypes() {
- return peer != null ? peer.getFacetTypes() : new Class[] {};
- }
-
- @Override
- public List<Facet> getFacets(final Filter<Facet> filter) {
- return peer != null ? peer.getFacets(filter) : Lists.<Facet>newArrayList();
- }
-
- @Override
- public void addFacet(final Facet facet) {
- if (peer != null) {
- peer.addFacet(facet);
- }
- }
-
- @Override
- public void addFacet(final MultiTypedFacet facet) {
- if (peer != null) {
- peer.addFacet(facet);
- }
- }
-
- @Override
- public void removeFacet(final Facet facet) {
- if (peer != null) {
- peer.removeFacet(facet);
- }
- }
-
- @Override
- public void removeFacet(final Class<? extends Facet> facetType) {
- if (peer != null) {
- peer.removeFacet(facetType);
- }
- }
-
- // //////////////////////////////////////////////////////////
- // Interaction
- // //////////////////////////////////////////////////////////
-
- @Override
- public ActionArgumentContext createProposedArgumentInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter targetObject,
- final ObjectAdapter[] proposedArguments,
- final int position) {
- return new ActionArgumentContext(getAuthenticationSession(), invocationMethod, targetObject, getIdentifier(),
- proposedArguments, position);
- }
-
- @Override
- public ObjectAdapter[] getChoices(ObjectAdapter adapter) {
- final List<ObjectAdapter> parameterChoices = new ArrayList<ObjectAdapter>();
- final ActionParameterChoicesFacet choicesFacet = getFacet(ActionParameterChoicesFacet.class);
-
- if (choicesFacet != null) {
- Object[] choices = choicesFacet.getChoices(parentAction.realTarget(adapter));
- checkChoicesType(getSpecificationLookup(), choices, getSpecification());
- for (Object choice : choices) {
- parameterChoices.add(getAdapterMap().adapterFor(choice));
- }
- }
- if (parameterChoices.size() == 0 && BoundedFacetUtils.isBoundedSet(getSpecification())) {
- Query query = new QueryFindAllInstances(getSpecification().getFullIdentifier());
- final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
- for (ObjectAdapter choiceAdapter: allInstancesAdapter) {
- parameterChoices.add(choiceAdapter);
- }
- }
- return parameterChoices.toArray(new ObjectAdapter[0]);
- }
-
- protected static void checkChoicesType(SpecificationLookup specificationLookup, Object[] objects, ObjectSpecification paramSpec) {
- for (Object object : objects) {
- ObjectSpecification componentSpec = specificationLookup.loadSpecification(object.getClass());
- if (!componentSpec.isOfType(paramSpec)) {
- throw new DomainModelException("Choice type incompatible with parameter type; expected " + paramSpec.getFullIdentifier() + ", but was " + componentSpec.getFullIdentifier());
- }
- }
- }
-
- @Override
- public ObjectAdapter getDefault(ObjectAdapter adapter) {
- if (parentAction.isContributed() && adapter != null) {
- if (adapter.getSpecification().isOfType(getSpecification())) {
- return adapter;
- }
- }
- final ActionParameterDefaultsFacet defaultsFacet = getFacet(ActionParameterDefaultsFacet.class);
- if (defaultsFacet != null) {
- Object dflt = defaultsFacet.getDefault(parentAction.realTarget(adapter));
- if (dflt == null) {
- // it's possible that even though there is a default facet, when invoked it
- // is unable to return a default.
- return null;
- }
- return getAdapterMap().adapterFor(dflt);
- }
- return null;
- }
-
+ public <T extends Facet> T getFacet(final Class<T> cls) {
+ return peer != null ? peer.getFacet(cls) : null;
+ }
+
+ @Override
+ public Class<? extends Facet>[] getFacetTypes() {
+ return peer != null ? peer.getFacetTypes() : new Class[] {};
+ }
+
+ @Override
+ public List<Facet> getFacets(final Filter<Facet> filter) {
+ return peer != null ? peer.getFacets(filter) : Lists.<Facet> newArrayList();
+ }
+
+ @Override
+ public void addFacet(final Facet facet) {
+ if (peer != null) {
+ peer.addFacet(facet);
+ }
+ }
+
+ @Override
+ public void addFacet(final MultiTypedFacet facet) {
+ if (peer != null) {
+ peer.addFacet(facet);
+ }
+ }
+
+ @Override
+ public void removeFacet(final Facet facet) {
+ if (peer != null) {
+ peer.removeFacet(facet);
+ }
+ }
+
+ @Override
+ public void removeFacet(final Class<? extends Facet> facetType) {
+ if (peer != null) {
+ peer.removeFacet(facetType);
+ }
+ }
+
+ // //////////////////////////////////////////////////////////
+ // Interaction
+ // //////////////////////////////////////////////////////////
+
+ @Override
+ public ActionArgumentContext createProposedArgumentInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter targetObject,
+ final ObjectAdapter[] proposedArguments, final int position) {
+ return new ActionArgumentContext(getAuthenticationSession(), invocationMethod, targetObject, getIdentifier(),
+ proposedArguments, position);
+ }
+
+ @Override
+ public ObjectAdapter[] getChoices(final ObjectAdapter adapter) {
+ final List<ObjectAdapter> parameterChoices = new ArrayList<ObjectAdapter>();
+ final ActionParameterChoicesFacet choicesFacet = getFacet(ActionParameterChoicesFacet.class);
+
+ if (choicesFacet != null) {
+ final Object[] choices = choicesFacet.getChoices(parentAction.realTarget(adapter));
+ checkChoicesType(getSpecificationLookup(), choices, getSpecification());
+ for (final Object choice : choices) {
+ parameterChoices.add(getAdapterMap().adapterFor(choice));
+ }
+ }
+ if (parameterChoices.size() == 0 && BoundedFacetUtils.isBoundedSet(getSpecification())) {
+ final Query query = new QueryFindAllInstances(getSpecification().getFullIdentifier());
+ final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
+ for (final ObjectAdapter choiceAdapter : allInstancesAdapter) {
+ parameterChoices.add(choiceAdapter);
+ }
+ }
+ return parameterChoices.toArray(new ObjectAdapter[0]);
+ }
+
+ protected static void checkChoicesType(final SpecificationLookup specificationLookup, final Object[] objects,
+ final ObjectSpecification paramSpec) {
+ for (final Object object : objects) {
+ final ObjectSpecification componentSpec = specificationLookup.loadSpecification(object.getClass());
+ if (!componentSpec.isOfType(paramSpec)) {
+ throw new DomainModelException("Choice type incompatible with parameter type; expected "
+ + paramSpec.getFullIdentifier() + ", but was " + componentSpec.getFullIdentifier());
+ }
+ }
+ }
+
+ @Override
+ public ObjectAdapter getDefault(final ObjectAdapter adapter) {
+ if (parentAction.isContributed() && adapter != null) {
+ if (adapter.getSpecification().isOfType(getSpecification())) {
+ return adapter;
+ }
+ }
+ final ActionParameterDefaultsFacet defaultsFacet = getFacet(ActionParameterDefaultsFacet.class);
+ if (defaultsFacet != null) {
+ final Object dflt = defaultsFacet.getDefault(parentAction.realTarget(adapter));
+ if (dflt == null) {
+ // it's possible that even though there is a default facet, when invoked it
+ // is unable to return a default.
+ return null;
+ }
+ return getAdapterMap().adapterFor(dflt);
+ }
+ return null;
+ }
protected AuthenticationSession getAuthenticationSession() {
return getAuthenticationSessionProvider().getAuthenticationSession();
}
-
- // /////////////////////////////////////////////////////////////
- // Dependencies (from parent)
- // /////////////////////////////////////////////////////////////
-
+
+ // /////////////////////////////////////////////////////////////
+ // Dependencies (from parent)
+ // /////////////////////////////////////////////////////////////
+
protected SpecificationLookup getSpecificationLookup() {
return parentAction.getSpecificationLookup();
}
@@ -281,6 +275,4 @@ public abstract class ObjectActionParame
return parentAction.getQuerySubmitter();
}
-
-
-}
+}
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java Tue Apr 26 18:24:05 2011
@@ -17,9 +17,8 @@
* under the License.
*/
+package org.apache.isis.core.metamodel.specloader.specimpl;
-package org.apache.isis.core.metamodel.specloader.specimpl;
-
import org.apache.isis.core.metamodel.adapter.MutableProposedHolder;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
@@ -37,144 +36,137 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.core.metamodel.spec.feature.OneToOneActionParameter;
import org.apache.isis.core.metamodel.spec.feature.ParseableEntryActionParameter;
-
-
-public class ObjectActionParameterParseable extends ObjectActionParameterAbstract implements
- ParseableEntryActionParameter {
-
- public ObjectActionParameterParseable(
- final int index,
- final ObjectActionImpl action,
- final TypedHolder peer) {
- super(index, action, peer);
- }
-
- @Override
- public int getNoLines() {
- final MultiLineFacet facet = getFacet(MultiLineFacet.class);
- return facet.numberOfLines();
- }
-
- @Override
- public boolean canWrap() {
- final MultiLineFacet facet = getFacet(MultiLineFacet.class);
- return !facet.preventWrapping();
- }
-
- @Override
- public int getMaximumLength() {
- final MaxLengthFacet facet = getFacet(MaxLengthFacet.class);
- return facet.value();
- }
-
- @Override
- public int getTypicalLineLength() {
- final TypicalLengthFacet facet = getFacet(TypicalLengthFacet.class);
- return facet.value();
- }
-
- /**
- * Invoked when tab away, disables the OK button.
- *
- * <p>
- * Assumed to be invoked {@link InteractionInvocationMethod#BY_USER by user}.
- */
- @Override
- public String isValid(final ObjectAdapter adapter, final Object proposedValue) {
-
- if (!(proposedValue instanceof String)) {
- return null;
- }
- final String proposedString = (String) proposedValue;
-
- final ObjectActionParameter objectActionParameter = getAction().getParameters().get(getNumber());
- if (!(objectActionParameter instanceof ParseableEntryActionParameter)) {
- return null;
- }
- final ParseableEntryActionParameter parameter = (ParseableEntryActionParameter) objectActionParameter;
-
- final ObjectSpecification parameterSpecification = parameter.getSpecification();
- final ParseableFacet p = parameterSpecification.getFacet(ParseableFacet.class);
- final ObjectAdapter newValue = p.parseTextEntry(null, proposedString);
-
- final ValidityContext<?> ic = parameter.createProposedArgumentInteractionContext(getAuthenticationSession(),
- InteractionInvocationMethod.BY_USER, adapter, arguments(newValue), getNumber());
-
- final InteractionResultSet buf = new InteractionResultSet();
- InteractionUtils.isValidResultSet(parameter, ic, buf);
- if (buf.isVetoed()) {
- return buf.getInteractionResult().getReason();
- }
- return null;
-
- }
-
- /**
- * TODO: this is not ideal, because we can only populate the array for single argument, rather than the
- * entire argument set. Instead, we ought to do this in two passes, one to build up the argument set as a
- * single unit, and then validate each in turn.
- *
- * @param proposedValue
- * @return
- */
- private ObjectAdapter[] arguments(final ObjectAdapter proposedValue) {
- final int parameterCount = getAction().getParameterCount();
- final ObjectAdapter[] arguments = new ObjectAdapter[parameterCount];
- arguments[getNumber()] = proposedValue;
- return arguments;
- }
-
-
- // /////////////////////////////////////////////////////////////
- // getInstance
- // /////////////////////////////////////////////////////////////
-
- @Override
- public Instance getInstance(ObjectAdapter adapter) {
- OneToOneActionParameter specification = this;
- return adapter.getInstance(specification);
- }
-
-
-
- // //////////////////////////////////////////////////////////////////////
- // get, set
- // //////////////////////////////////////////////////////////////////////
-
- /**
- * Gets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposed}, wrapping the proposed value into a {@link ObjectAdapter}.
- */
- @Override
- public ObjectAdapter get(ObjectAdapter owner) {
- MutableProposedHolder proposedHolder = getProposedHolder(owner);
- Object proposed = proposedHolder.getProposed();
- return getAdapterMap().adapterFor(proposed);
- }
-
- /**
- * Sets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposed}, unwrapped the proposed value from a {@link ObjectAdapter}.
- */
- public void set(ObjectAdapter owner, ObjectAdapter newValue) {
- MutableProposedHolder proposedHolder = getProposedHolder(owner);
- Object newValuePojo = newValue.getObject();
- proposedHolder.setProposed(newValuePojo);
- }
-
- private MutableProposedHolder getProposedHolder(ObjectAdapter owner) {
- Instance instance = getInstance(owner);
- if(!(instance instanceof MutableProposedHolder)) {
- throw new IllegalArgumentException("Instance should implement MutableProposedHolder");
- }
- MutableProposedHolder proposedHolder = (MutableProposedHolder) instance;
- return proposedHolder;
+
+public class ObjectActionParameterParseable extends ObjectActionParameterAbstract implements
+ ParseableEntryActionParameter {
+
+ public ObjectActionParameterParseable(final int index, final ObjectActionImpl action, final TypedHolder peer) {
+ super(index, action, peer);
+ }
+
+ @Override
+ public int getNoLines() {
+ final MultiLineFacet facet = getFacet(MultiLineFacet.class);
+ return facet.numberOfLines();
+ }
+
+ @Override
+ public boolean canWrap() {
+ final MultiLineFacet facet = getFacet(MultiLineFacet.class);
+ return !facet.preventWrapping();
+ }
+
+ @Override
+ public int getMaximumLength() {
+ final MaxLengthFacet facet = getFacet(MaxLengthFacet.class);
+ return facet.value();
+ }
+
+ @Override
+ public int getTypicalLineLength() {
+ final TypicalLengthFacet facet = getFacet(TypicalLengthFacet.class);
+ return facet.value();
+ }
+
+ /**
+ * Invoked when tab away, disables the OK button.
+ *
+ * <p>
+ * Assumed to be invoked {@link InteractionInvocationMethod#BY_USER by user}.
+ */
+ @Override
+ public String isValid(final ObjectAdapter adapter, final Object proposedValue) {
+
+ if (!(proposedValue instanceof String)) {
+ return null;
+ }
+ final String proposedString = (String) proposedValue;
+
+ final ObjectActionParameter objectActionParameter = getAction().getParameters().get(getNumber());
+ if (!(objectActionParameter instanceof ParseableEntryActionParameter)) {
+ return null;
+ }
+ final ParseableEntryActionParameter parameter = (ParseableEntryActionParameter) objectActionParameter;
+
+ final ObjectSpecification parameterSpecification = parameter.getSpecification();
+ final ParseableFacet p = parameterSpecification.getFacet(ParseableFacet.class);
+ final ObjectAdapter newValue = p.parseTextEntry(null, proposedString);
+
+ final ValidityContext<?> ic =
+ parameter.createProposedArgumentInteractionContext(getAuthenticationSession(),
+ InteractionInvocationMethod.BY_USER, adapter, arguments(newValue), getNumber());
+
+ final InteractionResultSet buf = new InteractionResultSet();
+ InteractionUtils.isValidResultSet(parameter, ic, buf);
+ if (buf.isVetoed()) {
+ return buf.getInteractionResult().getReason();
+ }
+ return null;
+
+ }
+
+ /**
+ * TODO: this is not ideal, because we can only populate the array for single argument, rather than the entire
+ * argument set. Instead, we ought to do this in two passes, one to build up the argument set as a single unit, and
+ * then validate each in turn.
+ *
+ * @param proposedValue
+ * @return
+ */
+ private ObjectAdapter[] arguments(final ObjectAdapter proposedValue) {
+ final int parameterCount = getAction().getParameterCount();
+ final ObjectAdapter[] arguments = new ObjectAdapter[parameterCount];
+ arguments[getNumber()] = proposedValue;
+ return arguments;
+ }
+
+ // /////////////////////////////////////////////////////////////
+ // getInstance
+ // /////////////////////////////////////////////////////////////
+
+ @Override
+ public Instance getInstance(final ObjectAdapter adapter) {
+ final OneToOneActionParameter specification = this;
+ return adapter.getInstance(specification);
+ }
+
+ // //////////////////////////////////////////////////////////////////////
+ // get, set
+ // //////////////////////////////////////////////////////////////////////
+
+ /**
+ * Gets the proposed value of the {@link Instance} (downcast as a {@link MutableProposed}, wrapping the proposed
+ * value into a {@link ObjectAdapter}.
+ */
+ @Override
+ public ObjectAdapter get(final ObjectAdapter owner) {
+ final MutableProposedHolder proposedHolder = getProposedHolder(owner);
+ final Object proposed = proposedHolder.getProposed();
+ return getAdapterMap().adapterFor(proposed);
+ }
+
+ /**
+ * Sets the proposed value of the {@link Instance} (downcast as a {@link MutableProposed}, unwrapped the proposed
+ * value from a {@link ObjectAdapter}.
+ */
+ public void set(final ObjectAdapter owner, final ObjectAdapter newValue) {
+ final MutableProposedHolder proposedHolder = getProposedHolder(owner);
+ final Object newValuePojo = newValue.getObject();
+ proposedHolder.setProposed(newValuePojo);
+ }
+
+ private MutableProposedHolder getProposedHolder(final ObjectAdapter owner) {
+ final Instance instance = getInstance(owner);
+ if (!(instance instanceof MutableProposedHolder)) {
+ throw new IllegalArgumentException("Instance should implement MutableProposedHolder");
+ }
+ final MutableProposedHolder proposedHolder = (MutableProposedHolder) instance;
+ return proposedHolder;
}
@Override
public FeatureType getFeatureType() {
return FeatureType.ACTION_PARAMETER;
- }
-
-
-}
+ }
+
+}
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java Tue Apr 26 18:24:05 2011
@@ -17,7 +17,6 @@
* under the License.
*/
-
package org.apache.isis.core.metamodel.specloader.specimpl;
import org.apache.isis.core.commons.exceptions.NotYetImplementedException;
@@ -31,17 +30,13 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
-
// TODO need to pull up the common methods. like getName(), from subclasses
public abstract class ObjectAssociationAbstract extends ObjectMemberAbstract implements ObjectAssociation {
-
+
private final ObjectSpecification specification;
- public ObjectAssociationAbstract(
- final FacetedMethod facetedMethod,
- final FeatureType featureType,
- final ObjectSpecification specification,
- final ObjectMemberContext parameterObject) {
+ public ObjectAssociationAbstract(final FacetedMethod facetedMethod, final FeatureType featureType,
+ final ObjectSpecification specification, final ObjectMemberContext parameterObject) {
super(facetedMethod, featureType, parameterObject);
if (specification == null) {
throw new IllegalArgumentException("field type for '" + getId() + "' must exist");
@@ -53,9 +48,9 @@ public abstract class ObjectAssociationA
public abstract ObjectAdapter get(final ObjectAdapter fromObject);
/**
- * Return the specification of the object (or objects) that this field holds. For a value are one-to-one
- * reference this will be type that the accessor returns. For a collection it will be the type of element,
- * not the type of collection.
+ * Return the specification of the object (or objects) that this field holds. For a value are one-to-one reference
+ * this will be type that the accessor returns. For a collection it will be the type of element, not the type of
+ * collection.
*/
@Override
public ObjectSpecification getSpecification() {
@@ -66,7 +61,7 @@ public abstract class ObjectAssociationA
public boolean isNotPersisted() {
return containsFacet(NotPersistedFacet.class);
}
-
+
@Override
public boolean hasChoices() {
return containsFacet(PropertyChoicesFacet.class);
@@ -74,10 +69,10 @@ public abstract class ObjectAssociationA
@Override
public boolean isMandatory() {
- final MandatoryFacet mandatoryFacet = getFacet(MandatoryFacet.class);
- return mandatoryFacet != null && !mandatoryFacet.isInvertedSemantics();
+ final MandatoryFacet mandatoryFacet = getFacet(MandatoryFacet.class);
+ return mandatoryFacet != null && !mandatoryFacet.isInvertedSemantics();
}
-
+
@Override
public abstract boolean isEmpty(final ObjectAdapter adapter);
@@ -90,7 +85,5 @@ public abstract class ObjectAssociationA
public String getBusinessKeyName() {
throw new NotYetImplementedException();
}
-
-
-
+
}
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java Tue Apr 26 18:24:05 2011
@@ -17,7 +17,6 @@
* under the License.
*/
-
package org.apache.isis.core.metamodel.specloader.specimpl;
import java.util.List;
@@ -51,10 +50,10 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
-
public abstract class ObjectMemberAbstract implements ObjectMember {
- public static ObjectSpecification getSpecification(final SpecificationLookup specificationLookup, final Class<?> type) {
+ public static ObjectSpecification getSpecification(final SpecificationLookup specificationLookup,
+ final Class<?> type) {
return type == null ? null : specificationLookup.loadSpecification(type);
}
@@ -67,10 +66,8 @@ public abstract class ObjectMemberAbstra
private final AdapterMap adapterMap;
private final QuerySubmitter querySubmitter;
- protected ObjectMemberAbstract(
- final FacetedMethod facetedMethod,
- final FeatureType featureType,
- ObjectMemberContext objectMembercontext) {
+ protected ObjectMemberAbstract(final FacetedMethod facetedMethod, final FeatureType featureType,
+ final ObjectMemberContext objectMembercontext) {
final String id = facetedMethod.getIdentifier().getMemberName();
if (id == null) {
throw new IllegalArgumentException("Name must always be set");
@@ -79,14 +76,13 @@ public abstract class ObjectMemberAbstra
this.featureType = featureType;
this.id = id;
this.defaultName = NameUtils.naturalName(this.id);
-
+
this.authenticationSessionProvider = objectMembercontext.getAuthenticationSessionProvider();
this.specificationLookup = objectMembercontext.getSpecificationLookup();
this.adapterMap = objectMembercontext.getAdapterManager();
this.querySubmitter = objectMembercontext.getQuerySubmitter();
}
-
// /////////////////////////////////////////////////////////////
// Identifiers
// /////////////////////////////////////////////////////////////
@@ -112,9 +108,7 @@ public abstract class ObjectMemberAbstra
public FeatureType getFeatureType() {
return featureType;
}
-
-
// /////////////////////////////////////////////////////////////
// Facets
// /////////////////////////////////////////////////////////////
@@ -197,15 +191,14 @@ public abstract class ObjectMemberAbstra
// Hidden (or visible)
// /////////////////////////////////////////////////////////////
-
@Override
public boolean isAlwaysHidden() {
return containsFacet(HiddenFacet.class);
}
-
+
/**
- * Loops over all {@link HidingInteractionAdvisor} {@link Facet}s and returns <tt>true</tt> only if none
- * hide the member.
+ * Loops over all {@link HidingInteractionAdvisor} {@link Facet}s and returns <tt>true</tt> only if none hide the
+ * member.
*
* <p>
* TODO: currently this method is hard-coded to assume all interactions are initiated
@@ -217,7 +210,8 @@ public abstract class ObjectMemberAbstra
}
private InteractionResult isVisibleResult(final AuthenticationSession session, final ObjectAdapter target) {
- final VisibilityContext<?> ic = createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, target);
+ final VisibilityContext<?> ic =
+ createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, target);
return InteractionUtils.isVisibleResult(this, ic);
}
@@ -226,8 +220,8 @@ public abstract class ObjectMemberAbstra
// /////////////////////////////////////////////////////////////
/**
- * Loops over all {@link DisablingInteractionAdvisor} {@link Facet}s and returns <tt>true</tt> only if
- * none disables the member.
+ * Loops over all {@link DisablingInteractionAdvisor} {@link Facet}s and returns <tt>true</tt> only if none disables
+ * the member.
*
* <p>
* TODO: currently this method is hard-coded to assume all interactions are initiated
@@ -239,11 +233,11 @@ public abstract class ObjectMemberAbstra
}
private InteractionResult isUsableResult(final AuthenticationSession session, final ObjectAdapter target) {
- final UsabilityContext<?> ic = createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, target);
+ final UsabilityContext<?> ic =
+ createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, target);
return InteractionUtils.isUsableResult(this, ic);
}
-
// //////////////////////////////////////////////////////////////////
// isAssociation, isAction
// //////////////////////////////////////////////////////////////////
@@ -273,14 +267,12 @@ public abstract class ObjectMemberAbstra
// //////////////////////////////////////////////////////////////////
/**
- * The current {@link AuthenticationSession} (can change over time so
- * do not cache).
+ * The current {@link AuthenticationSession} (can change over time so do not cache).
*/
protected AuthenticationSession getAuthenticationSession() {
return authenticationSessionProvider.getAuthenticationSession();
}
-
// //////////////////////////////////////////////////////////////////
// toString
// //////////////////////////////////////////////////////////////////
@@ -290,7 +282,6 @@ public abstract class ObjectMemberAbstra
return String.format("id=%s,name='%s'", getId(), getName());
}
-
// //////////////////////////////////////////////////////////////////
// Dependencies
// //////////////////////////////////////////////////////////////////
@@ -298,11 +289,11 @@ public abstract class ObjectMemberAbstra
public AuthenticationSessionProvider getAuthenticationSessionProvider() {
return authenticationSessionProvider;
}
-
+
public SpecificationLookup getSpecificationLookup() {
return specificationLookup;
}
-
+
public AdapterMap getAdapterMap() {
return adapterMap;
}
@@ -311,6 +302,4 @@ public abstract class ObjectMemberAbstra
return querySubmitter;
}
-
-
}
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java Tue Apr 26 18:24:05 2011
@@ -25,11 +25,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.log4j.Logger;
-
-import com.google.common.collect.Lists;
-import com.google.inject.internal.Maps;
-
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.adapters.Localization;
import org.apache.isis.applib.filter.Filter;
@@ -84,9 +79,12 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.metamodel.specloader.specimpl.objectlist.ObjectSpecificationForObjectList;
+import org.apache.log4j.Logger;
-public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implements
- ObjectSpecification {
+import com.google.common.collect.Lists;
+import com.google.inject.internal.Maps;
+
+public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implements ObjectSpecification {
private final static Logger LOG = Logger.getLogger(ObjectSpecificationAbstract.class);
@@ -144,9 +142,8 @@ public abstract class ObjectSpecificatio
// Constructor
// //////////////////////////////////////////////////////////////////////
- public ObjectSpecificationAbstract(
- final Class<?> introspectedClass, final String shortName,
- final SpecificationContext specificationContext) {
+ public ObjectSpecificationAbstract(final Class<?> introspectedClass, final String shortName,
+ final SpecificationContext specificationContext) {
this.correspondingClass = introspectedClass;
this.fullName = introspectedClass.getName();
@@ -172,8 +169,7 @@ public abstract class ObjectSpecificatio
/**
* As provided explicitly within the
- * {@link #IntrospectableSpecificationAbstract(Class, String, SpecificationContext)
- * constructor}.
+ * {@link #IntrospectableSpecificationAbstract(Class, String, SpecificationContext) constructor}.
*
* <p>
* Not API, but <tt>public</tt> so that {@link FacetedMethodsBuilder} can call it.
@@ -185,8 +181,7 @@ public abstract class ObjectSpecificatio
/**
* As provided explicitly within the
- * {@link #IntrospectableSpecificationAbstract(Class, String, SpecificationContext)
- * constructor}.
+ * {@link #IntrospectableSpecificationAbstract(Class, String, SpecificationContext) constructor}.
*/
@Override
public String getShortIdentifier() {
@@ -217,7 +212,7 @@ public abstract class ObjectSpecificatio
/**
* Intended to be called within {@link #introspectTypeHierarchyAndMembers()}.
*/
- protected void setSuperclass(Class<?> superclass) {
+ protected void setSuperclass(final Class<?> superclass) {
if (superclass == null) {
return;
}
@@ -233,27 +228,27 @@ public abstract class ObjectSpecificatio
/**
* Intended to be called within {@link #introspectTypeHierarchyAndMembers()}.
*/
- protected void addInterfaces(List<ObjectSpecification> interfaces) {
+ protected void addInterfaces(final List<ObjectSpecification> interfaces) {
this.interfaces.addAll(interfaces);
}
/**
* Intended to be called within {@link #introspectTypeHierarchyAndMembers()}.
*/
- protected void addAsSubclassTo(ObjectSpecification supertypeSpec) {
+ protected void addAsSubclassTo(final ObjectSpecification supertypeSpec) {
if (!(supertypeSpec instanceof ObjectSpecificationAbstract)) {
return;
}
// downcast required because addSubclass is (deliberately) not public API
- ObjectSpecificationAbstract introspectableSpec = (ObjectSpecificationAbstract) supertypeSpec;
+ final ObjectSpecificationAbstract introspectableSpec = (ObjectSpecificationAbstract) supertypeSpec;
introspectableSpec.addSubclass(this);
}
/**
* Intended to be called within {@link #introspectTypeHierarchyAndMembers()}.
*/
- protected void addAsSubclassTo(List<ObjectSpecification> supertypeSpecs) {
- for (ObjectSpecification supertypeSpec : supertypeSpecs) {
+ protected void addAsSubclassTo(final List<ObjectSpecification> supertypeSpecs) {
+ for (final ObjectSpecification supertypeSpec : supertypeSpecs) {
addAsSubclassTo(supertypeSpec);
}
}
@@ -265,8 +260,8 @@ public abstract class ObjectSpecificatio
/**
* Intended to be called within {@link #introspectTypeHierarchyAndMembers()}.
*/
- protected void addAssociations(List<ObjectAssociation> associations) {
- if(associations == null) {
+ protected void addAssociations(final List<ObjectAssociation> associations) {
+ if (associations == null) {
return;
}
this.associations.addAll(associations);
@@ -275,8 +270,8 @@ public abstract class ObjectSpecificatio
/**
* Intended to be called within {@link #introspectTypeHierarchyAndMembers()}.
*/
- protected void addObjectActions(List<ObjectAction> objectActions) {
- if(objectActions == null) {
+ protected void addObjectActions(final List<ObjectAction> objectActions) {
+ if (objectActions == null) {
return;
}
this.objectActions.addAll(objectActions);
@@ -295,13 +290,13 @@ public abstract class ObjectSpecificatio
titleFacet = getFacet(TitleFacet.class);
iconFacet = getFacet(IconFacet.class);
- Persistability persistability = determinePersistability();
+ final Persistability persistability = determinePersistability();
this.persistability = persistability;
}
private Persistability determinePersistability() {
final NotPersistableFacet notPersistableFacet = getFacet(NotPersistableFacet.class);
- if(notPersistableFacet==null) {
+ if (notPersistableFacet == null) {
return Persistability.USER_PERSISTABLE;
}
final InitiatedBy initiatedBy = notPersistableFacet.value();
@@ -314,27 +309,26 @@ public abstract class ObjectSpecificatio
}
}
-
/**
* Intended to be called (if at all) within {@link #updateFromFacetValues()}.
*/
- protected void setClearDirtyObjectFacet(ClearDirtyObjectFacet clearDirtyObjectFacet) {
+ protected void setClearDirtyObjectFacet(final ClearDirtyObjectFacet clearDirtyObjectFacet) {
this.clearDirtyObjectFacet = clearDirtyObjectFacet;
}
/**
* Intended to be called within {@link #updateFromFacetValues()}.
*/
- protected void setIntrospected(boolean introspected) {
+ protected void setIntrospected(final boolean introspected) {
this.introspected = introspected;
}
// //////////////////////////////////////////////////////////////////////
// Title, Icon
// //////////////////////////////////////////////////////////////////////
-
+
@Override
- public String getTitle(final ObjectAdapter object, Localization localization) {
+ public String getTitle(final ObjectAdapter object, final Localization localization) {
if (titleFacet != null) {
final String titleString = titleFacet.title(object, localization);
if (titleString != null && !titleString.equals("")) {
@@ -349,13 +343,12 @@ public abstract class ObjectSpecificatio
return iconFacet == null ? null : iconFacet.iconName(reference);
}
-
// //////////////////////////////////////////////////////////////////////
// Specification
// //////////////////////////////////////////////////////////////////////
@Override
- public Instance getInstance(ObjectAdapter adapter) {
+ public Instance getInstance(final ObjectAdapter adapter) {
return adapter;
}
@@ -387,7 +380,7 @@ public abstract class ObjectSpecificatio
if (specification == this) {
return true;
}
- for (ObjectSpecification interfaceSpec : interfaces()) {
+ for (final ObjectSpecification interfaceSpec : interfaces()) {
if (interfaceSpec.isOfType(specification)) {
return true;
}
@@ -405,7 +398,7 @@ public abstract class ObjectSpecificatio
*/
@Override
public String getSingularName() {
- NamedFacet namedFacet = getFacet(NamedFacet.class);
+ final NamedFacet namedFacet = getFacet(NamedFacet.class);
return namedFacet.value();
}
@@ -414,7 +407,7 @@ public abstract class ObjectSpecificatio
*/
@Override
public String getPluralName() {
- PluralFacet pluralFacet = getFacet(PluralFacet.class);
+ final PluralFacet pluralFacet = getFacet(PluralFacet.class);
return pluralFacet.value();
}
@@ -424,11 +417,12 @@ public abstract class ObjectSpecificatio
@Override
public String getDescription() {
final DescribedAsFacet describedAsFacet = getFacet(DescribedAsFacet.class);
- String describedAs = describedAsFacet.value();
+ final String describedAs = describedAsFacet.value();
return describedAs == null ? "" : describedAs;
}
-
- /* help is typically a reference (eg a URL) and so should not default to a textual value if not set up */
+
+ /* help is typically a reference (eg a URL) and so should not default to a textual value if not set up */
+ @Override
public String getHelp() {
final HelpFacet helpFacet = getFacet(HelpFacet.class);
return helpFacet == null ? null : helpFacet.value();
@@ -495,9 +489,9 @@ public abstract class ObjectSpecificatio
}
}
// search up the inheritance hierarchy
- ObjectSpecification superSpec = superclass();
+ final ObjectSpecification superSpec = superclass();
if (superSpec != null) {
- Q superClassFacet = superSpec.getFacet(facetType);
+ final Q superClassFacet = superSpec.getFacet(facetType);
if (isNotANoopFacet(superClassFacet)) {
return superClassFacet;
}
@@ -591,7 +585,7 @@ public abstract class ObjectSpecificatio
*/
@Override
public ObjectAssociation getAssociation(final String id) {
- for (ObjectAssociation objectAssociation : getAssociations()) {
+ for (final ObjectAssociation objectAssociation : getAssociations()) {
if (objectAssociation.getId().equals(id)) {
return objectAssociation;
}
@@ -616,8 +610,8 @@ public abstract class ObjectSpecificatio
@Override
@SuppressWarnings("unchecked")
public List<OneToOneAssociation> getProperties() {
- List<OneToOneAssociation> list = new ArrayList<OneToOneAssociation>();
- List associationList = getAssociations(ObjectAssociationFilters.PROPERTIES);
+ final List<OneToOneAssociation> list = new ArrayList<OneToOneAssociation>();
+ final List associationList = getAssociations(ObjectAssociationFilters.PROPERTIES);
list.addAll(associationList);
return list;
}
@@ -625,8 +619,8 @@ public abstract class ObjectSpecificatio
@Override
@SuppressWarnings("unchecked")
public List<OneToManyAssociation> getCollections() {
- List<OneToManyAssociation> list = new ArrayList<OneToManyAssociation>();
- List associationList = getAssociations(ObjectAssociationFilters.COLLECTIONS);
+ final List<OneToManyAssociation> list = new ArrayList<OneToManyAssociation>();
+ final List associationList = getAssociations(ObjectAssociationFilters.COLLECTIONS);
list.addAll(associationList);
return list;
}
@@ -642,14 +636,14 @@ public abstract class ObjectSpecificatio
@Override
public List<ObjectAction> getObjectActions(final ActionType... requestedTypes) {
- List<ObjectAction> actions = Lists.newArrayList();
- for (ActionType type : requestedTypes) {
+ final List<ObjectAction> actions = Lists.newArrayList();
+ for (final ActionType type : requestedTypes) {
addActions(type, actions);
}
return actions;
}
- private void addActions(ActionType type, List<ObjectAction> actions) {
+ private void addActions(final ActionType type, final List<ObjectAction> actions) {
if (!isService()) {
actions.addAll(getContributedActions(type));
}
@@ -684,7 +678,6 @@ public abstract class ObjectSpecificatio
return type == null || action.getType().equals(type);
}
-
// //////////////////////////////////////////////////////////////////////
// service actions
// //////////////////////////////////////////////////////////////////////
@@ -693,32 +686,34 @@ public abstract class ObjectSpecificatio
public List<ObjectAction> getServiceActionsReturning(final ActionType... types) {
final List<ObjectAction> serviceActions = Lists.newArrayList();
final List<ObjectAdapter> services = getServicesProvider().getServices();
- for (ObjectAdapter serviceAdapter : services) {
+ for (final ObjectAdapter serviceAdapter : services) {
appendServiceActionsReturning(serviceAdapter, Arrays.asList(types), serviceActions);
}
return serviceActions;
}
- private void appendServiceActionsReturning(ObjectAdapter serviceAdapter, final List<ActionType> types,
+ private void appendServiceActionsReturning(final ObjectAdapter serviceAdapter, final List<ActionType> types,
final List<ObjectAction> relatedActionsToAppendTo) {
final List<ObjectAction> matchingActionsToAppendTo = Lists.newArrayList();
- for (ActionType type : types) {
+ for (final ActionType type : types) {
final List<ObjectAction> serviceActions = serviceAdapter.getSpecification().getObjectActions(type);
- for (ObjectAction serviceAction : serviceActions) {
+ for (final ObjectAction serviceAction : serviceActions) {
addIfReturnsSubtype(serviceAction, matchingActionsToAppendTo);
}
}
if (matchingActionsToAppendTo.size() > 0) {
- final ObjectActionSet set = new ObjectActionSet("id", serviceAdapter.titleString(), matchingActionsToAppendTo);
+ final ObjectActionSet set =
+ new ObjectActionSet("id", serviceAdapter.titleString(), matchingActionsToAppendTo);
relatedActionsToAppendTo.add(set);
}
}
- private void addIfReturnsSubtype(final ObjectAction serviceAction, final List<ObjectAction> matchingActionsToAppendTo) {
+ private void addIfReturnsSubtype(final ObjectAction serviceAction,
+ final List<ObjectAction> matchingActionsToAppendTo) {
final ObjectSpecification returnType = serviceAction.getReturnType();
if (returnType == null) {
return;
- }
+ }
if (returnType.isCollection()) {
final TypeOfFacet facet = serviceAction.getFacet(TypeOfFacet.class);
if (facet != null) {
@@ -760,7 +755,7 @@ public abstract class ObjectSpecificatio
// populate an ActionSet with all actions contributed by each service
contributedActionSets = Lists.newArrayList();
final List<ObjectAdapter> services = getServicesProvider().getServices();
- for (ObjectAdapter serviceAdapter : services) {
+ for (final ObjectAdapter serviceAdapter : services) {
addContributedActionsIfAny(serviceAdapter, actionType, contributedActionSets);
}
contributedActionSetsByType.put(actionType, contributedActionSets);
@@ -768,7 +763,7 @@ public abstract class ObjectSpecificatio
return contributedActionSets;
}
- private void addContributedActionsIfAny(ObjectAdapter serviceAdapter, final ActionType actionType,
+ private void addContributedActionsIfAny(final ObjectAdapter serviceAdapter, final ActionType actionType,
final List<ObjectAction> contributedActionSetsToAppendTo) {
final ObjectSpecification specification = serviceAdapter.getSpecification();
if (specification == this) {
@@ -788,7 +783,7 @@ public abstract class ObjectSpecificatio
final ActionType actionType) {
final List<ObjectAction> contributedActions = Lists.newArrayList();
final List<ObjectAction> serviceActions = specification.getObjectActions(actionType);
- for (ObjectAction serviceAction : serviceActions) {
+ for (final ObjectAction serviceAction : serviceActions) {
if (serviceAction.isAlwaysHidden()) {
continue;
}
@@ -802,7 +797,7 @@ public abstract class ObjectSpecificatio
private boolean matchesParameterOf(final ObjectAction serviceAction) {
final List<ObjectActionParameter> params = serviceAction.getParameters();
- for (ObjectActionParameter param : params) {
+ for (final ObjectActionParameter param : params) {
if (isOfType(param.getSpecification())) {
return true;
}
@@ -899,11 +894,12 @@ public abstract class ObjectSpecificatio
}
@Override
- public Object createObject(CreationMode creationMode) {
+ public Object createObject(final CreationMode creationMode) {
throw new UnsupportedOperationException(getFullIdentifier());
}
-
- public Object createAggregatedObject(ObjectAdapter parent, CreationMode creationMode) {
+
+ @Override
+ public Object createAggregatedObject(final ObjectAdapter parent, final CreationMode creationMode) {
throw new UnsupportedOperationException(getFullIdentifier());
}
Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java?rev=1096837&r1=1096836&r2=1096837&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java Tue Apr 26 18:24:05 2011
@@ -17,7 +17,6 @@
* under the License.
*/
-
package org.apache.isis.core.metamodel.specloader.specimpl;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -48,13 +47,11 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-
public class OneToManyAssociationImpl extends ObjectAssociationAbstract implements OneToManyAssociation {
- public OneToManyAssociationImpl(
- final FacetedMethod facetedMethod,
- final ObjectMemberContext objectMemberContext) {
- super(facetedMethod, FeatureType.COLLECTION, getSpecification(objectMemberContext.getSpecificationLookup(), facetedMethod.getType()), objectMemberContext);
+ public OneToManyAssociationImpl(final FacetedMethod facetedMethod, final ObjectMemberContext objectMemberContext) {
+ super(facetedMethod, FeatureType.COLLECTION, getSpecification(objectMemberContext.getSpecificationLookup(),
+ facetedMethod.getType()), objectMemberContext);
}
// /////////////////////////////////////////////////////////////
@@ -62,10 +59,8 @@ public class OneToManyAssociationImpl ex
// /////////////////////////////////////////////////////////////
@Override
- public VisibilityContext<?> createVisibleInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter ownerAdapter) {
+ public VisibilityContext<?> createVisibleInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter) {
return new CollectionVisibilityContext(session, invocationMethod, ownerAdapter, getIdentifier());
}
@@ -74,25 +69,21 @@ public class OneToManyAssociationImpl ex
// /////////////////////////////////////////////////////////////
@Override
- public UsabilityContext<?> createUsableInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter ownerAdapter) {
+ public UsabilityContext<?> createUsableInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter) {
return new CollectionUsabilityContext(session, invocationMethod, ownerAdapter, getIdentifier());
}
-
// /////////////////////////////////////////////////////////////
// Validate Add
// /////////////////////////////////////////////////////////////
@Override
- public ValidityContext<?> createValidateAddInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter ownerAdapter,
- final ObjectAdapter proposedToAddAdapter) {
- return new CollectionAddToContext(session, invocationMethod, ownerAdapter, getIdentifier(), proposedToAddAdapter);
+ public ValidityContext<?> createValidateAddInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToAddAdapter) {
+ return new CollectionAddToContext(session, invocationMethod, ownerAdapter, getIdentifier(),
+ proposedToAddAdapter);
}
/**
@@ -104,9 +95,11 @@ public class OneToManyAssociationImpl ex
return isValidToAddResult(ownerAdapter, proposedToAddAdapter).createConsent();
}
- private InteractionResult isValidToAddResult(final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToAddAdapter) {
- final ValidityContext<?> validityContext = createValidateAddInteractionContext(getAuthenticationSession(),
- InteractionInvocationMethod.BY_USER, ownerAdapter, proposedToAddAdapter);
+ private InteractionResult isValidToAddResult(final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToAddAdapter) {
+ final ValidityContext<?> validityContext =
+ createValidateAddInteractionContext(getAuthenticationSession(), InteractionInvocationMethod.BY_USER,
+ ownerAdapter, proposedToAddAdapter);
return InteractionUtils.isValidResult(this, validityContext);
}
@@ -115,13 +108,11 @@ public class OneToManyAssociationImpl ex
// /////////////////////////////////////////////////////////////
@Override
- public ValidityContext<?> createValidateRemoveInteractionContext(
- final AuthenticationSession session,
- final InteractionInvocationMethod invocationMethod,
- final ObjectAdapter ownerAdapter,
- final ObjectAdapter proposedToRemoveAdapter) {
+ public ValidityContext<?> createValidateRemoveInteractionContext(final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToRemoveAdapter) {
return new CollectionRemoveFromContext(session, invocationMethod, ownerAdapter, getIdentifier(),
- proposedToRemoveAdapter);
+ proposedToRemoveAdapter);
}
/**
@@ -133,9 +124,11 @@ public class OneToManyAssociationImpl ex
return isValidToRemoveResult(ownerAdapter, proposedToRemoveAdapter).createConsent();
}
- private InteractionResult isValidToRemoveResult(final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToRemoveAdapter) {
- final ValidityContext<?> validityContext = createValidateRemoveInteractionContext(getAuthenticationSession(),
- InteractionInvocationMethod.BY_USER, ownerAdapter, proposedToRemoveAdapter);
+ private InteractionResult isValidToRemoveResult(final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToRemoveAdapter) {
+ final ValidityContext<?> validityContext =
+ createValidateRemoveInteractionContext(getAuthenticationSession(), InteractionInvocationMethod.BY_USER,
+ ownerAdapter, proposedToRemoveAdapter);
return InteractionUtils.isValidResult(this, validityContext);
}
@@ -158,9 +151,6 @@ public class OneToManyAssociationImpl ex
return getAdapterMap().adapterFor(collection, ownerAdapter, this);
}
-
-
-
@Override
public boolean isEmpty(final ObjectAdapter parentAdapter) {
// REVIEW should we be able to determine if a collection is empty without loading it?
@@ -169,7 +159,6 @@ public class OneToManyAssociationImpl ex
return facet.size(collection) == 0;
}
-
// /////////////////////////////////////////////////////////////
// add, clear
// /////////////////////////////////////////////////////////////
@@ -182,7 +171,8 @@ public class OneToManyAssociationImpl ex
if (readWrite()) {
if (ownerAdapter.isPersistent() && referencedAdapter.isTransient()) {
throw new IsisException("can't set a reference to a transient object from a persistent one: "
- + ownerAdapter.titleString() + " (persistent) -> " + referencedAdapter.titleString() + " (transient)");
+ + ownerAdapter.titleString() + " (persistent) -> " + referencedAdapter.titleString()
+ + " (transient)");
}
final CollectionAddToFacet facet = getFacet(CollectionAddToFacet.class);
facet.add(ownerAdapter, referencedAdapter);
@@ -223,9 +213,9 @@ public class OneToManyAssociationImpl ex
}
@Override
- public void toDefault(final ObjectAdapter ownerAdapter) {}
+ public void toDefault(final ObjectAdapter ownerAdapter) {
+ }
-
// /////////////////////////////////////////////////////////////
// options (choices)
// /////////////////////////////////////////////////////////////
@@ -240,18 +230,15 @@ public class OneToManyAssociationImpl ex
return false;
}
-
-
// /////////////////////////////////////////////////////////////
// getInstance
// /////////////////////////////////////////////////////////////
-
+
@Override
- public Instance getInstance(ObjectAdapter adapter) {
- OneToManyAssociation specification = this;
+ public Instance getInstance(final ObjectAdapter adapter) {
+ final OneToManyAssociation specification = this;
return adapter.getInstance(specification);
}
-
// /////////////////////////////////////////////////////////////
// debug, toString
@@ -276,8 +263,4 @@ public class OneToManyAssociationImpl ex
return str.toString();
}
-
-
-
-
}