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 2018/01/05 17:21:33 UTC
[isis] 01/01: dynamic parameter names.
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-1720-dynamic-paranameter-names
in repository https://gitbox.apache.org/repos/asf/isis.git
commit d45422e6005ab3528106386239880be10584b2e7
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Jun 28 20:05:21 2017 +0100
dynamic parameter names.
Incomplete. Design ok, but a lot of impact... have to pass targetAdapter down to NamedFacet everywhere
---
.../metamodel/facets/FacetedMethodParameter.java | 7 --
.../core/metamodel/facets/ImperativeFacet.java | 2 +-
.../actions/action/invocation/CommandUtil.java | 8 +-
.../facets/all/i18n/NamedFacetTranslated.java | 3 +-
.../facets/all/i18n/TranslationFacetFactory.java | 2 +-
.../metamodel/facets/all/named/NamedFacet.java | 4 +-
.../facets/all/named/NamedFacetAbstract.java | 3 +-
.../mandatory/MandatoryFacetAbstract.java | 2 +-
.../ActionParameterNamedFacetViaMethodFactory.java | 116 +++++++++++++++++++++
.../named/method/NamedFacetOnParameterMethod.java | 89 ++++++++++++++++
.../json/LayoutMetadataReaderFromJson.java | 4 +-
.../services/grid/GridSystemServiceAbstract.java | 2 +-
.../core/metamodel/spec/ObjectSpecification.java | 5 +-
.../core/metamodel/spec/feature/ObjectAction.java | 6 +-
.../core/metamodel/spec/feature/ObjectActions.java | 7 --
.../specimpl/ObjectActionParameterAbstract.java | 12 +--
.../specloader/specimpl/ObjectMemberAbstract.java | 4 +-
.../specimpl/ObjectSpecificationAbstract.java | 9 +-
.../specimpl/dflt/ObjectSpecificationDefault.java | 2 +-
.../isis/core/runtime/snapshot/XmlSnapshot.java | 4 +-
.../actions/ActionMethodsFacetFactoryTest.java | 7 +-
.../CollectionFieldMethodsFacetFactoryTest.java | 2 +-
...etForCollectionLayoutAnnotationFactoryTest.java | 4 +-
.../named/NamedAnnotationFacetFactoryTest.java | 10 +-
.../DomainObjectLayoutFactoryTest.java | 5 +-
.../singular/SingularMethodFacetFactoryTest.java | 2 +-
...cetForParameterLayoutAnnotationFactoryTest.java | 4 +-
.../PropertyMethodsFacetFactoryTest.java | 2 +-
...acetForPropertyLayoutAnnotationFactoryTest.java | 4 +-
...ionParameterAbstractTest_getId_and_getName.java | 6 +-
.../testspec/ObjectSpecificationStub.java | 4 +-
.../runtime/persistence/adapter/PojoAdapter.java | 4 +-
.../publish/PublishingServiceInternalDefault.java | 8 +-
.../system/OneToManyAssociationDefaultTest.java | 2 +-
.../domaintypes/DomainTypeReprRenderer.java | 2 +-
.../services/HintStoreUsingWicketSession.java | 19 ++++
.../viewer/wicket/model/links/LinkAndLabel.java | 2 +-
.../serviceactions/ServiceActionUtil.java | 8 +-
.../entity/icontitle/EntityIconAndTitlePanel.java | 2 +-
39 files changed, 301 insertions(+), 87 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java
index 6fdf648..c5af395 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java
@@ -23,7 +23,6 @@ import com.google.common.base.Function;
import org.apache.isis.applib.Identifier;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
public class FacetedMethodParameter extends TypedHolderDefault implements IdentifiedHolder {
@@ -47,12 +46,6 @@ public class FacetedMethodParameter extends TypedHolderDefault implements Identi
public static class Functions {
- public static final Function<FacetedMethodParameter, String> GET_NAME = new Function<FacetedMethodParameter, String>() {
- @Override public String apply(final FacetedMethodParameter input) {
- final NamedFacet namedFacet = input.getFacet(NamedFacet.class);
- return namedFacet.value();
- }
- };
public static final Function<FacetedMethodParameter, Class<?>> GET_TYPE = new Function<FacetedMethodParameter, Class<?>>() {
@Override public Class<?> apply(final FacetedMethodParameter input) {
return input.getType();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ImperativeFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ImperativeFacet.java
index 606631f..ef785ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ImperativeFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/ImperativeFacet.java
@@ -86,7 +86,7 @@ public interface ImperativeFacet extends Facet {
MODIFY_COLLECTION_ADD,
MODIFY_COLLECTION_REMOVE,
CHOICES_OR_AUTOCOMPLETE,
- DEFAULTS,
+ DEFAULTS,
INITIALIZATION,
LIFECYCLE,
UI_HINT
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/CommandUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/CommandUtil.java
index 2134409..3c407ce 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/CommandUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/CommandUtil.java
@@ -34,15 +34,9 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
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.ObjectMember;
-import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember2;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault;
/**
* Factoring out the commonality between <tt>ActionInvocationFacetViaMethod</tt> and <tt>BackgroundServiceDefault</tt>.
@@ -56,7 +50,7 @@ public class CommandUtil {
}
public static String targetClassNameFor(final ObjectAdapter targetAdapter) {
- return StringExtensions.asNaturalName2(targetAdapter.getSpecification().getSingularName());
+ return StringExtensions.asNaturalName2(targetAdapter.getSpecification().getSingularName(owningAdapter));
}
public static String memberIdentifierFor(final ObjectMember objectMember) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java
index 005484b..bf9b9e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java
@@ -20,6 +20,7 @@
package org.apache.isis.core.metamodel.facets.all.i18n;
import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
@@ -46,7 +47,7 @@ public class NamedFacetTranslated extends FacetAbstract implements NamedFacet {
}
@Override
- public String value() {
+ public String value(final ObjectAdapter owningAdapter) {
return translateText();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
index 4d641f1..260636e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
@@ -86,7 +86,7 @@ public class TranslationFacetFactory extends FacetFactoryAbstract implements Con
// not expected...
return;
}
- final String originalText = facet.value();
+ final String originalText = facet.value(owningAdapter);
if (isNullOrEmptyWhenTrimmed(originalText)) {
// not expected...
return;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
index f2a6c4e..3fe9872 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacet.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.all.named;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.MultipleValueFacet;
/**
@@ -32,8 +33,9 @@ public interface NamedFacet extends MultipleValueFacet {
/**
* @return The name to use as a label for a collection, a property or a parameter
+ * @param owningAdapter
*/
- String value();
+ String value(final ObjectAdapter owningAdapter);
/**
* @return A flag indicating whether the label should be show as is, or should be HTML escaped
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetAbstract.java
index 1570d07..ceaeb06 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/named/NamedFacetAbstract.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.all.named;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.MultipleValueFacetAbstract;
@@ -40,7 +41,7 @@ public abstract class NamedFacetAbstract extends MultipleValueFacetAbstract impl
}
@Override
- public String value() {
+ public String value(final ObjectAdapter owningAdapter) {
return value;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
index 06bc7e3..203760f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/mandatory/MandatoryFacetAbstract.java
@@ -91,7 +91,7 @@ public abstract class MandatoryFacetAbstract extends MarkerFacetAbstract impleme
return null;
}
final NamedFacet namedFacet = getFacetHolder().getFacet(NamedFacet.class);
- final String name = namedFacet != null? namedFacet.value(): null;
+ final String name = namedFacet != null? namedFacet.value(owningAdapter): null;
return name != null? "'" + name + "' is mandatory":"Mandatory";
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/method/ActionParameterNamedFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/method/ActionParameterNamedFacetViaMethodFactory.java
new file mode 100644
index 0000000..8986b5c
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/method/ActionParameterNamedFacetViaMethodFactory.java
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.param.named.method;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.MethodPrefixConstants;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
+import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
+
+public class ActionParameterNamedFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
+
+ private static final String[] PREFIXES = {"named"};
+
+ public ActionParameterNamedFacetViaMethodFactory() {
+ super(FeatureType.ACTIONS_ONLY, OrphanValidation.VALIDATE, PREFIXES);
+ }
+
+ // ///////////////////////////////////////////////////////
+ // Actions
+ // ///////////////////////////////////////////////////////
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
+ final FacetedMethod facetedMethod = processMethodContext.getFacetHolder();
+ final List<FacetedMethodParameter> holderList = facetedMethod.getParameters();
+
+ attachNamedFacetForParametersIfAutoCompleteNumMethodIsFound(processMethodContext, holderList);
+
+ }
+
+ private void attachNamedFacetForParametersIfAutoCompleteNumMethodIsFound(
+ final ProcessMethodContext processMethodContext,
+ final List<FacetedMethodParameter> parameters) {
+
+ if (parameters.isEmpty()) {
+ return;
+ }
+
+ final Method actionMethod = processMethodContext.getMethod();
+ final Class<?>[] params = actionMethod.getParameterTypes();
+
+ for (int i = 0; i < params.length; i++) {
+
+ final Class<?> paramType = params[i];
+
+ final Class[] returnTypes = { String.class };
+ Method namedMethod = findNamedNumMethodReturning(processMethodContext, i, returnTypes);
+ if (namedMethod == null) {
+ continue;
+ }
+ processMethodContext.removeMethod(namedMethod);
+
+ // add facets directly to parameters, not to actions
+ final FacetedMethodParameter paramAsHolder = parameters.get(i);
+ FacetUtil.addFacet(
+ new NamedFacetOnParameterMethod(
+ namedMethod, paramType,
+ getDeploymentCategory(), getSpecificationLoader(),
+ getAuthenticationSessionProvider(), adapterManager));
+ }
+ }
+
+ private Method findNamedNumMethodReturning(
+ final ProcessMethodContext processMethodContext,
+ final int paramNum,
+ final Class<?>[] returnTypes) {
+
+ final Class<?> cls = processMethodContext.getCls();
+ final Method actionMethod = processMethodContext.getMethod();
+ final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
+ final String name = MethodPrefixConstants.AUTO_COMPLETE_PREFIX + paramNum + capitalizedName;
+ return MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, name, returnTypes, new Class[]{String.class});
+ }
+
+ // ///////////////////////////////////////////////////////////////
+ // Dependencies
+ // ///////////////////////////////////////////////////////////////
+
+
+ @Override
+ public void setServicesInjector(final ServicesInjector servicesInjector) {
+ super.setServicesInjector(servicesInjector);
+ adapterManager = servicesInjector.getPersistenceSessionServiceInternal();
+ }
+
+ PersistenceSessionServiceInternal adapterManager;
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/method/NamedFacetOnParameterMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/method/NamedFacetOnParameterMethod.java
new file mode 100644
index 0000000..1559e0b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/named/method/NamedFacetOnParameterMethod.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets.param.named.method;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.List;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.CollectionUtils;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.ImperativeFacet;
+import org.apache.isis.core.metamodel.facets.MultipleValueFacetAbstract;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+
+public class NamedFacetOnParameterMethod extends MultipleValueFacetAbstract implements NamedFacet, ImperativeFacet {
+
+ public static Class<? extends Facet> type() {
+ return NamedFacet.class;
+ }
+
+ private final Method method;
+
+ public NamedFacetOnParameterMethod(
+ final Method method,
+ final FacetHolder holder) {
+ super(type(), holder);
+ this.method = method;
+ }
+
+ @Override
+ public String value(
+ final ObjectAdapter owningAdapter) {
+ return (String)ObjectAdapter.InvokeUtils.invoke(method, owningAdapter);
+ }
+
+ @Override
+ public boolean escaped() {
+ return false;
+ }
+
+ /**
+ * Returns a singleton list of the {@link Method} provided in the
+ * constructor.
+ */
+ @Override
+ public List<Method> getMethods() {
+ return Collections.singletonList(method);
+ }
+
+ @Override
+ public Intent getIntent(final Method method) {
+ return Intent.UI_HINT;
+ }
+
+ @Override
+ protected String toStringValues() {
+ return "method=" + method;
+ }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
index 3b48d1e..b00a4eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
@@ -542,7 +542,7 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader2, Serv
final NamedFacet namedFacet = action.getFacet(NamedFacet.class);
if(namedFacet != null && !namedFacet.isNoop()) {
final NamedFacetRepr namedFacetRepr = new NamedFacetRepr();
- namedFacetRepr.value = namedFacet.value();
+ namedFacetRepr.value = namedFacet.value(owningAdapter);
actionRepr.named = namedFacetRepr;
}
@@ -582,7 +582,7 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader2, Serv
final NamedFacet namedFacet = assoc.getFacet(NamedFacet.class);
if(namedFacet != null && !namedFacet.isNoop()) {
final NamedFacetRepr namedFacetRepr = new NamedFacetRepr();
- namedFacetRepr.value = namedFacet.value();
+ namedFacetRepr.value = namedFacet.value(owningAdapter);
memberRepr.named = namedFacetRepr;
}
final DisabledFacet disabledFacet = assoc.getFacet(DisabledFacet.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index c4baf66..af18b8f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -570,7 +570,7 @@ public abstract class GridSystemServiceAbstract<G extends Grid> implements GridS
final FacetHolder facetHolder) {
final NamedFacet namedFacet = facetHolder.getFacet(NamedFacet.class);
if(isDoOp(namedFacet)) {
- final String named = namedFacet.value();
+ final String named = namedFacet.value(owningAdapter);
if(!Strings.isNullOrEmpty(named)){
hasNamed.setNamed(named);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 29e6bb7..6ba590b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -126,10 +126,11 @@ public interface ObjectSpecification extends Specification, ObjectActionContaine
* Returns the (singular) name for objects of this specification.
*
* <p>
- * Corresponds to the {@link NamedFacet#value()} of {@link NamedFacet}; is
+ * Corresponds to the {@link NamedFacet#value(ObjectAdapter)} of {@link NamedFacet}; is
* not necessarily immutable.
+ * @param owningAdapter
*/
- String getSingularName();
+ String getSingularName(final ObjectAdapter owningAdapter);
/**
* Returns the plural name for objects of this specification.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index 6ec249d..008aa52 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -212,14 +212,16 @@ public interface ObjectAction extends ObjectMember {
private Util() {
}
- public static String nameFor(final ObjectAction objAction) {
+ public static String nameFor(
+ final ObjectAction objAction,
+ final ObjectAdapter owningAdapter) {
final String actionName = objAction.getName();
if (actionName != null) {
return actionName;
}
final NamedFacet namedFacet = objAction.getFacet(NamedFacet.class);
if (namedFacet != null) {
- return namedFacet.value();
+ return namedFacet.value(owningAdapter);
}
return "(no name)";
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java
index 0dcf8a1..72aa8fb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActions.java
@@ -30,13 +30,6 @@ public final class ObjectActions {
private ObjectActions() {
}
- /**
- * @deprecated - use {@link ObjectAction.Util#nameFor(ObjectAction)}
- */
- @Deprecated
- public static String nameFor(final ObjectAction action) {
- return ObjectAction.Util.nameFor(action);
- }
/**
* @deprecated - use {@link ObjectAction.Filters#memberOrderOf(ObjectAssociation)}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index f6cc3b1..a33713c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -138,10 +138,10 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
@Override
public String getId() {
final NamedFacet facet = getFacet(NamedFacet.class);
- if (facet != null && facet.value() != null) {
- return StringExtensions.asCamelLowerFirst(facet.value());
+ if (facet != null && facet.value(owningAdapter) != null) {
+ return StringExtensions.asCamelLowerFirst(facet.value(owningAdapter));
}
- final String name = getSpecification().getSingularName();
+ final String name = getSpecification().getSingularName(owningAdapter);
final List<ObjectActionParameter> parameters = this.getAction().getParameters(new Filter<ObjectActionParameter>() {
@Override
@@ -163,10 +163,10 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
@Override
public String getName() {
final NamedFacet facet = getFacet(NamedFacet.class);
- if (facet != null && facet.value() != null) {
- return facet.value();
+ if (facet != null && facet.value(owningAdapter) != null) {
+ return facet.value(owningAdapter);
}
- final String name = getSpecification().getSingularName();
+ final String name = getSpecification().getSingularName(owningAdapter);
final List<ObjectActionParameter> parameters = getAction().getParameters(new Filter<ObjectActionParameter>() {
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index b059bf9..2b86b05 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -187,7 +187,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
@Override
public String getName() {
final NamedFacet facet = getFacet(NamedFacet.class);
- final String name = facet.value();
+ final String name = facet.value(owningAdapter);
if (name != null) {
return name;
}
@@ -348,7 +348,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
}
static String suffix(final ObjectAction mixinAction) {
- return suffix(mixinAction.getOnType().getSingularName());
+ return suffix(mixinAction.getOnType().getSingularName(owningAdapter));
}
static String suffix(final String singularName) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 792521b..46f47cc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -397,7 +397,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
return titleString;
}
}
- return (this.isService() ? "" : "Untitled ") + getSingularName();
+ return (this.isService() ? "" : "Untitled ") + getSingularName(targetAdapter);
}
@@ -464,11 +464,12 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
/**
* The name according to any available {@link org.apache.isis.core.metamodel.facets.all.named.NamedFacet},
* but falling back to {@link #getFullIdentifier()} otherwise.
+ * @param owningAdapter
*/
@Override
- public String getSingularName() {
+ public String getSingularName(final ObjectAdapter owningAdapter) {
final NamedFacet namedFacet = getFacet(NamedFacet.class);
- return namedFacet != null? namedFacet.value() : this.getFullIdentifier();
+ return namedFacet != null? namedFacet.value(owningAdapter) : this.getFullIdentifier();
}
/**
@@ -683,7 +684,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
}
}
throw new ObjectSpecificationException(
- String.format("No association called '%s' in '%s'", id, getSingularName()));
+ String.format("No association called '%s' in '%s'", id, getSingularName(owningAdapter)));
}
private ObjectAssociation getAssociationWithId(final String id) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 09a91bd..d6feaf9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -198,7 +198,7 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
final NamedFacetTranslated facet = (NamedFacetTranslated) namedFacet;
pluralFacet = new PluralFacetTranslated(facet, this);
} else {
- pluralFacet = new PluralFacetInferred(StringExtensions.asPluralName(namedFacet.value()), this);
+ pluralFacet = new PluralFacetInferred(StringExtensions.asPluralName(namedFacet.value(owningAdapter)), this);
}
addFacet(pluralFacet);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
index 5a1d5b0..ade8633 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
@@ -53,7 +53,6 @@ import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot;
import org.apache.isis.applib.snapshot.SnapshottableWithInclusions;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
@@ -612,7 +611,8 @@ public class XmlSnapshot implements Snapshot {
if (LOG.isDebugEnabled()) {
LOG.debug("objectToElement(NO): create element and isis:title");
}
- final Element element = schema.createElement(getXmlDocument(), nos.getShortIdentifier(), nos.getFullIdentifier(), nos.getSingularName(), nos.getPluralName());
+ final Element element = schema.createElement(getXmlDocument(), nos.getShortIdentifier(), nos.getFullIdentifier(), nos.getSingularName(
+ owningAdapter), nos.getPluralName());
isisMetaModel.appendIsisTitle(element, adapter.titleString());
if (LOG.isDebugEnabled()) {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
index 7ed3aff..25d6797 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
@@ -20,7 +20,6 @@
package org.apache.isis.core.metamodel.facets.actions;
import java.lang.reflect.Method;
-import java.lang.reflect.Type;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -173,7 +172,7 @@ public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
assertNotNull(facet);
assertTrue(facet instanceof NamedFacet);
final NamedFacet namedFacet = (NamedFacet) facet;
- assertEquals("An Action With Named Annotation", namedFacet.value());
+ assertEquals("An Action With Named Annotation", namedFacet.value(owningAdapter));
}
@@ -201,7 +200,7 @@ public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
assertNotNull(facet);
assertTrue(facet instanceof NamedFacet);
final NamedFacet namedFacet = (NamedFacet) facet;
- assertEquals("An Action With Exploration Prefix", namedFacet.value());
+ assertEquals("An Action With Exploration Prefix", namedFacet.value(owningAdapter));
}
public void testInstallsValidateMethodNoArgsFacetAndRemovesMethod() {
@@ -440,7 +439,7 @@ public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
assertNotNull(facet);
assertTrue(facet instanceof NamedFacetAbstract);
final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet;
- assertEquals("Another Name", namedFacetAbstract.value());
+ assertEquals("Another Name", namedFacetAbstract.value(owningAdapter));
assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(nameMethod));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
index 75da9e6..eefeca2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
@@ -675,7 +675,7 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
assertNotNull(facet);
assertTrue(facet instanceof NamedFacetStaticMethod);
final NamedFacetStaticMethod namedFacet = (NamedFacetStaticMethod) facet;
- assertEquals("Most Recent Orders", namedFacet.value());
+ assertEquals("Most Recent Orders", namedFacet.value(owningAdapter));
assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(nameMethod));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
index d7095ed..ebf6be6 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
@@ -55,7 +55,7 @@ public class NamedFacetForCollectionLayoutAnnotationFactoryTest extends Abstract
final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForCollectionLayoutAnnotation.class)));
- assertThat(facet.value(), is(equalTo("1st names")));
+ assertThat(facet.value(owningAdapter), is(equalTo("1st names")));
assertThat(facet.escaped(), is(true));
}
@@ -76,7 +76,7 @@ public class NamedFacetForCollectionLayoutAnnotationFactoryTest extends Abstract
final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForCollectionLayoutAnnotation.class)));
- assertThat(facet.value(), is(equalTo("1st names")));
+ assertThat(facet.value(owningAdapter), is(equalTo("1st names")));
assertThat(facet.escaped(), is(false));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java
index db0931a..307f001 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/naming/named/NamedAnnotationFacetFactoryTest.java
@@ -59,7 +59,7 @@ public class NamedAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
assertThat(facet, is(not(nullValue())));
assertThat(facet instanceof NamedFacetAbstract, is(true));
final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet;
- assertThat(namedFacetAbstract.value(), equalTo("some name"));
+ assertThat(namedFacetAbstract.value(owningAdapter), equalTo("some name"));
}
@Test
@@ -84,7 +84,7 @@ public class NamedAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
assertThat(facet, is(not(nullValue())));
assertThat(facet instanceof NamedFacetAbstract, is(true));
final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet;
- assertThat(namedFacetAbstract.value(), equalTo("some name"));
+ assertThat(namedFacetAbstract.value(owningAdapter), equalTo("some name"));
}
public void testNamedAnnotationPickedUpOnCollection() {
@@ -107,7 +107,7 @@ public class NamedAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
assertThat(facet, is(not(nullValue())));
assertThat(facet instanceof NamedFacetAbstract, is(true));
final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet;
- assertThat(namedFacetAbstract.value(), equalTo("some name"));
+ assertThat(namedFacetAbstract.value(owningAdapter), equalTo("some name"));
}
public void testNamedAnnotationPickedUpOnAction() {
@@ -129,7 +129,7 @@ public class NamedAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
assertThat(facet, is(not(nullValue())));
assertThat(facet instanceof NamedFacetAbstract, is(true));
final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet;
- assertThat(namedFacetAbstract.value(), equalTo("some name"));
+ assertThat(namedFacetAbstract.value(owningAdapter), equalTo("some name"));
}
public void testNamedAnnotationPickedUpOnActionParameter() {
@@ -151,7 +151,7 @@ public class NamedAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
assertThat(facet, is(not(nullValue())));
assertThat(facet instanceof NamedFacetAbstract, is(true));
final NamedFacetAbstract namedFacetAbstract = (NamedFacetAbstract) facet;
- assertThat(namedFacetAbstract.value(), equalTo("some name"));
+ assertThat(namedFacetAbstract.value(owningAdapter), equalTo("some name"));
}
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
index 32de97a..5acaa67 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
@@ -19,7 +19,6 @@
package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
-import org.jmock.Expectations;
import org.jmock.auto.Mock;
import org.junit.After;
import org.junit.Assert;
@@ -441,7 +440,7 @@ public class DomainObjectLayoutFactoryTest extends AbstractFacetFactoryJUnit4Tes
assertTrue(facet instanceof NamedFacetForDomainObjectLayoutAnnotation);
final NamedFacetForDomainObjectLayoutAnnotation facetImpl = (NamedFacetForDomainObjectLayoutAnnotation) facet;
- Assert.assertThat(facetImpl.value(), is("Name override"));
+ Assert.assertThat(facetImpl.value(owningAdapter), is("Name override"));
expectNoMethodsRemoved();
}
@@ -474,7 +473,7 @@ public class DomainObjectLayoutFactoryTest extends AbstractFacetFactoryJUnit4Tes
assertTrue(facet instanceof NamedFacetForViewModelLayoutAnnotation);
final NamedFacetForViewModelLayoutAnnotation facetImpl = (NamedFacetForViewModelLayoutAnnotation) facet;
- Assert.assertThat(facetImpl.value(), is("Name override"));
+ Assert.assertThat(facetImpl.value(owningAdapter), is("Name override"));
expectNoMethodsRemoved();
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/singular/SingularMethodFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/singular/SingularMethodFacetFactoryTest.java
index df6e86a..8f58390 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/singular/SingularMethodFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/singular/SingularMethodFacetFactoryTest.java
@@ -60,7 +60,7 @@ public class SingularMethodFacetFactoryTest extends AbstractFacetFactoryTest {
assertNotNull(facet);
assertTrue(facet instanceof NamedFacetStaticMethod);
final NamedFacetStaticMethod namedFacetStaticMethod = (NamedFacetStaticMethod) facet;
- assertEquals("Some name", namedFacetStaticMethod.value());
+ assertEquals("Some name", namedFacetStaticMethod.value(owningAdapter));
assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(singularNameMethod));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
index b73cdfb..03b5d3c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
@@ -52,7 +52,7 @@ public class NamedFacetForParameterLayoutAnnotationFactoryTest extends AbstractF
final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForParameterLayoutAnnotation.class)));
- assertThat(facet.value(), is(equalTo(NAME)));
+ assertThat(facet.value(owningAdapter), is(equalTo(NAME)));
assertThat(facet.escaped(), is(true));
}
@@ -71,7 +71,7 @@ public class NamedFacetForParameterLayoutAnnotationFactoryTest extends AbstractF
final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForParameterLayoutAnnotation.class)));
- assertThat(facet.value(), is(equalTo(NAME)));
+ assertThat(facet.value(owningAdapter), is(equalTo(NAME)));
assertThat(facet.escaped(), is(false));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
index dc585c2..793f3d7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
@@ -764,7 +764,7 @@ public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
assertNotNull(facet);
assertTrue(facet instanceof NamedFacetStaticMethod);
final NamedFacetStaticMethod namedFacet = (NamedFacetStaticMethod) facet;
- assertEquals("Given name", namedFacet.value());
+ assertEquals("Given name", namedFacet.value(owningAdapter));
assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(nameMethod));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
index 5750433..ff7ba05 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
@@ -62,7 +62,7 @@ public class NamedFacetForPropertyLayoutAnnotationFactoryTest extends AbstractFa
final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
- assertThat(facet.value(), is(equalTo("1st name")));
+ assertThat(facet.value(owningAdapter), is(equalTo("1st name")));
assertThat(facet.escaped(), is(true));
}
@@ -92,7 +92,7 @@ public class NamedFacetForPropertyLayoutAnnotationFactoryTest extends AbstractFa
final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
assertThat(facet, is(notNullValue()));
assertThat(facet, is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
- assertThat(facet.value(), is(equalTo("1st name")));
+ assertThat(facet.value(owningAdapter), is(equalTo("1st name")));
assertThat(facet.escaped(), is(false));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
index 3985ca0..556e9c0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
@@ -103,7 +103,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
public void setUp() throws Exception {
context.checking(new Expectations() {
{
- allowing(stubSpecForString).getSingularName();
+ allowing(stubSpecForString).getSingularName(owningAdapter);
will(returnValue("string"));
allowing(stubObjectActionParameterString).getSpecification();
@@ -126,7 +126,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
one(actionParamPeer).getFacet(NamedFacet.class);
will(returnValue(namedFacet));
- atLeast(1).of(namedFacet).value();
+ atLeast(1).of(namedFacet).value(owningAdapter);
will(returnValue("Some parameter name"));
}
});
@@ -144,7 +144,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
one(actionParamPeer).getFacet(NamedFacet.class);
will(returnValue(namedFacet));
- atLeast(1).of(namedFacet).value();
+ atLeast(1).of(namedFacet).value(owningAdapter);
will(returnValue("Some parameter name"));
}
});
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 6316439..770f362 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -225,13 +225,13 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
}
@Override
- public String getSingularName() {
+ public String getSingularName(final ObjectAdapter owningAdapter) {
return name + " (singular)";
}
@Override
public String getDescription() {
- return getSingularName();
+ return getSingularName(owningAdapter);
}
@Override
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index d8211cb..c996bb3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -335,7 +335,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
case 0:
return "No " + elementSpecification.getPluralName();
case 1:
- return "1 " + elementSpecification.getSingularName();
+ return "1 " + elementSpecification.getSingularName(owningAdapter);
default:
return size + " " + elementSpecification.getPluralName();
}
@@ -357,7 +357,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
}
protected String getDefaultTitle() {
- return "A" + (" " + getSpecification().getSingularName()).toLowerCase();
+ return "A" + (" " + getSpecification().getSingularName(owningAdapter)).toLowerCase();
}
protected void toString(final ToString str) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java
index 788de3e..0801092 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java
@@ -63,6 +63,7 @@ import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
import org.apache.isis.core.metamodel.services.ixn.InteractionDtoServiceInternal;
@@ -274,7 +275,12 @@ public class PublishingServiceInternalDefault implements PublishingServiceIntern
returnType = facetedMethod.getType();
final List<FacetedMethodParameter> parameters = facetedMethod.getParameters();
- parameterNames = immutableList(Iterables.transform(parameters, FacetedMethodParameter.Functions.GET_NAME));
+ parameterNames = immutableList(Iterables.transform(parameters, new Function<FacetedMethodParameter, String>() {
+ @Override public String apply(final FacetedMethodParameter input) {
+ final NamedFacet namedFacet = input.getFacet(NamedFacet.class);
+ return namedFacet.value(targetAdapter);
+ }
+ }));
parameterTypes = immutableList(Iterables.transform(parameters, FacetedMethodParameter.Functions.GET_TYPE));
} else {
parameterNames = null;
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
index 2dc326f..03c9915 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
@@ -185,7 +185,7 @@ public class OneToManyAssociationDefaultTest {
one(mockPeer).getFacet(NamedFacet.class);
will(returnValue(mockNamedFacet));
- one(mockNamedFacet).value();
+ one(mockNamedFacet).value(owningAdapter);
will(returnValue("My name"));
}
});
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
index 26baf69..4022c5d 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
@@ -147,7 +147,7 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
}
protected void putExtensionsNames() {
- final String singularName = objectSpecification.getSingularName();
+ final String singularName = objectSpecification.getSingularName(owningAdapter);
getExtensions().mapPut("friendlyName", singularName);
final String pluralName = objectSpecification.getPluralName();
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
index dda8da5..1f4f988 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.viewer.wicket.viewer.services;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
@@ -45,6 +46,9 @@ public class HintStoreUsingWicketSession implements HintStore {
@Override
public String get(final Bookmark bookmark, final String key) {
+ if(bookmark == null) {
+ return null;
+ }
final Map<String, String> hintsForBookmark = hintsFor(bookmark);
final String value = hintsForBookmark.get(key);
@@ -57,6 +61,9 @@ public class HintStoreUsingWicketSession implements HintStore {
@Override
public void set(final Bookmark bookmark, final String key, final String value) {
+ if(bookmark == null) {
+ return;
+ }
final Map<String, String> hintsForBookmark = hintsFor(bookmark);
if(LOG.isDebugEnabled()) {
@@ -68,6 +75,9 @@ public class HintStoreUsingWicketSession implements HintStore {
@Override
public void remove(final Bookmark bookmark, final String key) {
+ if(bookmark == null) {
+ return;
+ }
final Map<String, String> hintsForBookmark = hintsFor(bookmark);
if(LOG.isDebugEnabled()) {
@@ -79,18 +89,27 @@ public class HintStoreUsingWicketSession implements HintStore {
@Override
public Set<String> findHintKeys(final Bookmark bookmark) {
+ if(bookmark == null) {
+ return Collections.emptySet();
+ }
final Map<String, String> hintsForBookmark = hintsFor(bookmark);
return hintsForBookmark.keySet();
}
@Override
public void removeAll(final Bookmark bookmark) {
+ if(bookmark == null) {
+ return;
+ }
final String sessionAttribute = sessionAttributeFor(bookmark);
Session.get().removeAttribute(sessionAttribute);
}
protected Map<String, String> hintsFor(final Bookmark bookmark) {
+ if(bookmark == null) {
+ return Maps.newLinkedHashMap();
+ }
final String sessionAttribute = sessionAttributeFor(bookmark);
LinkedHashMap<String, String> hints =
(LinkedHashMap<String, String>) Session.get().getAttribute(sessionAttribute);
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index e0966d2..e54e157 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -52,7 +52,7 @@ public class LinkAndLabel implements Serializable {
final String disabledReasonIfAny,
final boolean blobOrClob) {
- final String name = ObjectAction.Util.nameFor(objectAction);
+ final String name = ObjectAction.Util.nameFor(objectAction, owningAdapter);
final boolean explorationOrPrototype = objectAction.isPrototype();
final String actionIdentifier = ObjectAction.Util.actionIdentifierFor(objectAction);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 9d7569c..8f3c25d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -37,9 +37,8 @@ import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.Model;
-import org.apache.isis.applib.annotation.ActionSemantics;
+
import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.filter.Filters;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -58,7 +57,6 @@ import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ServiceActionsModel;
import org.apache.isis.viewer.wicket.ui.components.actionmenu.CssClassFaBehavior;
-import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipBehavior;
@@ -277,7 +275,7 @@ public final class ServiceActionUtil {
final MemberOrderFacet memberOrderFacet = objectAction.getFacet(MemberOrderFacet.class);
String serviceName = memberOrderFacet != null? memberOrderFacet.name(): null;
if(Strings.isNullOrEmpty(serviceName)){
- serviceName = serviceSpec.getFacet(NamedFacet.class).value();
+ serviceName = serviceSpec.getFacet(NamedFacet.class).value(serviceAdapter);
}
final EntityModel serviceModel = new EntityModel(serviceAdapter);
serviceActions.add(new ServiceAndAction(serviceName, serviceModel, objectAction));
@@ -295,7 +293,7 @@ public final class ServiceActionUtil {
// first, order as defined in isis.properties
for (ObjectAdapter serviceAdapter : serviceAdapters) {
final ObjectSpecification serviceSpec = serviceAdapter.getSpecification();
- String serviceName = serviceSpec.getFacet(NamedFacet.class).value();
+ String serviceName = serviceSpec.getFacet(NamedFacet.class).value(serviceAdapter);
serviceNameOrder.add(serviceName);
}
// then, any other services (eg due to misspellings, at the end)
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index 1a9539d..ab12dd1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -131,7 +131,7 @@ public class EntityIconAndTitlePanel extends PanelAbstract<ObjectAdapterModel> {
link.addOrReplace(this.label = newLabel(ID_ENTITY_TITLE, titleAbbreviated(title)));
- String entityTypeName = adapterIfAny.getSpecification().getSingularName();
+ String entityTypeName = adapterIfAny.getSpecification().getSingularName(owningAdapter);
link.add(new AttributeModifier("title", entityTypeName + ": " + title));
}
--
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.