You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/10/28 17:16:14 UTC
[isis] 02/10: ISIS-2158: further remove uses of ObjectAdapter
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit e1311812a60a43350078ba0d52c6ffeb4da3d579
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Oct 25 18:58:16 2019 +0200
ISIS-2158: further remove uses of ObjectAdapter
- RO Viewer no longer uses any ObjectAdapter
---
.../isis/applib/mixins/dto/DtoMappingHelper.java | 2 +-
.../commons/internal/exceptions/_Exceptions.java | 4 +-
.../apache/isis/metamodel/MetaModelContext.java | 16 +-
.../isis/metamodel/MetaModelContext_usingIoc.java | 7 +
.../metamodel/adapter/loader/ObjectLoader.java | 75 ++++
.../ObjectLoader_Builder.java} | 35 +-
.../loader/ObjectLoader_builtinHandlers.java | 260 +++++++++++++
.../metamodel/adapter/oid/factory/OidFactory.java | 20 +-
.../adapter/oid/factory/OidFactory_Builder.java | 9 +-
...viders.java => OidFactory_builtinHandlers.java} | 18 +-
.../facets/object/entity/EntityFacet.java | 9 +-
.../apache/isis/metamodel/spec/ManagedObject.java | 133 +++++--
.../specloader/SpecificationLoaderDefault.java | 3 +-
.../metamodel/MetaModelContext_forTesting.java | 4 +
.../JdoPersistenceCapableFacetImpl.java | 29 +-
...{RendererContext.java => IResourceContext.java} | 32 +-
.../restfulobjects/rendering/LinkBuilder.java | 8 +-
.../viewer/restfulobjects/rendering/OidUtils.java | 102 +----
.../restfulobjects/rendering/RendererFactory.java | 5 +-
.../rendering/ReprRendererAbstract.java | 44 +--
.../viewer/restfulobjects/rendering/Responses.java | 4 +-
.../AbstractObjectMemberReprRenderer.java | 22 +-
.../domainobjects/ActionResultReprRenderer.java | 20 +-
.../domainobjects/DomainObjectLinkTo.java | 22 +-
.../domainobjects/DomainObjectReprRenderer.java | 113 +++---
.../domainobjects/DomainServiceLinkTo.java | 6 +-
.../rendering/domainobjects/JsonValueEncoder.java | 11 +-
.../domainobjects/JsonValueEncoder_Converters.java | 39 +-
.../rendering/domainobjects/ListReprRenderer.java | 16 +-
.../domainobjects/ObjectActionReprRenderer.java | 33 +-
.../domainobjects/ObjectAdapterLinkTo.java | 8 +-
.../rendering/domainobjects/ObjectAndAction.java | 4 +-
.../domainobjects/ObjectAndActionInvocation.java | 20 +-
.../domainobjects/ObjectAndCollection.java | 4 +-
.../domainobjects/ObjectAndCollection2.java | 4 +-
.../rendering/domainobjects/ObjectAndMember.java | 8 +-
.../rendering/domainobjects/ObjectAndProperty.java | 4 +-
.../domainobjects/ObjectAndProperty2.java | 8 +-
.../ObjectCollectionReprRenderer.java | 30 +-
.../domainobjects/ObjectPropertyReprRenderer.java | 22 +-
.../rendering/domainobjects/OidUtils.java | 54 ---
.../domainobjects/ScalarValueReprRenderer.java | 10 +-
.../AbstractTypeFeatureReprRenderer.java | 4 +-
.../AbstractTypeMemberReprRenderer.java | 8 +-
.../domaintypes/ActionDescriptionReprRenderer.java | 12 +-
.../ActionParameterDescriptionReprRenderer.java | 12 +-
.../CollectionDescriptionReprRenderer.java | 8 +-
.../domaintypes/DomainTypeReprRenderer.java | 28 +-
.../PropertyDescriptionReprRenderer.java | 8 +-
.../domaintypes/TypeActionResultReprRenderer.java | 4 +-
.../domaintypes/TypeListReprRenderer.java | 6 +-
.../rendering/service/RepresentationService.java | 30 +-
.../RepresentationServiceContentNegotiator.java | 26 +-
.../service/conneg/ContentNegotiationService.java | 30 +-
.../conneg/ContentNegotiationServiceAbstract.java | 32 +-
...entNegotiationServiceForRestfulObjectsV1_0.java | 92 ++---
.../ContentNegotiationServiceOrgApacheIsisV1.java | 100 ++---
.../ContentNegotiationServiceXRoDomainType.java | 22 +-
.../viewer/restfulobjects/rendering/util/Util.java | 12 -
.../JsonValueEncoderTest_asAdapter.java | 16 +-
.../restfulobjects/server/ResourceContext.java | 19 +-
.../resources/DomainObjectResourceServerside.java | 64 ++--
.../server/resources/DomainResourceHelper.java | 409 ++++++++++-----------
.../resources/DomainServiceResourceServerside.java | 18 +-
.../resources/DomainServicesListReprRenderer.java | 12 +-
.../server/resources/HealthReprRenderer.java | 4 +-
.../server/resources/HomePageReprRenderer.java | 39 +-
.../server/resources/JsonParserHelper.java | 22 +-
.../server/resources/ObjectActionArgHelper.java | 22 +-
.../resources/ObjectAdapterAccessHelper.java | 22 +-
.../resources/ObjectAdapterUpdateHelper.java | 10 +-
.../server/resources/ResourceAbstract.java | 12 +-
.../server/resources/UserReprRenderer.java | 18 +-
.../server/resources/VersionReprRenderer.java | 12 +-
.../isis/testdomain/shiro/ShiroSecmanLdapTest.java | 2 +-
.../shiro/ShiroSecmanLdap_restfulStressTest.java | 7 +
.../fixtures/fixturescripts/FixtureScript.java | 2 +-
77 files changed, 1367 insertions(+), 1054 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
index 4eb15eb..47b4fb3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
@@ -58,7 +58,7 @@ public class DtoMappingHelper {
case VIEW_MODEL:
return BookmarkObjectState.VIEW_MODEL;
default:
- throw _Exceptions.unmatchedCase("objectState '%s' not recognized", bookmark.getObjectState());
+ throw _Exceptions.illegalArgument("objectState '%s' not recognized", bookmark.getObjectState());
}
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java b/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
index 255998c..344772e 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
@@ -72,9 +72,9 @@ public final class _Exceptions {
* @param _case the unmatched case to be reported
* @return
*/
- public static final IllegalArgumentException unmatchedCase(String format, @Nullable Object _case) {
+ public static final IllegalArgumentException illegalArgument(String format, @Nullable Object ... args) {
requires(format, "format");
- return new IllegalArgumentException(String.format(format, _case));
+ return new IllegalArgumentException(String.format(format, args));
}
public static final NoSuchElementException noSuchElement(String msg) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
index 53fce51..09d1d1c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
@@ -31,6 +31,7 @@ import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
+import org.apache.isis.metamodel.adapter.loader.ObjectLoader;
import org.apache.isis.metamodel.services.homepage.HomePageAction;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -47,9 +48,6 @@ import org.apache.isis.security.authorization.manager.AuthorizationManager;
*/
public interface MetaModelContext {
- // -- INTERFACE
- //@Deprecated IsisConfigurationLegacy getConfigurationLegacy();
-
IsisSystemEnvironment getSystemEnvironment();
/**
@@ -90,7 +88,14 @@ public interface MetaModelContext {
HomePageAction getHomePageAction();
+ ObjectLoader getObjectLoader();
+
+ @Deprecated
Stream<ObjectAdapter> streamServiceAdapters();
+
+ default Stream<ManagedObject> streamServiceAdapters2() {
+ return streamServiceAdapters().map(ManagedObject.class::cast);
+ }
ObjectAdapter lookupServiceAdapterById(String serviceId);
@@ -206,6 +211,11 @@ public interface MetaModelContext {
default <T> T getSingletonElseFail(Class<T> type) {
return getMetaModelContext().getSingletonElseFail(type);
}
+
+ @Override
+ default ObjectLoader getObjectLoader() {
+ return getObjectLoader();
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
index 9f456ab..cae7130 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
@@ -37,6 +37,7 @@ import org.apache.isis.commons.internal.ioc.IocContainer;
import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
+import org.apache.isis.metamodel.adapter.loader.ObjectLoader;
import org.apache.isis.metamodel.services.ServiceUtil;
import org.apache.isis.metamodel.services.homepage.HomePageAction;
import org.apache.isis.metamodel.services.homepage.HomePageResolverService;
@@ -153,6 +154,12 @@ class MetaModelContext_usingIoc implements MetaModelContext {
return iocContainer.getSingletonElseFail(type);
}
+ // -- OBJECT LOADING
+
+ @Getter(onMethod = @__(@Override))
+ final ObjectLoader objectLoader = ObjectLoader.buildDefault(this);
+
+
// -- HELPER
private final _Lazy<Map<String, ObjectAdapter>> objectAdaptersForBeansOfKnownSort =
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader.java
new file mode 100644
index 0000000..0cf87b7
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader.java
@@ -0,0 +1,75 @@
+/*
+ * 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.metamodel.adapter.loader;
+
+import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.metamodel.spec.ObjectSpecification;
+
+import lombok.Value;
+import lombok.val;
+
+/**
+ * @since 2.0
+ */
+public interface ObjectLoader {
+
+ ManagedObject loadObject(ObjectLoadRequest objectLoadRequest);
+
+ // -- REQUEST
+
+ @Value(staticConstructor = "of")
+ public static class ObjectLoadRequest {
+ ObjectSpecification objectSpecification;
+ String objectIdentifier;
+ }
+
+ // -- HANDLER
+
+ public interface Handler extends MetaModelContextAware {
+ boolean isHandling(ObjectLoadRequest objectLoadRequest);
+ ManagedObject loadObject(ObjectLoadRequest objectLoadRequest);
+ }
+
+ // -- BUILDER
+
+ public interface ObjectLoaderBuilder {
+ ObjectLoaderBuilder add(Handler handler);
+ ObjectLoader build();
+ }
+
+ public static ObjectLoaderBuilder builder(MetaModelContext metaModelContext) {
+ return new ObjectLoader_Builder(metaModelContext);
+ }
+
+ public static ObjectLoader buildDefault(MetaModelContext metaModelContext) {
+ val objectLoader = ObjectLoader.builder(metaModelContext)
+ .add(new ObjectLoader_builtinHandlers.GuardAgainstNull())
+ .add(new ObjectLoader_builtinHandlers.LoadService())
+ .add(new ObjectLoader_builtinHandlers.LoadValue())
+ .add(new ObjectLoader_builtinHandlers.LoadViewModel())
+ .add(new ObjectLoader_builtinHandlers.LoadEntity())
+ .add(new ObjectLoader_builtinHandlers.LoadOther())
+ .build();
+ return objectLoader;
+ }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_Builder.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader_Builder.java
similarity index 52%
copy from core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_Builder.java
copy to core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader_Builder.java
index 6a862a3..8ac93a5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_Builder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader_Builder.java
@@ -17,41 +17,46 @@
* under the License.
*/
-package org.apache.isis.metamodel.adapter.oid.factory;
+package org.apache.isis.metamodel.adapter.loader;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import org.apache.isis.metamodel.adapter.oid.factory.OidFactory.OidFactoryBuilder;
-import org.apache.isis.metamodel.adapter.oid.factory.OidFactory.OidProvider;
+import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.adapter.loader.ObjectLoader.ObjectLoaderBuilder;
+import lombok.RequiredArgsConstructor;
import lombok.val;
-class OidFactory_Builder implements OidFactoryBuilder {
+@RequiredArgsConstructor
+class ObjectLoader_Builder implements ObjectLoaderBuilder {
+
+ private final MetaModelContext metaModelContext;
- private final List<OidProvider> handler = new ArrayList<>();
+ private final List<ObjectLoader.Handler> handlers = new ArrayList<>();
@Override
- public OidFactoryBuilder add(OidProvider oidProvider) {
- handler.add(oidProvider);
+ public ObjectLoader_Builder add(ObjectLoader.Handler handler) {
+ handler.setMetaModelContext(metaModelContext);
+ handlers.add(handler);
return this;
}
@Override
- public OidFactory build() {
- return managedObject -> {
+ public ObjectLoader build() {
+ return oid -> {
- val rootOid = handler.stream()
- .filter(h->h.isHandling(managedObject))
+ val managedObject = handlers.stream()
+ .filter(h->h.isHandling(oid))
.findFirst()
- .map(h->h.oidFor(managedObject))
+ .map(h->h.loadObject(oid))
.orElse(null);
- Objects.requireNonNull(rootOid,
- () -> "Could not create an Oid for managedObject: " + managedObject);
+ Objects.requireNonNull(managedObject,
+ () -> "Could not create a ManagedObject for Oid: " + oid);
- return rootOid;
+ return managedObject;
};
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader_builtinHandlers.java
new file mode 100644
index 0000000..f4bfeb5
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/loader/ObjectLoader_builtinHandlers.java
@@ -0,0 +1,260 @@
+/*
+ * 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.metamodel.adapter.loader;
+
+import java.lang.reflect.Array;
+import java.lang.reflect.Modifier;
+
+import org.apache.isis.commons.collections.Bin;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
+import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
+import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.adapter.loader.ObjectLoader.Handler;
+import org.apache.isis.metamodel.adapter.loader.ObjectLoader.ObjectLoadRequest;
+import org.apache.isis.metamodel.facets.object.entity.EntityFacet;
+import org.apache.isis.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.metamodel.spec.ObjectSpecification;
+
+import lombok.Data;
+import lombok.val;
+
+/**
+ *
+ * @since 2.0
+ *
+ */
+final class ObjectLoader_builtinHandlers {
+
+ // -- NULL GUARD
+
+ @Data
+ public static class GuardAgainstNull implements Handler {
+
+ private MetaModelContext metaModelContext;
+
+ @Override
+ public boolean isHandling(ObjectLoadRequest objectLoadRequest) {
+
+ if(objectLoadRequest==null) {
+ return true;
+ }
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ if(spec == null) {
+ // eg "NONEXISTENT:123"
+ return true;
+ }
+
+ // we don't guard against the identifier being null, because, this is ok
+ // for services and values
+ return false;
+ }
+
+ @Override
+ public ManagedObject loadObject(ObjectLoadRequest objectLoadRequest) {
+ return null; // yes null
+ }
+
+ }
+
+ // -- MANAGED BEANS
+
+ @Data
+ public static class LoadService implements Handler {
+
+ private MetaModelContext metaModelContext;
+
+ @Override
+ public boolean isHandling(ObjectLoadRequest objectLoadRequest) {
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ return spec.isManagedBean();
+ }
+
+ @Override
+ public ManagedObject loadObject(ObjectLoadRequest objectLoadRequest) {
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ val beanName = spec.getSpecId().asString();
+
+ val servicePojo = metaModelContext.getServiceRegistry()
+ .lookupRegisteredBeanById(beanName)
+ .map(ManagedBeanAdapter::getInstance)
+ .flatMap(Bin::getFirst)
+ .orElseThrow(()->_Exceptions.noSuchElement(
+ "loader: %s loading beanName %s",
+ this.getClass().getName(), beanName));
+
+ return ManagedObject.of(spec, servicePojo);
+ }
+
+ }
+
+ // -- VALUES
+
+ @Data
+ public static class LoadValue implements Handler {
+
+ private MetaModelContext metaModelContext;
+
+ @Override
+ public boolean isHandling(ObjectLoadRequest objectLoadRequest) {
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ return spec.isValue();
+ }
+
+ @Override
+ public ManagedObject loadObject(ObjectLoadRequest objectLoadRequest) {
+
+ // cannot load a value
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ throw _Exceptions.illegalArgument(
+ "cannot load a value, loader: %s loading ObjectSpecification %s",
+ this.getClass().getName(), spec);
+ }
+
+ }
+
+ // -- VIEW MODELS
+
+ @Data
+ public static class LoadViewModel implements Handler {
+
+ private MetaModelContext metaModelContext;
+
+ @Override
+ public boolean isHandling(ObjectLoadRequest objectLoadRequest) {
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ return spec.isViewModel();
+ }
+
+ @Override
+ public ManagedObject loadObject(ObjectLoadRequest objectLoadRequest) {
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ val viewModelFacet = spec.getFacet(ViewModelFacet.class);
+ if(viewModelFacet == null) {
+ throw _Exceptions.illegalArgument(
+ "ObjectSpecification is missing a ViewModelFacet: %s", spec);
+ }
+
+ val memento = objectLoadRequest.getObjectIdentifier();
+ final Object viewModelPojo;
+ if(viewModelFacet.getRecreationMechanism().isInitializes()) {
+ viewModelPojo = this.instantiateAndInjectServices(spec);
+ viewModelFacet.initialize(viewModelPojo, memento);
+ } else {
+ viewModelPojo = viewModelFacet.instantiate(spec.getCorrespondingClass(), memento);
+ }
+
+ return ManagedObject.of(spec, viewModelPojo);
+ }
+
+ private Object instantiateAndInjectServices(ObjectSpecification spec) {
+
+ val type = spec.getCorrespondingClass();
+ if (type.isArray()) {
+ return Array.newInstance(type.getComponentType(), 0);
+ }
+
+ if (Modifier.isAbstract(type.getModifiers())) {
+ throw _Exceptions.illegalArgument("Cannot create an instance of an abstract class '%s', "
+ + "loader: %s loading ObjectSpecification %s",
+ type, this.getClass().getName(), spec);
+ }
+
+ final Object newInstance;
+ try {
+ newInstance = type.newInstance();
+ } catch (final IllegalAccessException | InstantiationException e) {
+ throw _Exceptions.illegalArgument("Failed to create instance of type '%s', "
+ + "loader: %s loading ObjectSpecification %s",
+ type, this.getClass().getName(), spec);
+ }
+
+ metaModelContext.getServiceInjector().injectServicesInto(newInstance);
+ return newInstance;
+ }
+
+ }
+
+ // -- ENTITIES
+
+ @Data
+ public static class LoadEntity implements Handler {
+
+ private MetaModelContext metaModelContext;
+
+ @Override
+ public boolean isHandling(ObjectLoadRequest objectLoadRequest) {
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ return spec.isEntity();
+ }
+
+ @Override
+ public ManagedObject loadObject(ObjectLoadRequest objectLoadRequest) {
+
+ val spec = objectLoadRequest.getObjectSpecification();
+ val entityFacet = spec.getFacet(EntityFacet.class);
+ if(entityFacet==null) {
+ throw _Exceptions.illegalArgument(
+ "ObjectSpecification is missing an EntityFacet: %s", spec);
+ }
+
+ val identifier = objectLoadRequest.getObjectIdentifier();
+ val entityPojo = entityFacet.fetchByIdentifier(spec, identifier);
+
+ metaModelContext.getServiceInjector().injectServicesInto(entityPojo);
+
+ return ManagedObject.of(spec, entityPojo);
+ }
+
+ }
+
+ // -- UNKNOWN LOAD REQUEST
+
+ @Data
+ public static class LoadOther implements Handler {
+
+ private MetaModelContext metaModelContext;
+
+ @Override
+ public boolean isHandling(ObjectLoadRequest objectLoadRequest) {
+ return true; // the last handler in the chain
+ }
+
+ @Override
+ public ManagedObject loadObject(ObjectLoadRequest objectLoadRequest) {
+
+ // unknown object load request
+
+ throw _Exceptions.illegalArgument(
+ "unknown object load request, loader: %s loading ObjectSpecification %s",
+ this.getClass().getName(), objectLoadRequest.getObjectSpecification());
+
+ }
+
+ }
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory.java
index 27d41fd..f58e61e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory.java
@@ -31,13 +31,17 @@ public interface OidFactory {
RootOid oidFor(ManagedObject managedObject);
- public interface OidProvider {
+ // -- HANDLER
+
+ public interface Handler {
boolean isHandling(ManagedObject managedObject);
RootOid oidFor(ManagedObject managedObject);
}
+ // -- BUILDER
+
public interface OidFactoryBuilder {
- OidFactoryBuilder add(OidProvider handler);
+ OidFactoryBuilder add(Handler handler);
OidFactory build();
}
@@ -47,12 +51,12 @@ public interface OidFactory {
public static OidFactory buildDefault() {
val oidFactory = OidFactory.builder()
- .add(new OidFactory_OidProviders.GuardAgainstRootOid())
- .add(new OidFactory_OidProviders.OidForServices())
- .add(new OidFactory_OidProviders.OidForValues())
- .add(new OidFactory_OidProviders.OidForViewModels())
- .add(new OidFactory_OidProviders.OidForEntities())
- .add(new OidFactory_OidProviders.OidForOthers())
+ .add(new OidFactory_builtinHandlers.GuardAgainstRootOid())
+ .add(new OidFactory_builtinHandlers.OidForServices())
+ .add(new OidFactory_builtinHandlers.OidForValues())
+ .add(new OidFactory_builtinHandlers.OidForViewModels())
+ .add(new OidFactory_builtinHandlers.OidForEntities())
+ .add(new OidFactory_builtinHandlers.OidForOthers())
.build();
return oidFactory;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_Builder.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_Builder.java
index 6a862a3..17c1fa4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_Builder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_Builder.java
@@ -24,17 +24,16 @@ import java.util.List;
import java.util.Objects;
import org.apache.isis.metamodel.adapter.oid.factory.OidFactory.OidFactoryBuilder;
-import org.apache.isis.metamodel.adapter.oid.factory.OidFactory.OidProvider;
import lombok.val;
class OidFactory_Builder implements OidFactoryBuilder {
- private final List<OidProvider> handler = new ArrayList<>();
+ private final List<OidFactory.Handler> handlers = new ArrayList<>();
@Override
- public OidFactoryBuilder add(OidProvider oidProvider) {
- handler.add(oidProvider);
+ public OidFactoryBuilder add(OidFactory.Handler handler) {
+ handlers.add(handler);
return this;
}
@@ -42,7 +41,7 @@ class OidFactory_Builder implements OidFactoryBuilder {
public OidFactory build() {
return managedObject -> {
- val rootOid = handler.stream()
+ val rootOid = handlers.stream()
.filter(h->h.isHandling(managedObject))
.findFirst()
.map(h->h.oidFor(managedObject))
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_OidProviders.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_builtinHandlers.java
similarity index 90%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_OidProviders.java
rename to core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_builtinHandlers.java
index 48898e4..69b52db 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_OidProviders.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/factory/OidFactory_builtinHandlers.java
@@ -24,7 +24,7 @@ import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.config.SystemConstants;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.metamodel.adapter.oid.factory.OidFactory.OidProvider;
+import org.apache.isis.metamodel.adapter.oid.factory.OidFactory.Handler;
import org.apache.isis.metamodel.facets.object.entity.EntityFacet;
import org.apache.isis.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.metamodel.facets.object.viewmodel.ViewModelFacet;
@@ -32,10 +32,10 @@ import org.apache.isis.metamodel.spec.ManagedObject;
import lombok.val;
-class OidFactory_OidProviders {
+class OidFactory_builtinHandlers {
- static class GuardAgainstRootOid implements OidProvider {
+ static class GuardAgainstRootOid implements Handler {
@Override
public boolean isHandling(ManagedObject managedObject) {
@@ -51,7 +51,7 @@ class OidFactory_OidProviders {
}
- static class OidForServices implements OidProvider {
+ static class OidForServices implements Handler {
@Override
public boolean isHandling(ManagedObject managedObject) {
@@ -66,7 +66,7 @@ class OidFactory_OidProviders {
}
- static class OidForEntities implements OidProvider {
+ static class OidForEntities implements Handler {
@Override
public boolean isHandling(ManagedObject managedObject) {
@@ -82,13 +82,13 @@ class OidFactory_OidProviders {
val msg = String.format("entity '%s' has not EntityFacet associated", managedObject);
throw _Exceptions.unrecoverable(msg);
}
- val identifier = entityFacet.identifierFor(pojo);
+ val identifier = entityFacet.identifierFor(spec, pojo);
return Oid.Factory.persistentOf(spec.getSpecId(), identifier);
}
}
- static class OidForValues implements OidProvider {
+ static class OidForValues implements Handler {
@Override
public boolean isHandling(ManagedObject managedObject) {
@@ -102,7 +102,7 @@ class OidFactory_OidProviders {
}
- static class OidForViewModels implements OidProvider {
+ static class OidForViewModels implements Handler {
@Override
public boolean isHandling(ManagedObject managedObject) {
@@ -119,7 +119,7 @@ class OidFactory_OidProviders {
}
- static class OidForOthers implements OidProvider {
+ static class OidForOthers implements Handler {
@Override
public boolean isHandling(ManagedObject managedObject) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/entity/EntityFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/entity/EntityFacet.java
index 830e945..024d82d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/entity/EntityFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/entity/EntityFacet.java
@@ -20,6 +20,7 @@
package org.apache.isis.metamodel.facets.object.entity;
import org.apache.isis.metamodel.facetapi.Facet;
+import org.apache.isis.metamodel.spec.ObjectSpecification;
/**
* Indicates that this class is managed by a persistence context.
@@ -27,6 +28,12 @@ import org.apache.isis.metamodel.facetapi.Facet;
*/
public interface EntityFacet extends Facet {
- String identifierFor(Object pojo);
+ String identifierFor(ObjectSpecification spec, Object pojo);
+
+ Object fetchByIdentifier(ObjectSpecification spec, String identifier);
+
+ void persist(ObjectSpecification spec, Object pojo);
+
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
index 6dde30d..f9494a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
@@ -25,12 +25,18 @@ import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
+import org.apache.isis.applib.domain.DomainObjectList;
import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.adapter.loader.ObjectLoader;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.adapter.oid.factory.OidFactory;
+import org.apache.isis.metamodel.adapter.version.Version;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.metamodel.specloader.SpecificationLoaderDefault;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -207,9 +213,6 @@ public interface ManagedObject {
return new LazyManagedObject(specLoader, pojo);
}
- // -- SHORTCUTS
-
-
// -- UNWRAPPING
public static Object unwrapPojo(final ManagedObject adapter) {
@@ -247,7 +250,51 @@ public interface ManagedObject {
.map(ManagedObject::unwrapPojo)
.collect(Collectors.toList());
}
+
+ // -- SHORTCUTS
+
+ public static String getDomainType(ManagedObject objectAdapter) {
+ if (objectAdapter == null) {
+ return null;
+ }
+ return objectAdapter.getSpecification().getSpecId().asString();
+ }
+
+ // -- BASIC PREDICATES
+
+ static boolean isEntity(ManagedObject adapter) {
+ if(adapter==null) {
+ return false;
+ }
+ return adapter.getSpecification().isEntity();
+ }
+ static boolean isValue(ManagedObject adapter) {
+ if(adapter==null) {
+ return false;
+ }
+ return adapter.getSpecification().isValue();
+ }
+
+ static boolean isBookmarkable(ManagedObject adapter) {
+ if(adapter==null) {
+ return false;
+ }
+ val spec = adapter.getSpecification();
+ if(spec.isManagedBean() || spec.isViewModel() || spec.isEntity()) {
+ // services and view models are book-markable
+ return true;
+ }
+ return false;
+ }
+
+ static boolean isNull(ManagedObject adapter) {
+ if(adapter==null) {
+ return true;
+ }
+ return adapter.getPojo()==null;
+ }
+
// -- DEPRECATIONS (in an attempt to decouple the metamodel from ObjectAdapter)
@Deprecated
@@ -262,13 +309,11 @@ public interface ManagedObject {
@Deprecated
static boolean _isDestroyed(ManagedObject adapter) {
- //TODO only applicable when persistable
return ManagedObject.promote(adapter).isDestroyed();
}
@Deprecated
static RootOid _collectionOidIfAny(ManagedObject adapter) {
- // TODO Auto-generated method stub
val oid = ManagedObject.promote(adapter).getOid();
if(!(oid instanceof RootOid)) {
return null;
@@ -290,6 +335,15 @@ public interface ManagedObject {
return true;
}
+ @Deprecated
+ static Version _version(ManagedObject adapter) {
+ if(adapter instanceof ObjectAdapter) {
+ return ((ObjectAdapter)adapter).getVersion();
+ }
+ System.err.println("version support is not fully implemented yet");
+ return null;
+ }
+
// -- OID UTILITIES
static final class Oids {
@@ -317,41 +371,50 @@ public interface ManagedObject {
return null;
}
- // -- BASIC PREDICATES
-
- static boolean isEntity(ManagedObject adapter) {
- if(adapter==null) {
- return false;
+ static RootOid _rootOidElseThrow(ManagedObject adapter) {
+ val rootOid = _rootOidIfAny(adapter);
+ if(rootOid==null) {
+ throw new IllegalArgumentException("adapter must be a root adapter");
}
- return adapter.getSpecification().isEntity();
+ return rootOid;
}
-
- static boolean isValue(ManagedObject adapter) {
- if(adapter==null) {
- return false;
- }
- return adapter.getSpecification().isValue();
+
+ static String _instanceIdIfAny(ManagedObject adapter) {
+ String oidStr = ManagedObject._rootOidElseThrow(adapter).enStringNoVersion();
+ // REVIEW: it's a bit hokey to join these together just to split them out again.
+ return oidStr != null ? Oid.unmarshaller().splitInstanceId(oidStr): null;
}
- static boolean isBookmarkable(ManagedObject adapter) {
- if(adapter==null) {
- return false;
- }
- val spec = adapter.getSpecification();
- if(spec.isManagedBean() || spec.isViewModel() || spec.isEntity()) {
- // services and view models are book-markable
- return true;
- }
- return false;
+ @Deprecated
+ static ManagedObject _adapterOfList(DomainObjectList list) {
+ // TODO Auto-generated method stub
+ // legacy of
+ // resourceContext.adapterOfPojo(list);
+ throw _Exceptions.notImplemented();
}
- static boolean isNull(ManagedObject adapter) {
- if(adapter==null) {
- return true;
- }
- return adapter.getPojo()==null;
+ @Deprecated
+ static void _makePersistentInTransaction(ManagedObject adapter) {
+
+ // TODO Auto-generated method stub
+ // legacy of
+ // getResourceContext().makePersistentInTransaction(adapter);
+ throw _Exceptions.notImplemented();
}
-
-
-}
+ @Deprecated
+ static ManagedObject _adapterOfRootOid(SpecificationLoader specificationLoader, RootOid rootOid) {
+
+ val mmc = ((SpecificationLoaderDefault)specificationLoader).getMetaModelContext();
+
+ val spec = specificationLoader.loadSpecification(rootOid.getObjectSpecId());
+ val objectId = rootOid.getIdentifier();
+
+ val objectLoadRequest = ObjectLoader.ObjectLoadRequest.of(spec, objectId);
+ val managedObject = mmc.getObjectLoader().loadObject(objectLoadRequest);
+
+ return managedObject;
+
+ }
+
+ }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index 535cfe0..054a101 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -58,6 +58,7 @@ import org.apache.isis.schema.utils.CommonDtoUtils;
import static org.apache.isis.commons.internal.base._With.requires;
+import lombok.Getter;
import lombok.val;
import lombok.extern.log4j.Log4j2;
@@ -90,7 +91,7 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
private ProgrammingModel programmingModel;
private FacetProcessor facetProcessor;
private PostProcessor postProcessor;
- private MetaModelContext metaModelContext; // cannot inject, would cause circular dependency
+ @Getter private MetaModelContext metaModelContext; // cannot inject, would cause circular dependency
private final SpecificationCacheDefault<ObjectSpecification> cache =
new SpecificationCacheDefault<>();
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
index 294d234..7d1a4ac 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
@@ -37,6 +37,7 @@ import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
+import org.apache.isis.metamodel.adapter.loader.ObjectLoader;
import org.apache.isis.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.metamodel.services.events.MetamodelEventService;
import org.apache.isis.metamodel.services.homepage.HomePageAction;
@@ -146,6 +147,9 @@ public final class MetaModelContext_forTesting implements MetaModelContext {
return serviceAdaptersById.get(serviceId);
}
+ @Getter(onMethod = @__(@Override))
+ final ObjectLoader objectLoader = ObjectLoader.buildDefault(this);
+
// -- LOOKUP
@Override
diff --git a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
index 90ac80f..4998121 100644
--- a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
+++ b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
@@ -19,14 +19,14 @@
package org.apache.isis.jdo.metamodel.facets.object.persistencecapable;
import java.util.UUID;
-import java.util.stream.Stream;
import javax.jdo.annotations.IdentityType;
import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.commons.internal.context._Context;
-import org.apache.isis.metamodel.facetapi.Facet;
+import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.facetapi.FacetHolder;
+import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.runtime.system.context.IsisContext;
import lombok.val;
@@ -38,11 +38,26 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
final String tableOrTypeName,
final IdentityType identityType,
final FacetHolder holder) {
+
super(schemaName, tableOrTypeName, identityType, holder);
}
@Override
- public String identifierFor(Object pojo) {
+ public Object fetchByIdentifier(ObjectSpecification spec, String identifier) {
+
+ //TODO simplify, spec is already loaded
+
+ val persistenceSession = IsisContext.getPersistenceSession().get();
+ val adapter = persistenceSession.getObjectAdapterByIdProvider()
+ .adapterFor(Oid.Factory.persistentOf(spec.getSpecId(), identifier));
+
+ return adapter.getPojo();
+ }
+
+ @Override
+ public String identifierFor(ObjectSpecification spec, Object pojo) {
+
+ //TODO simplify, spec is already loaded
if(pojo==null || !isPersistableType(pojo.getClass())) {
return "?";
@@ -59,6 +74,12 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
}
}
+ @Override
+ public void persist(ObjectSpecification spec, Object pojo) {
+ // TODO Auto-generated method stub
+
+ }
+
// -- HELPER
private final static _Lazy<Class<?>> persistable_type = _Lazy.threadSafe(()->{
@@ -76,4 +97,6 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
}
+
+
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
similarity index 68%
rename from core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java
rename to core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
index 684e058..5d64e13 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererContext.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
@@ -23,13 +23,18 @@ import java.util.List;
import javax.ws.rs.core.MediaType;
import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.config.IsisConfiguration;
+import org.apache.isis.metamodel.MetaModelContext;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.runtime.system.context.session.RuntimeContext;
+import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.security.authentication.AuthenticationSession;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer;
+import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAdapterLinkTo;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
-public interface RendererContext extends RuntimeContext {
+public interface IResourceContext {
String urlFor(final String url);
@@ -61,21 +66,36 @@ public interface RendererContext extends RuntimeContext {
* @param objectAdapter - the object proposed to be rendered eagerly
* @return whether this adapter has already been rendered (implying the caller should not render the value).
*/
- boolean canEagerlyRender(ObjectAdapter objectAdapter);
+ boolean canEagerlyRender(ManagedObject objectAdapter);
/**
* Applies only when rendering a domain object.
*/
RepresentationService.Intent getIntent();
+
+ ObjectAdapterLinkTo getObjectAdapterLinkTo();
+ void setObjectAdapterLinkTo(ObjectAdapterLinkTo adapterLinkTo);
+
+ AuthenticationSession getAuthenticationSession();
+
+ SpecificationLoader getSpecificationLoader();
+ MetaModelContext getMetaModelContext(); // TODO derive from specLoader
+ ServiceRegistry getServiceRegistry(); // TODO derive from specLoader
+ IsisConfiguration getConfiguration(); // TODO derive from specLoader
// -- TEMPORARY FOR REFACTORING
- default ObjectAdapter getObjectAdapterElseNull(String oidFromHref) {
+ @Deprecated
+ default ManagedObject getObjectAdapterElseNull(String oidFromHref) {
return OidUtils.getObjectAdapterElseNull(this, oidFromHref);
}
- default ObjectAdapter getObjectAdapterElseNull(String domainType, String instanceIdEncoded) {
+ @Deprecated
+ default ManagedObject getObjectAdapterElseNull(String domainType, String instanceIdEncoded) {
return OidUtils.getObjectAdapterElseNull(this, domainType, instanceIdEncoded);
}
+
+
+
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java
index 0cf46b7..a0ff7e1 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkBuilder.java
@@ -28,15 +28,15 @@ import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
public final class LinkBuilder {
- public static LinkBuilder newBuilder(final RendererContext resourceContext, final String rel, final RepresentationType representationType, final String hrefFormat, final Object... hrefArgs) {
+ public static LinkBuilder newBuilder(final IResourceContext resourceContext, final String rel, final RepresentationType representationType, final String hrefFormat, final Object... hrefArgs) {
return newBuilder(resourceContext, rel, representationType.getJsonElseXmlMediaType(), hrefFormat, hrefArgs);
}
- public static LinkBuilder newBuilder(final RendererContext resourceContext, final String rel, final MediaType mediaType, final String hrefFormat, final Object... hrefArgs) {
+ public static LinkBuilder newBuilder(final IResourceContext resourceContext, final String rel, final MediaType mediaType, final String hrefFormat, final Object... hrefArgs) {
return new LinkBuilder(resourceContext, rel, String.format(hrefFormat, hrefArgs), mediaType);
}
- private final RendererContext resourceContext;
+ private final IResourceContext resourceContext;
private final JsonRepresentation representation = JsonRepresentation.newMap();
private final String rel;
@@ -48,7 +48,7 @@ public final class LinkBuilder {
private JsonRepresentation arguments;
private JsonRepresentation value;
- protected LinkBuilder(final RendererContext resourceContext, final String rel, final String href, final MediaType mediaType) {
+ protected LinkBuilder(final IResourceContext resourceContext, final String rel, final String href, final MediaType mediaType) {
this.resourceContext = resourceContext;
this.rel = rel;
this.href = href;
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/OidUtils.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/OidUtils.java
index d0f78cb..5229b39 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/OidUtils.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/OidUtils.java
@@ -18,21 +18,13 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering;
-import org.apache.isis.commons.collections.Bin;
-import org.apache.isis.commons.internal.assertions._Assert;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.metamodel.exceptions.persistence.ObjectNotFoundException;
-import org.apache.isis.metamodel.exceptions.persistence.PojoRecreationException;
-import org.apache.isis.metamodel.facets.object.viewmodel.ViewModelFacet;
-
-import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
+import org.apache.isis.metamodel.spec.ManagedObject;
import lombok.val;
+@Deprecated // use framework API instead, needs migration
final class OidUtils {
private OidUtils() {
@@ -41,104 +33,36 @@ final class OidUtils {
/**
* @return {@code null} if not persistent and not a view model.
*/
- public static ObjectAdapter getObjectAdapterElseNull(
- final RendererContext rendererContext,
+ public static ManagedObject getObjectAdapterElseNull(
+ final IResourceContext resourceContext,
final String domainType,
final String instanceIdEncoded) {
final String instanceIdUnencoded = UrlDecoderUtils.urlDecode(instanceIdEncoded);
String oidStrUnencoded = Oid.marshaller().joinAsOid(domainType, instanceIdUnencoded);
- return getObjectAdapter(rendererContext, oidStrUnencoded);
+ return getObjectAdapter(resourceContext, oidStrUnencoded);
}
/**
- * see {@link #getObjectAdapterElseNull(org.apache.isis.viewer.restfulobjects.rendering.RendererContext, String, String)}
+ * see {@link #getObjectAdapterElseNull(org.apache.isis.viewer.restfulobjects.rendering.IResourceContext, String, String)}
*/
- public static ObjectAdapter getObjectAdapterElseNull(
- final RendererContext rendererContext,
+ public static ManagedObject getObjectAdapterElseNull(
+ final IResourceContext resourceContext,
final String oidStrEncoded) {
String oidStrUnencoded = UrlDecoderUtils.urlDecode(oidStrEncoded);
- return getObjectAdapter(rendererContext, oidStrUnencoded);
+ return getObjectAdapter(resourceContext, oidStrUnencoded);
}
// -- HELPER
- private static ObjectAdapter getObjectAdapter(
- final RendererContext rendererContext,
+ private static ManagedObject getObjectAdapter(
+ final IResourceContext resourceContext,
final String oidStrUnencoded) {
- final RootOid rootOid = RootOid.deString(oidStrUnencoded);
- final Object domainObject = domainObjectForAny(rendererContext, rootOid);
-
- return rendererContext.adapterOfPojo(domainObject);
- }
-
- private static Object domainObjectForAny(final RendererContext rendererContext, final RootOid rootOid) {
-
- val specId = rootOid.getObjectSpecId();
- val spec = rendererContext.getSpecificationLoader().lookupBySpecIdElseLoad(specId);
- if(spec == null) {
- // eg "NONEXISTENT:123"
- return null;
- }
-
- //TODO[2158] remove eventually
- _Assert.assertEquals("expected same",
- spec.getBeanSort().isViewModel(),
- spec.containsFacet(ViewModelFacet.class));
-
- if(spec.getBeanSort().isViewModel()) {
-
- try {
- val fixedRootOid = ensureConsistentOidState(rootOid);
- val adapter = rendererContext.adapterOfPojo(fixedRootOid);
-
- val pojo = mapIfPresentElse(adapter, ObjectAdapter::getPojo, null);
- return pojo;
-
- } catch(ObjectNotFoundException | PojoRecreationException ex) {
- return null;
- }
- } else if(spec.getBeanSort().isEntity()){
- try {
- val pojo = rendererContext.fetchPersistentPojoInTransaction(rootOid);
- //TODO[ISIS-1976] changed behavior: predicate was objectAdapter.isTransient();
- return rendererContext.stateOf(pojo).isDetached()
- ? null
- : pojo;
- } catch(ObjectNotFoundException ex) {
- return null;
- }
- } else if(spec.getBeanSort().isManagedBean()){
-
- val servicePojo = rendererContext.getServiceRegistry()
- .lookupRegisteredBeanById(spec.getSpecId().asString())
- .map(ManagedBeanAdapter::getInstance)
- .flatMap(Bin::getFirst)
- .orElse(null);
-
- if(servicePojo!=null) {
- return servicePojo;
- }
- // fall through and throw
-
- }
- throw _Exceptions.unrecoverableFormatted(
- "unhandled request for a %s having rootId %s",
- spec,
- rootOid);
-
+ val rootOid = RootOid.deString(oidStrUnencoded);
+ return ManagedObject._adapterOfRootOid(resourceContext.getSpecificationLoader(), rootOid);
}
- private static RootOid ensureConsistentOidState(RootOid rootOid) {
- // this is a hack; the RO viewer when rendering the URL for the view model loses the "view model" indicator
- // ("*") from the specId, meaning that the marshalling logic above in RootOidDefault.deString() creates an
- // oid in the wrong state. The code below checks for this and recreates the oid with the current state of 'view model'
- if(!rootOid.isViewModel()) {
- return Oid.Factory.viewmodelOf(rootOid.getObjectSpecId(), rootOid.getIdentifier());
- }
- return rootOid;
- }
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererFactory.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererFactory.java
index 14d51a5..a996acd 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererFactory.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/RendererFactory.java
@@ -25,6 +25,9 @@ public interface RendererFactory {
RepresentationType getRepresentationType();
- ReprRenderer<?, ?> newRenderer(RendererContext resourceContext, LinkFollowSpecs linkFollower, JsonRepresentation representation);
+ ReprRenderer<?, ?> newRenderer(
+ IResourceContext resourceContext,
+ LinkFollowSpecs linkFollower,
+ JsonRepresentation representation);
}
\ No newline at end of file
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
index cff9f94..4b5fcbc 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
@@ -26,8 +26,8 @@ import javax.ws.rs.core.MediaType;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
@@ -42,7 +42,7 @@ import lombok.val;
public abstract class ReprRendererAbstract<R extends ReprRendererAbstract<R, T>, T>
implements ReprRenderer<R, T> {
- @Getter protected final RendererContext rendererContext;
+ @Getter protected final IResourceContext resourceContext;
@Getter protected final JsonValueEncoder jsonValueEncoder;
private final LinkFollowSpecs linkFollower;
@@ -55,24 +55,24 @@ implements ReprRenderer<R, T> {
protected boolean includesSelf;
public ReprRendererAbstract(
- final RendererContext rendererContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollower,
final RepresentationType representationType,
final JsonRepresentation representation) {
- this.rendererContext = rendererContext;
- this.jsonValueEncoder = rendererContext.getServiceRegistry()
+ this.resourceContext = resourceContext;
+ this.jsonValueEncoder = resourceContext.getServiceRegistry()
.lookupServiceElseFail(JsonValueEncoder.class);
this.linkFollower = asProvidedElseCreate(linkFollower);
this.representationType = representationType;
this.representation = representation;
- this.interactionInitiatedBy = determineInteractionInitiatedByFrom(this.rendererContext);
+ this.interactionInitiatedBy = determineInteractionInitiatedByFrom(this.resourceContext);
}
private static InteractionInitiatedBy determineInteractionInitiatedByFrom(
- final RendererContext rendererContext) {
- return rendererContext.getInteractionInitiatedBy();
+ final IResourceContext resourceContext) {
+ return resourceContext.getInteractionInitiatedBy();
}
protected InteractionInitiatedBy getInteractionInitiatedBy() {
@@ -87,7 +87,7 @@ implements ReprRenderer<R, T> {
if (linkFollower != null) {
return linkFollower;
}
- return LinkFollowSpecs.create(rendererContext.getFollowLinks());
+ return LinkFollowSpecs.create(resourceContext.getFollowLinks());
}
@Override
@@ -107,7 +107,7 @@ implements ReprRenderer<R, T> {
public R withLink(final Rel rel, final String href) {
if (href != null) {
- getLinks().arrayAdd(LinkBuilder.newBuilder(rendererContext, rel.getName(), representationType, href).build());
+ getLinks().arrayAdd(LinkBuilder.newBuilder(resourceContext, rel.getName(), representationType, href).build());
}
return cast(this);
}
@@ -140,13 +140,13 @@ implements ReprRenderer<R, T> {
if (objectSpec == null) {
return;
}
- final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), rel, objectSpec);
+ final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), rel, objectSpec);
JsonRepresentation link = linkBuilder.build();
getLinks().arrayAdd(link);
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final DomainTypeReprRenderer renderer = new DomainTypeReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap())
+ final DomainTypeReprRenderer renderer = new DomainTypeReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap())
.with(objectSpec);
link.mapPut("value", renderer.render());
}
@@ -187,29 +187,29 @@ implements ReprRenderer<R, T> {
*/
protected final void addExtensionsIsisProprietaryChangedObjects() {
- // TODO: have removed UpdateNotifier, plan is to re-introduce using the IsisTransaction enlisted objects
- // (which would also allow newly-created objects to be shown)
- final List<ObjectAdapter> changedObjects = _Lists.newArrayList(); // updateNotifier.getChangedObjects();
- final List<ObjectAdapter> disposedObjects = _Lists.newArrayList(); // updateNotifier.getDisposedObjects();
+ // TODO: have removed UpdateNotifier, plan is to re-introduce using the IsisTransaction
+ // enlisted objects (which would also allow newly-created objects to be shown)
+ final List<ManagedObject> changedObjects = _Lists.newArrayList(); // updateNotifier.getChangedObjects();
+ final List<ManagedObject> disposedObjects = _Lists.newArrayList(); // updateNotifier.getDisposedObjects();
addToExtensions("changed", changedObjects);
addToExtensions("disposed", disposedObjects);
}
- private void addToExtensions(final String key, final List<ObjectAdapter> adapters) {
+ private void addToExtensions(final String key, final List<ManagedObject> adapters) {
if(adapters == null || adapters.isEmpty()) {
return;
}
final JsonRepresentation adapterList = JsonRepresentation.newArray();
getExtensions().mapPut(key, adapterList);
- for (final ObjectAdapter adapter : adapters) {
- adapterList.arrayAdd(DomainObjectReprRenderer.newLinkToBuilder(getRendererContext(), Rel.VALUE, adapter).build());
+ for (val adapter : adapters) {
+ adapterList.arrayAdd(DomainObjectReprRenderer.newLinkToBuilder(getResourceContext(), Rel.VALUE, adapter).build());
}
}
- protected Stream<ObjectAdapter> streamServiceAdapters() {
- val metaModelContext = rendererContext.getMetaModelContext();
- return metaModelContext.streamServiceAdapters();
+ protected Stream<ManagedObject> streamServiceAdapters() {
+ val metaModelContext = resourceContext.getMetaModelContext();
+ return metaModelContext.streamServiceAdapters2();
}
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
index d9e5ecd..b00e769 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
@@ -106,7 +106,7 @@ public final class Responses {
private static Date now(ReprRenderer<?, ?> renderer) {
if(renderer instanceof ReprRendererAbstract) {
- ((ReprRendererAbstract<?, ?>)renderer).getRendererContext().getServiceRegistry()
+ ((ReprRendererAbstract<?, ?>)renderer).getResourceContext().getServiceRegistry()
.lookupServiceElseFail(ClockService.class).nowAsDateTime().toDate();
}
return new Date();
@@ -142,7 +142,7 @@ public final class Responses {
public static JsonMapper.PrettyPrinting inferPrettyPrinting(ReprRenderer<?, ?> renderer) {
if(renderer instanceof ReprRendererAbstract) {
- val systemEnvironment = ((ReprRendererAbstract<?, ?>) renderer).getRendererContext()
+ val systemEnvironment = ((ReprRendererAbstract<?, ?>) renderer).getResourceContext()
.getMetaModelContext().getSystemEnvironment();
return systemEnvironment.isPrototyping()
? JsonMapper.PrettyPrinting.ENABLE
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
index 97a097f..9e23634 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/AbstractObjectMemberReprRenderer.java
@@ -21,16 +21,16 @@ package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
import com.fasterxml.jackson.databind.node.NullNode;
import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.facetapi.Facet;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectMember;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public abstract class AbstractObjectMemberReprRenderer<R extends ReprRendererAbstract<R, ObjectAndMember<T>>, T extends ObjectMember>
@@ -67,7 +67,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
protected ObjectAdapterLinkTo linkTo;
- protected ObjectAdapter objectAdapter;
+ protected ManagedObject objectAdapter;
protected Mode mode = Mode.INLINE; // unless we determine otherwise
/**
* Derived from {@link #objectMember} using {@link org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberType#determineFrom(org.apache.isis.metamodel.spec.feature.ObjectFeature)}
@@ -85,13 +85,13 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
private final Where where;
public AbstractObjectMemberReprRenderer(
- final RendererContext rendererContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollower,
final String memberId,
final RepresentationType representationType,
final JsonRepresentation representation,
final Where where) {
- super(rendererContext, linkFollower, representationType, representation);
+ super(resourceContext, linkFollower, representationType, representation);
this.memberId = memberId;
this.where = where;
}
@@ -117,7 +117,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
* {@link #objectAdapter}).
*/
public R usingLinkTo(final ObjectAdapterLinkTo linkTo) {
- this.linkTo = linkTo.usingUrlBase(rendererContext).with(objectAdapter);
+ this.linkTo = linkTo.usingUrlBase(resourceContext).with(objectAdapter);
return cast(this);
}
@@ -165,7 +165,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
*/
protected void renderMemberContent() {
- if(!rendererContext.suppressMemberId()) {
+ if(!resourceContext.suppressMemberId()) {
representation.mapPut("id", objectMember.getId());
}
@@ -173,7 +173,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
representation.mapPut("memberType", objectMemberType.getName());
}
- if (mode.isInline() && !rendererContext.suppressMemberLinks()) {
+ if (mode.isInline() && !resourceContext.suppressMemberLinks()) {
addDetailsLinkIfPersistent();
}
@@ -188,7 +188,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
if (mode.isFollowed() || mode.isStandalone() || mode.isMutated()) {
addMutatorLinksIfEnabled();
- if(!mode.isInline() || !rendererContext.suppressUpdateLink()) {
+ if(!mode.isInline() || !resourceContext.suppressUpdateLink()) {
putExtensionsIsisProprietary();
}
addLinksToFormalDomainModel();
@@ -255,7 +255,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
}
private void addDetailsLinkIfPersistent() {
- if (!objectAdapter.isRepresentingPersistent()) {
+ if (!ManagedObject.isBookmarkable(objectAdapter)) {
return;
}
final JsonRepresentation link = linkTo.memberBuilder(Rel.DETAILS, objectMemberType, objectMember).build();
@@ -276,7 +276,7 @@ extends ReprRendererAbstract<R, ObjectAndMember<T>> {
protected abstract void followDetailsLink(JsonRepresentation detailsLink);
protected final void putDisabledReasonIfDisabled() {
- if(rendererContext.suppressMemberDisabledReason()) {
+ if(resourceContext.suppressMemberDisabledReason()) {
return;
}
final String disabledReasonRep = usability().getReason();
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java
index 58167a1..eb158a0 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ActionResultReprRenderer.java
@@ -23,8 +23,8 @@ import java.util.stream.Stream;
import com.fasterxml.jackson.databind.node.NullNode;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
@@ -34,17 +34,17 @@ import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ActionResultRepresentation.ResultType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public class ActionResultReprRenderer extends ReprRendererAbstract<ActionResultReprRenderer, ObjectAndActionInvocation> {
private ObjectAdapterLinkTo adapterLinkTo = new DomainObjectLinkTo();
- private ObjectAdapter objectAdapter;
+ private ManagedObject objectAdapter;
private ObjectAction action;
private JsonRepresentation arguments;
- private ObjectAdapter returnedAdapter;
+ private ManagedObject returnedAdapter;
private final SelfLink selfLink;
private ObjectAndActionInvocation objectAndActionInvocation;
@@ -53,11 +53,11 @@ public class ActionResultReprRenderer extends ReprRendererAbstract<ActionResultR
}
public ActionResultReprRenderer(
- final RendererContext rendererContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollower,
final SelfLink selfLink,
final JsonRepresentation representation) {
- super(rendererContext, linkFollower, RepresentationType.ACTION_RESULT, representation);
+ super(resourceContext, linkFollower, RepresentationType.ACTION_RESULT, representation);
this.selfLink = selfLink;
}
@@ -137,11 +137,11 @@ public class ActionResultReprRenderer extends ReprRendererAbstract<ActionResultR
case LIST:
- final Stream<ObjectAdapter> collectionAdapters =
+ final Stream<ManagedObject> collectionAdapters =
CollectionFacet.Utils.streamAdapters(returnedAdapter);
final ListReprRenderer listReprRenderer =
- new ListReprRenderer(rendererContext, null, representation).withElementRel(Rel.ELEMENT);
+ new ListReprRenderer(resourceContext, null, representation).withElementRel(Rel.ELEMENT);
listReprRenderer.with(collectionAdapters)
.withReturnType(action.getReturnType())
.withElementType(returnedAdapter.getElementSpecification());
@@ -151,7 +151,7 @@ public class ActionResultReprRenderer extends ReprRendererAbstract<ActionResultR
case SCALAR_VALUE:
final ScalarValueReprRenderer scalarValueReprRenderer =
- new ScalarValueReprRenderer(rendererContext, null, representation);
+ new ScalarValueReprRenderer(resourceContext, null, representation);
scalarValueReprRenderer.with(returnedAdapter)
.withReturnType(action.getReturnType());
@@ -160,7 +160,7 @@ public class ActionResultReprRenderer extends ReprRendererAbstract<ActionResultR
case DOMAIN_OBJECT:
final DomainObjectReprRenderer objectReprRenderer =
- new DomainObjectReprRenderer(rendererContext, null, representation);
+ new DomainObjectReprRenderer(resourceContext, null, representation);
objectReprRenderer.with(returnedAdapter).includesSelf();
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java
index b4e1c7d..303410c 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectLinkTo.java
@@ -18,26 +18,26 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.ObjectMember;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
public class DomainObjectLinkTo implements ObjectAdapterLinkTo {
- protected RendererContext rendererContext;
- protected ObjectAdapter objectAdapter;
+ protected IResourceContext resourceContext;
+ protected ManagedObject objectAdapter;
@Override
- public final DomainObjectLinkTo usingUrlBase(final RendererContext resourceContext) {
- this.rendererContext = resourceContext;
+ public final DomainObjectLinkTo usingUrlBase(final IResourceContext resourceContext) {
+ this.resourceContext = resourceContext;
return this;
}
@Override
- public ObjectAdapterLinkTo with(final ObjectAdapter objectAdapter) {
+ public ObjectAdapterLinkTo with(final ManagedObject objectAdapter) {
this.objectAdapter = objectAdapter;
return this;
}
@@ -49,7 +49,7 @@ public class DomainObjectLinkTo implements ObjectAdapterLinkTo {
@Override
public LinkBuilder builder(final Rel rel) {
- final LinkBuilder linkBuilder = LinkBuilder.newBuilder(rendererContext, relElseDefault(rel).getName(), RepresentationType.DOMAIN_OBJECT, linkRef(new StringBuilder()).toString());
+ final LinkBuilder linkBuilder = LinkBuilder.newBuilder(resourceContext, relElseDefault(rel).getName(), RepresentationType.DOMAIN_OBJECT, linkRef(new StringBuilder()).toString());
linkBuilder.withTitle(objectAdapter.titleString());
return linkBuilder;
}
@@ -58,8 +58,8 @@ public class DomainObjectLinkTo implements ObjectAdapterLinkTo {
* hook method
*/
protected StringBuilder linkRef(StringBuilder buf) {
- String domainType = OidUtils.getDomainType(objectAdapter);
- String instanceId = OidUtils.getInstanceId(objectAdapter);
+ String domainType = ManagedObject.getDomainType(objectAdapter);
+ String instanceId = ManagedObject._instanceIdIfAny(objectAdapter);
return buf.append("objects/").append(domainType).append("/").append(instanceId);
}
@@ -90,7 +90,7 @@ public class DomainObjectLinkTo implements ObjectAdapterLinkTo {
buf.append("/").append(part);
}
final String url = buf.toString();
- return LinkBuilder.newBuilder(rendererContext, rel.andParam(memberType.getName(), objectMember.getId()), representationType, url);
+ return LinkBuilder.newBuilder(resourceContext, rel.andParam(memberType.getName(), objectMember.getId()), representationType, url);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index 9a08513..5270e69 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -23,7 +23,6 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.isis.applib.annotation.DomainServiceLayout;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
import org.apache.isis.metamodel.facets.object.title.TitleFacet;
@@ -41,47 +40,47 @@ import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.DomainTypeReprRenderer;
import lombok.val;
-public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectReprRenderer, ObjectAdapter> {
+public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectReprRenderer, ManagedObject> {
private static final String X_RO_DOMAIN_TYPE = "x-ro-domain-type";
public static LinkBuilder newLinkToBuilder(
- final RendererContext rendererContext,
+ final IResourceContext resourceContext,
final Rel rel,
- final ObjectAdapter objectAdapter) {
+ final ManagedObject objectAdapter) {
- String domainType = OidUtils.getDomainType(objectAdapter);
- String instanceId = OidUtils.getInstanceId(objectAdapter);
+ String domainType = ManagedObject.getDomainType(objectAdapter);
+ String instanceId = ManagedObject._instanceIdIfAny(objectAdapter);
final String url = "objects/" + domainType + "/" + instanceId;
- return LinkBuilder.newBuilder(rendererContext, rel.getName(), RepresentationType.DOMAIN_OBJECT, url).withTitle(objectAdapter.titleString(null));
+ return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.DOMAIN_OBJECT, url).withTitle(objectAdapter.titleString(null));
}
public static LinkBuilder newLinkToObjectLayoutBuilder(
- final RendererContext rendererContext,
- final ObjectAdapter objectAdapter) {
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter) {
final Rel rel = Rel.OBJECT_LAYOUT;
- String domainType = OidUtils.getDomainType(objectAdapter);
- String instanceId = OidUtils.getInstanceId(objectAdapter);
+ String domainType = ManagedObject.getDomainType(objectAdapter);
+ String instanceId = ManagedObject._instanceIdIfAny(objectAdapter);
final String url = "objects/" + domainType + "/" + instanceId + "/object-layout";
- return LinkBuilder.newBuilder(rendererContext, rel.getName(), RepresentationType.OBJECT_LAYOUT, url);
+ return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.OBJECT_LAYOUT, url);
}
public static LinkBuilder newLinkToObjectIconBuilder(
- final RendererContext rendererContext,
- final ObjectAdapter objectAdapter) {
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter) {
final Rel rel = Rel.OBJECT_ICON;
- String domainType = OidUtils.getDomainType(objectAdapter);
- String instanceId = OidUtils.getInstanceId(objectAdapter);
+ String domainType = ManagedObject.getDomainType(objectAdapter);
+ String instanceId = ManagedObject._instanceIdIfAny(objectAdapter);
final String url = "objects/" + domainType + "/" + instanceId + "/image";
- return LinkBuilder.newBuilder(rendererContext, rel.getName(), RepresentationType.OBJECT_IMAGE, url);
+ return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.OBJECT_IMAGE, url);
}
private static enum Mode {
@@ -124,11 +123,11 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
private ObjectAdapterLinkTo linkToBuilder;
- private ObjectAdapter objectAdapter;
+ private ManagedObject objectAdapter;
private Mode mode = Mode.REGULAR;
public DomainObjectReprRenderer(
- final RendererContext resourceContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollower,
final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.DOMAIN_OBJECT, representation);
@@ -140,14 +139,14 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
* generating links.
*/
public DomainObjectReprRenderer usingLinkToBuilder(final ObjectAdapterLinkTo objectAdapterLinkToBuilder) {
- this.linkToBuilder = objectAdapterLinkToBuilder.usingUrlBase(rendererContext);
+ this.linkToBuilder = objectAdapterLinkToBuilder.usingUrlBase(resourceContext);
return this;
}
@Override
- public DomainObjectReprRenderer with(final ObjectAdapter objectAdapter) {
+ public DomainObjectReprRenderer with(final ManagedObject objectAdapter) {
this.objectAdapter = objectAdapter;
- String domainTypeHref = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.DOMAIN_TYPE, objectAdapter.getSpecification()).build().getString("href");
+ String domainTypeHref = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), Rel.DOMAIN_TYPE, objectAdapter.getSpecification()).build().getString("href");
addMediaTypeParams(X_RO_DOMAIN_TYPE, domainTypeHref);
return this;
}
@@ -164,7 +163,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
if (!(mode.isArgs())) {
// self, extensions.oid
- if (objectAdapter.isRepresentingPersistent()) {
+ if (ManagedObject.isBookmarkable(objectAdapter)) {
if (includesSelf) {
addLinkToSelf();
}
@@ -195,7 +194,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
// described by
- if (mode.includeDescribedBy() && !rendererContext.suppressDescribedByLinks()) {
+ if (mode.includeDescribedBy() && !resourceContext.suppressDescribedByLinks()) {
addLinkToDescribedBy();
addLinkToObjectLayout();
addLinkToObjectIcon();
@@ -204,14 +203,14 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
addLinkToUp();
}
- if (!mode.isArgs() && !rendererContext.objectPropertyValuesOnly()) {
+ if (!mode.isArgs() && !resourceContext.objectPropertyValuesOnly()) {
// update/persist
addPersistLinkIfTransientAndPersistable();
addUpdatePropertiesLinkIfRequired();
// extensions
getExtensions().mapPut("isService", isService);
- getExtensions().mapPut("isPersistent", objectAdapter.isRepresentingPersistent());
+ getExtensions().mapPut("isPersistent", ManagedObject.isBookmarkable(objectAdapter));
if(isService) {
final ObjectSpecification objectSpec = objectAdapter.getSpecification();
final DomainServiceLayoutFacet layoutFacet =
@@ -234,7 +233,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
final DomainObjectReprRenderer renderer =
- new DomainObjectReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ new DomainObjectReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
renderer.with(objectAdapter);
link.mapPut("value", renderer.render());
}
@@ -243,11 +242,11 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
private void addLinkToDescribedBy() {
- final JsonRepresentation link = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.DESCRIBEDBY, objectAdapter.getSpecification()).build();
+ final JsonRepresentation link = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), Rel.DESCRIBEDBY, objectAdapter.getSpecification()).build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final DomainTypeReprRenderer renderer = new DomainTypeReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final DomainTypeReprRenderer renderer = new DomainTypeReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
renderer.with(objectAdapter.getSpecification());
link.mapPut("value", renderer.render());
}
@@ -256,36 +255,36 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
private void addLinkToObjectLayout() {
final LinkBuilder linkBuilder = DomainObjectReprRenderer
- .newLinkToObjectLayoutBuilder(getRendererContext(), objectAdapter);
+ .newLinkToObjectLayoutBuilder(getResourceContext(), objectAdapter);
final JsonRepresentation link = linkBuilder.build();
getLinks().arrayAdd(link);
}
private void addLinkToObjectIcon() {
final LinkBuilder linkBuilder = DomainObjectReprRenderer
- .newLinkToObjectIconBuilder(getRendererContext(), objectAdapter);
+ .newLinkToObjectIconBuilder(getResourceContext(), objectAdapter);
final JsonRepresentation link = linkBuilder.build();
getLinks().arrayAdd(link);
}
private void addLinkToUp() {
- final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.LIST, "services").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(resourceContext, Rel.UP.getName(), RepresentationType.LIST, "services").build();
getLinks().arrayAdd(link);
}
private String getDomainType() {
- return org.apache.isis.viewer.restfulobjects.rendering.domainobjects.OidUtils.getDomainType(objectAdapter);
+ return ManagedObject.getDomainType(objectAdapter);
}
private String getInstanceId() {
- return org.apache.isis.viewer.restfulobjects.rendering.domainobjects.OidUtils.getInstanceId(objectAdapter);
+ return ManagedObject._instanceIdIfAny(objectAdapter);
}
private String getOidStr() {
- return org.apache.isis.viewer.restfulobjects.rendering.domainobjects.OidUtils.getOidStr(objectAdapter);
+ return ManagedObject._rootOidElseThrow(objectAdapter).enStringNoVersion();
}
- private DomainObjectReprRenderer withMembers(final ObjectAdapter objectAdapter) {
+ private DomainObjectReprRenderer withMembers(final ManagedObject objectAdapter) {
final JsonRepresentation appendTo =
mode.isUpdatePropertiesLinkArgs() ? representation : JsonRepresentation.newMap();
final List<ObjectAssociation> associations = objectAdapter.getSpecification()
@@ -294,7 +293,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
addProperties(objectAdapter, appendTo, associations);
- if(!rendererContext.objectPropertyValuesOnly()) {
+ if(!resourceContext.objectPropertyValuesOnly()) {
if (!mode.isArgs() ) {
addCollections(objectAdapter, appendTo, associations);
}
@@ -312,11 +311,11 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
return this;
}
- private void addProperties(final ObjectAdapter objectAdapter, final JsonRepresentation members, final List<ObjectAssociation> associations) {
+ private void addProperties(final ManagedObject objectAdapter, final JsonRepresentation members, final List<ObjectAssociation> associations) {
for (final ObjectAssociation assoc : associations) {
if (mode.checkVisibility()) {
- final Consent visibility = assoc.isVisible(objectAdapter, getInteractionInitiatedBy(), rendererContext.getWhere());
+ final Consent visibility = assoc.isVisible(objectAdapter, getInteractionInitiatedBy(), resourceContext.getWhere());
if (!visibility.isAllowed()) {
continue;
}
@@ -329,7 +328,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
final LinkFollowSpecs linkFollowerForProp = getLinkFollowSpecs().follow("members[" + property.getId() + "]");
final JsonRepresentation propertyRepresentation = JsonRepresentation.newMap();
final ObjectPropertyReprRenderer renderer =
- new ObjectPropertyReprRenderer(getRendererContext(), linkFollowerForProp, property.getId(), propertyRepresentation);
+ new ObjectPropertyReprRenderer(getResourceContext(), linkFollowerForProp, property.getId(), propertyRepresentation);
renderer.with(new ObjectAndProperty(objectAdapter, property)).usingLinkTo(linkToBuilder);
if (mode.isArgs()) {
@@ -340,18 +339,18 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
final JsonRepresentation propertyValueRepresentation = renderer.render();
- final JsonRepresentation propertyRepr = rendererContext.objectPropertyValuesOnly()
+ final JsonRepresentation propertyRepr = resourceContext.objectPropertyValuesOnly()
? propertyValueRepresentation.getRepresentation("value")
: propertyValueRepresentation;
members.mapPut(assoc.getId(), propertyRepr);
}
}
- private void addCollections(final ObjectAdapter objectAdapter, final JsonRepresentation members, final List<ObjectAssociation> associations) {
+ private void addCollections(final ManagedObject objectAdapter, final JsonRepresentation members, final List<ObjectAssociation> associations) {
for (final ObjectAssociation assoc : associations) {
if (mode.checkVisibility()) {
- final Consent visibility = assoc.isVisible(objectAdapter, getInteractionInitiatedBy(), rendererContext.getWhere());
+ final Consent visibility = assoc.isVisible(objectAdapter, getInteractionInitiatedBy(), resourceContext.getWhere());
if (!visibility.isAllowed()) {
continue;
}
@@ -367,7 +366,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
"members[" + collection.getId() + "]");
final JsonRepresentation collectionRepresentation = JsonRepresentation.newMap();
final ObjectCollectionReprRenderer renderer =
- new ObjectCollectionReprRenderer(getRendererContext(), linkFollowerForColl, collection.getId(), collectionRepresentation);
+ new ObjectCollectionReprRenderer(getResourceContext(), linkFollowerForColl, collection.getId(), collectionRepresentation);
renderer.with(new ObjectAndCollection(objectAdapter, collection)).usingLinkTo(linkToBuilder);
if(mode.isEventSerialization()) {
@@ -379,19 +378,19 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
private void addActions(
- final ObjectAdapter objectAdapter,
+ final ManagedObject objectAdapter,
final Stream<ObjectAction> actions,
final JsonRepresentation members) {
actions
.filter(action->{
- final Consent visibility = action.isVisible(objectAdapter, getInteractionInitiatedBy(), rendererContext.getWhere());
+ final Consent visibility = action.isVisible(objectAdapter, getInteractionInitiatedBy(), resourceContext.getWhere());
return visibility.isAllowed();
})
.forEach(action->{
final LinkFollowSpecs linkFollowSpecs = getLinkFollowSpecs().follow("members["+action.getId()+"]");
final ObjectActionReprRenderer renderer =
- new ObjectActionReprRenderer(getRendererContext(), linkFollowSpecs, action.getId(),
+ new ObjectActionReprRenderer(getResourceContext(), linkFollowSpecs, action.getId(),
JsonRepresentation.newMap());
renderer.with(new ObjectAndAction(objectAdapter, action)).usingLinkTo(linkToBuilder);
@@ -401,15 +400,15 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
private void addPersistLinkIfTransientAndPersistable() {
- if (objectAdapter.isRepresentingPersistent()) {
+ if (ManagedObject.isBookmarkable(objectAdapter)) {
return;
}
final DomainObjectReprRenderer renderer =
- new DomainObjectReprRenderer(getRendererContext(), null, JsonRepresentation.newMap());
+ new DomainObjectReprRenderer(getResourceContext(), null, JsonRepresentation.newMap());
final JsonRepresentation domainObjectRepr = renderer.with(objectAdapter).asPersistLinkArguments().render();
final String domainType = objectAdapter.getSpecification().getSpecId().asString();
- final LinkBuilder persistLinkBuilder = LinkBuilder.newBuilder(getRendererContext(), Rel.PERSIST.getName(), RepresentationType.DOMAIN_OBJECT, "objects/%s", domainType).withHttpMethod(RestfulHttpMethod.POST).withArguments(domainObjectRepr);
+ final LinkBuilder persistLinkBuilder = LinkBuilder.newBuilder(getResourceContext(), Rel.PERSIST.getName(), RepresentationType.DOMAIN_OBJECT, "objects/%s", domainType).withHttpMethod(RestfulHttpMethod.POST).withArguments(domainObjectRepr);
getLinks().arrayAdd(persistLinkBuilder.build());
}
@@ -434,7 +433,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
if(mode.isEventSerialization()) {
return;
}
- if (!objectAdapter.isRepresentingPersistent()) {
+ if (!ManagedObject.isBookmarkable(objectAdapter)) {
return;
}
final boolean isService = objectAdapter.getSpecification().isManagedBean();
@@ -443,17 +442,17 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
final DomainObjectReprRenderer renderer =
- new DomainObjectReprRenderer(getRendererContext(), null, JsonRepresentation.newMap());
+ new DomainObjectReprRenderer(getResourceContext(), null, JsonRepresentation.newMap());
final JsonRepresentation domainObjectRepr = renderer.with(objectAdapter).asUpdatePropertiesLinkArguments().render();
- if(!getRendererContext().suppressUpdateLink()) {
- final LinkBuilder updateLinkBuilder = LinkBuilder.newBuilder(getRendererContext(), Rel.UPDATE.getName(), RepresentationType.DOMAIN_OBJECT, "objects/%s/%s", getDomainType(), getInstanceId()).withHttpMethod(RestfulHttpMethod.PUT).withArguments(domainObjectRepr);
+ if(!getResourceContext().suppressUpdateLink()) {
+ final LinkBuilder updateLinkBuilder = LinkBuilder.newBuilder(getResourceContext(), Rel.UPDATE.getName(), RepresentationType.DOMAIN_OBJECT, "objects/%s/%s", getDomainType(), getInstanceId()).withHttpMethod(RestfulHttpMethod.PUT).withArguments(domainObjectRepr);
getLinks().arrayAdd(updateLinkBuilder.build());
}
}
- public static Object valueOrRef(RendererContext context, JsonValueEncoder jsonValueEncoder, ManagedObject adapter) {
+ public static Object valueOrRef(IResourceContext context, JsonValueEncoder jsonValueEncoder, ManagedObject adapter) {
val spec = adapter.getSpecification();
if(spec.isValue()) {
@@ -465,7 +464,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
return DomainObjectReprRenderer.newLinkToBuilder(
context,
Rel.VALUE,
- ManagedObject.promote(adapter))
+ adapter)
.withTitle(title)
.build();
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainServiceLinkTo.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainServiceLinkTo.java
index d8a68db..e3cac2e 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainServiceLinkTo.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainServiceLinkTo.java
@@ -18,8 +18,8 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.services.ServiceUtil;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
@@ -28,14 +28,14 @@ public class DomainServiceLinkTo extends DomainObjectLinkTo {
private String serviceId;
@Override
- public ObjectAdapterLinkTo with(final ObjectAdapter objectAdapter) {
+ public ObjectAdapterLinkTo with(final ManagedObject objectAdapter) {
serviceId = ServiceUtil.idOfAdapter(objectAdapter);
return super.with(objectAdapter);
}
@Override
public LinkBuilder builder(final Rel rel) {
- final LinkBuilder linkBuilder = LinkBuilder.newBuilder(rendererContext,
+ final LinkBuilder linkBuilder = LinkBuilder.newBuilder(resourceContext,
relElseDefault(rel).andParam("serviceId", serviceId),
RepresentationType.DOMAIN_OBJECT,
linkRef(new StringBuilder()).toString());
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
index 6461788..aef3cc3 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
@@ -32,7 +32,6 @@ import org.springframework.stereotype.Service;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
@@ -68,7 +67,7 @@ public class JsonValueEncoder {
}
}
- public ObjectAdapter asAdapter(
+ public ManagedObject asAdapter(
final ObjectSpecification objectSpec,
final JsonRepresentation argValueRepr,
final String format) {
@@ -100,7 +99,7 @@ public class JsonValueEncoder {
throw new IllegalArgumentException("Unable to parse value");
}
- final ObjectAdapter asAdapter = jvc.asAdapter(argValueRepr, format);
+ final ManagedObject asAdapter = jvc.asAdapter(argValueRepr, format);
if(asAdapter != null) {
return asAdapter;
}
@@ -119,7 +118,7 @@ public class JsonValueEncoder {
}
public Object appendValueAndFormat(
- ObjectAdapter objectAdapter,
+ ManagedObject objectAdapter,
JsonRepresentation repr,
String format,
boolean suppressExtensions) {
@@ -175,7 +174,7 @@ public class JsonValueEncoder {
return adapter != null? adapter.getPojo(): NullNode.getInstance();
}
- ObjectAdapter adapterFor(Object pojo) {
+ ManagedObject adapterFor(Object pojo) {
return objectAdapterProvider.adapterFor(pojo);
}
@@ -206,7 +205,7 @@ public class JsonValueEncoder {
/**
* The value, otherwise <tt>null</tt>.
*/
- public abstract ObjectAdapter asAdapter(JsonRepresentation repr, String format);
+ public abstract ManagedObject asAdapter(JsonRepresentation repr, String format);
public Object appendValueAndFormat(
ManagedObject objectAdapter,
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder_Converters.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder_Converters.java
index dcb05bd..02bf7cf 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder_Converters.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder_Converters.java
@@ -32,7 +32,6 @@ import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.ISODateTimeFormat;
import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder.JsonValueConverter;
@@ -45,13 +44,13 @@ import lombok.val;
*/
public final class JsonValueEncoder_Converters {
- public List<JsonValueConverter> asList(final Function<Object, ObjectAdapter> pojoToAdapter) {
+ public List<JsonValueConverter> asList(final Function<Object, ManagedObject> pojoToAdapter) {
val converters = _Lists.<JsonValueConverter>newArrayList();
converters.add(new JsonValueConverter(null, "string", String.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
return pojoToAdapter.apply(repr.asString());
}
@@ -72,7 +71,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter(null, "boolean", boolean.class, Boolean.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isBoolean()) {
return pojoToAdapter.apply(repr.asBoolean());
}
@@ -93,7 +92,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("int", "byte", byte.class, Byte.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isNumber()) {
return pojoToAdapter.apply(repr.asNumber().byteValue());
}
@@ -123,7 +122,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("int", "short", short.class, Short.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isNumber()) {
return pojoToAdapter.apply(repr.asNumber().shortValue());
}
@@ -153,7 +152,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("int", "int", int.class, Integer.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isInt()) {
return pojoToAdapter.apply(repr.asInt());
}
@@ -183,7 +182,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("int", "long", long.class, Long.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isLong()) {
return pojoToAdapter.apply(repr.asLong());
}
@@ -214,7 +213,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("decimal", "float", float.class, Float.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isDecimal()) {
return pojoToAdapter.apply(repr.asDouble().floatValue());
}
@@ -248,7 +247,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("decimal", "double", double.class, Double.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isDecimal()) {
return pojoToAdapter.apply(repr.asDouble());
}
@@ -285,7 +284,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter(null, "char", char.class, Character.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
final String str = repr.asString();
if(str != null && str.length()>0) {
@@ -318,7 +317,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("big-integer(18)", "javamathbiginteger", BigInteger.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
return pojoToAdapter.apply(new BigInteger(repr.asString()));
}
@@ -352,7 +351,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("big-decimal", "javamathbigdecimal", BigDecimal.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
return pojoToAdapter.apply(new BigDecimal(repr.asString()));
}
@@ -397,7 +396,7 @@ public final class JsonValueEncoder_Converters {
);
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
final String dateStr = repr.asString();
for (DateTimeFormatter formatter : formatters) {
@@ -438,7 +437,7 @@ public final class JsonValueEncoder_Converters {
);
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
final String dateStr = repr.asString();
for (DateTimeFormatter formatter : formatters) {
@@ -479,7 +478,7 @@ public final class JsonValueEncoder_Converters {
);
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
final String dateStr = repr.asString();
for (DateTimeFormatter formatter : formatters) {
@@ -519,7 +518,7 @@ public final class JsonValueEncoder_Converters {
JsonRepresentation.yyyyMMddTHHmmssZ.withZoneUTC()
);
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
final String dateStr = repr.asString();
for (DateTimeFormatter formatter : formatters) {
@@ -559,7 +558,7 @@ public final class JsonValueEncoder_Converters {
JsonRepresentation.yyyyMMdd.withZoneUTC()
);
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
final String dateStr = repr.asString();
for (DateTimeFormatter formatter : formatters) {
@@ -599,7 +598,7 @@ public final class JsonValueEncoder_Converters {
JsonRepresentation._HHmmss.withZoneUTC()
);
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isString()) {
final String dateStr = repr.asString();
for (DateTimeFormatter formatter : formatters) {
@@ -633,7 +632,7 @@ public final class JsonValueEncoder_Converters {
converters.add(new JsonValueConverter("utc-millisec", "javasqltimestamp", java.sql.Timestamp.class){
@Override
- public ObjectAdapter asAdapter(JsonRepresentation repr, String format) {
+ public ManagedObject asAdapter(JsonRepresentation repr, String format) {
if (repr.isLong()) {
final Long millis = repr.asLong();
final java.sql.Timestamp parsedTimestamp = new java.sql.Timestamp(millis);
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
index 16c2bcf..ef24b3c 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ListReprRenderer.java
@@ -22,35 +22,35 @@ import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
-public class ListReprRenderer extends ReprRendererAbstract<ListReprRenderer, Stream<ObjectAdapter>> {
+public class ListReprRenderer extends ReprRendererAbstract<ListReprRenderer, Stream<ManagedObject>> {
private ObjectAdapterLinkTo linkTo;
- private List<ObjectAdapter> objectAdapters;
+ private List<ManagedObject> objectAdapters;
private ObjectSpecification elementType;
private ObjectSpecification returnType;
private Rel elementRel;
- public ListReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public ListReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.LIST, representation);
usingLinkToBuilder(new DomainObjectLinkTo());
}
public ListReprRenderer usingLinkToBuilder(final ObjectAdapterLinkTo objectAdapterLinkToBuilder) {
- this.linkTo = objectAdapterLinkToBuilder.usingUrlBase(rendererContext);
+ this.linkTo = objectAdapterLinkToBuilder.usingUrlBase(resourceContext);
return this;
}
@Override
- public ListReprRenderer with(final Stream<ObjectAdapter> objectAdapters) {
+ public ListReprRenderer with(final Stream<ManagedObject> objectAdapters) {
this.objectAdapters = objectAdapters!=null
? objectAdapters
.filter(adapter->!adapter.getSpecification().isHidden())
@@ -105,7 +105,7 @@ public class ListReprRenderer extends ReprRendererAbstract<ListReprRenderer, Str
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("value");
if (linkFollower.matches(linkToObject)) {
- final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()
+ final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap()
);
final JsonRepresentation domainObject = renderer.with(adapter).render();
linkToObject.mapPut("value", domainObject);
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
index 0441c54..1646518 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
@@ -28,7 +28,6 @@ import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -38,23 +37,23 @@ import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.ActionDescriptionReprRenderer;
import lombok.val;
public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<ObjectActionReprRenderer, ObjectAction> {
- public ObjectActionReprRenderer(RendererContext rendererContext) {
- this(rendererContext, null, null, JsonRepresentation.newMap());
+ public ObjectActionReprRenderer(IResourceContext resourceContext) {
+ this(resourceContext, null, null, JsonRepresentation.newMap());
}
public ObjectActionReprRenderer(
- final RendererContext rendererContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollowSpecs,
String actionId,
final JsonRepresentation representation) {
- super(rendererContext, linkFollowSpecs, actionId, RepresentationType.OBJECT_ACTION, representation,
+ super(resourceContext, linkFollowSpecs, actionId, RepresentationType.OBJECT_ACTION, representation,
Where.OBJECT_FORMS);
}
@@ -80,7 +79,7 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
*/
@Override
protected void followDetailsLink(final JsonRepresentation detailsLink) {
- final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(getRendererContext(), getLinkFollowSpecs(), null, JsonRepresentation.newMap());
+ final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(getResourceContext(), getLinkFollowSpecs(), null, JsonRepresentation.newMap());
renderer.with(new ObjectAndAction(objectAdapter, objectMember)).usingLinkTo(linkTo).asFollowed();
detailsLink.mapPut("value", renderer.render());
}
@@ -109,12 +108,12 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
return super.linkToForMutatorInvoke();
}
final DomainServiceLinkTo linkTo = new DomainServiceLinkTo();
- return linkTo.usingUrlBase(getRendererContext()).with(contributingServiceAdapter());
+ return linkTo.usingUrlBase(getResourceContext()).with(contributingServiceAdapter());
}
- private ObjectAdapter contributingServiceAdapter() {
+ private ManagedObject contributingServiceAdapter() {
final ObjectSpecification serviceType = objectMember.getOnType();
- final Stream<ObjectAdapter> serviceAdapters = streamServiceAdapters();
+ final Stream<ManagedObject> serviceAdapters = streamServiceAdapters();
return serviceAdapters
.filter(serviceAdapter->serviceAdapter.getSpecification() == serviceType)
.findFirst()
@@ -141,7 +140,7 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
// ///////////////////////////////////////////////////
private ObjectActionReprRenderer addParameterDetails() {
- boolean gsoc2013 = getRendererContext().getConfiguration().getViewer().getRestfulobjects().getGsoc2013().isLegacyParamDetails();
+ boolean gsoc2013 = getResourceContext().getConfiguration().getViewer().getRestfulobjects().getGsoc2013().isLegacyParamDetails();
if(gsoc2013) {
final List<Object> parameters = _Lists.newArrayList();
for (int i = 0; i < objectMember.getParameterCount(); i++) {
@@ -190,7 +189,7 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
for (val choiceAdapter : choiceAdapters) {
// REVIEW: previously was using the spec of the parameter, but think instead it should be the spec of the adapter itself
// final ObjectSpecification choiceSpec = param.getSpecification();
- list.add(DomainObjectReprRenderer.valueOrRef(rendererContext, super.getJsonValueEncoder(), choiceAdapter));
+ list.add(DomainObjectReprRenderer.valueOrRef(resourceContext, super.getJsonValueEncoder(), choiceAdapter));
}
return list;
}
@@ -202,7 +201,7 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
}
// REVIEW: previously was using the spec of the parameter, but think instead it should be the spec of the adapter itself
// final ObjectSpecification defaultSpec = param.getSpecification();
- return DomainObjectReprRenderer.valueOrRef(rendererContext, super.getJsonValueEncoder(), defaultAdapter);
+ return DomainObjectReprRenderer.valueOrRef(resourceContext, super.getJsonValueEncoder(), defaultAdapter);
}
// ///////////////////////////////////////////////////
@@ -211,10 +210,10 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
@Override
protected void addLinksToFormalDomainModel() {
- if(rendererContext.suppressDescribedByLinks()) {
+ if(resourceContext.suppressDescribedByLinks()) {
return;
}
- final JsonRepresentation link = ActionDescriptionReprRenderer.newLinkToBuilder(rendererContext, Rel.DESCRIBEDBY, objectAdapter.getSpecification(), objectMember).build();
+ final JsonRepresentation link = ActionDescriptionReprRenderer.newLinkToBuilder(resourceContext, Rel.DESCRIBEDBY, objectAdapter.getSpecification(), objectMember).build();
getLinks().arrayAdd(link);
}
@@ -222,8 +221,8 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
protected void addLinksIsisProprietary() {
// umm...
if (false /*objectMember.isContributed() */) {
- final ObjectAdapter serviceAdapter = contributingServiceAdapter();
- final JsonRepresentation contributedByLink = DomainObjectReprRenderer.newLinkToBuilder(rendererContext, Rel.CONTRIBUTED_BY, serviceAdapter).build();
+ final ManagedObject serviceAdapter = contributingServiceAdapter();
+ final JsonRepresentation contributedByLink = DomainObjectReprRenderer.newLinkToBuilder(resourceContext, Rel.CONTRIBUTED_BY, serviceAdapter).build();
getLinks().arrayAdd(contributedByLink);
}
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAdapterLinkTo.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAdapterLinkTo.java
index 0d0220d..8baccdc 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAdapterLinkTo.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAdapterLinkTo.java
@@ -18,18 +18,18 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.ObjectMember;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
public interface ObjectAdapterLinkTo {
- ObjectAdapterLinkTo usingUrlBase(RendererContext resourceContext);
+ ObjectAdapterLinkTo usingUrlBase(IResourceContext resourceContext);
- ObjectAdapterLinkTo with(ObjectAdapter objectAdapter);
+ ObjectAdapterLinkTo with(ManagedObject objectAdapter);
LinkBuilder builder();
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndAction.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndAction.java
index da56bb3..d0522d2 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndAction.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndAction.java
@@ -18,12 +18,12 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
public class ObjectAndAction extends ObjectAndMember<ObjectAction> {
- public ObjectAndAction(final ObjectAdapter objectAdapter, final ObjectAction action) {
+ public ObjectAndAction(final ManagedObject objectAdapter, final ObjectAction action) {
super(objectAdapter, action);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
index d0ac686..48d3b50 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndActionInvocation.java
@@ -20,9 +20,9 @@ package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
import java.util.List;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.metamodel.facets.object.encodeable.EncodableFacet;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
@@ -30,19 +30,19 @@ import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ActionResultRe
public class ObjectAndActionInvocation {
- private final ObjectAdapter objectAdapter;
+ private final ManagedObject objectAdapter;
private final ObjectAction action;
private final JsonRepresentation arguments;
- private final List<ObjectAdapter> argAdapters;
- private final ObjectAdapter returnedAdapter;
+ private final List<ManagedObject> argAdapters;
+ private final ManagedObject returnedAdapter;
private final ActionResultReprRenderer.SelfLink selfLink;
public ObjectAndActionInvocation(
- final ObjectAdapter objectAdapter,
+ final ManagedObject objectAdapter,
final ObjectAction action,
final JsonRepresentation arguments,
- final List<ObjectAdapter> argAdapters,
- final ObjectAdapter returnedAdapter,
+ final List<ManagedObject> argAdapters,
+ final ManagedObject returnedAdapter,
final ActionResultReprRenderer.SelfLink selfLink) {
this.objectAdapter = objectAdapter;
this.action = action;
@@ -52,7 +52,7 @@ public class ObjectAndActionInvocation {
this.selfLink = selfLink;
}
- public ObjectAdapter getObjectAdapter() {
+ public ManagedObject getObjectAdapter() {
return objectAdapter;
}
@@ -64,11 +64,11 @@ public class ObjectAndActionInvocation {
return arguments;
}
- public List<ObjectAdapter> getArgAdapters() {
+ public List<ManagedObject> getArgAdapters() {
return argAdapters;
}
- public ObjectAdapter getReturnedAdapter() {
+ public ManagedObject getReturnedAdapter() {
return returnedAdapter;
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection.java
index 589bf45..0412cb8 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection.java
@@ -18,12 +18,12 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
public class ObjectAndCollection extends ObjectAndMember<OneToManyAssociation> {
- public ObjectAndCollection(final ObjectAdapter objectAdapter, final OneToManyAssociation collection) {
+ public ObjectAndCollection(final ManagedObject objectAdapter, final OneToManyAssociation collection) {
super(objectAdapter, collection);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection2.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection2.java
index d9b95da..6f5eb87 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection2.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndCollection2.java
@@ -18,7 +18,7 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
public class ObjectAndCollection2 extends ObjectAndCollection {
@@ -26,7 +26,7 @@ public class ObjectAndCollection2 extends ObjectAndCollection {
private final MemberReprMode memberReprMode;
public ObjectAndCollection2(
- final ObjectAdapter objectAdapter,
+ final ManagedObject objectAdapter,
final OneToManyAssociation collection,
final MemberReprMode memberReprMode) {
super(objectAdapter, collection);
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndMember.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndMember.java
index 700c679..2f87a6a 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndMember.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndMember.java
@@ -18,20 +18,20 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.ObjectMember;
public abstract class ObjectAndMember<T extends ObjectMember> {
- private final ObjectAdapter objectAdapter;
+ private final ManagedObject objectAdapter;
private final T objectMember;
- public ObjectAndMember(final ObjectAdapter objectAdapter, final T objectMember) {
+ public ObjectAndMember(final ManagedObject objectAdapter, final T objectMember) {
this.objectAdapter = objectAdapter;
this.objectMember = objectMember;
}
- public ObjectAdapter getObjectAdapter() {
+ public ManagedObject getObjectAdapter() {
return objectAdapter;
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty.java
index a0adb4d..0641ec2 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty.java
@@ -18,12 +18,12 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
public class ObjectAndProperty extends ObjectAndMember<OneToOneAssociation> {
- public ObjectAndProperty(final ObjectAdapter objectAdapter, final OneToOneAssociation property) {
+ public ObjectAndProperty(final ManagedObject objectAdapter, final OneToOneAssociation property) {
super(objectAdapter, property);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty2.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty2.java
index 7202985..0b63c56 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty2.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectAndProperty2.java
@@ -18,14 +18,18 @@
*/
package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
public class ObjectAndProperty2 extends ObjectAndProperty {
private final MemberReprMode memberReprMode;
- public ObjectAndProperty2(final ObjectAdapter objectAdapter, final OneToOneAssociation property, final MemberReprMode memberReprMode) {
+ public ObjectAndProperty2(
+ ManagedObject objectAdapter,
+ OneToOneAssociation property,
+ MemberReprMode memberReprMode) {
+
super(objectAdapter, property);
this.memberReprMode = memberReprMode;
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
index 64e7237..c5acd39 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
@@ -25,7 +25,6 @@ import java.util.stream.Stream;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -35,7 +34,7 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.CollectionDescriptionReprRenderer;
import lombok.val;
@@ -43,11 +42,16 @@ import lombok.val;
public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRenderer<ObjectCollectionReprRenderer, OneToManyAssociation> {
public ObjectCollectionReprRenderer(
- final RendererContext rendererContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollowSpecs,
final String collectionId,
final JsonRepresentation representation) {
- super(rendererContext, linkFollowSpecs, collectionId, RepresentationType.OBJECT_COLLECTION, representation,
+
+ super(resourceContext,
+ linkFollowSpecs,
+ collectionId,
+ RepresentationType.OBJECT_COLLECTION,
+ representation,
Where.PARENTED_TABLES);
}
@@ -61,9 +65,9 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
renderMemberContent();
final LinkFollowSpecs followValue = getLinkFollowSpecs().follow("value");
- boolean eagerlyRender = rendererContext.honorUiHints() && renderEagerly() || !followValue.isTerminated();
+ boolean eagerlyRender = resourceContext.honorUiHints() && renderEagerly() || !followValue.isTerminated();
- if ((mode.isInline() && eagerlyRender) || mode.isStandalone() || mode.isMutated() || mode.isEventSerialization() || !objectAdapter.isRepresentingPersistent()) {
+ if ((mode.isInline() && eagerlyRender) || mode.isStandalone() || mode.isMutated() || mode.isEventSerialization() || !ManagedObject.isBookmarkable(objectAdapter)) {
addValue(followValue);
}
if(!mode.isEventSerialization()) {
@@ -93,7 +97,7 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
}
final LinkFollowSpecs followHref = linkFollower.follow("href");
- boolean eagerlyRender = rendererContext.honorUiHints() && renderEagerly(valueAdapter) || !followHref.isTerminated();
+ boolean eagerlyRender = resourceContext.honorUiHints() && renderEagerly(valueAdapter) || !followHref.isTerminated();
final Stream<ManagedObject> elementAdapters = CollectionFacet.Utils.streamAdapters(valueAdapter);
@@ -101,9 +105,9 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
elementAdapters.forEach(elementAdapter->{
final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer
- .newLinkToBuilder(rendererContext, Rel.VALUE, ManagedObject.promote(elementAdapter));
+ .newLinkToBuilder(resourceContext, Rel.VALUE, ManagedObject.promote(elementAdapter));
if(eagerlyRender) {
- final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getRendererContext(), followHref, JsonRepresentation.newMap()
+ final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getResourceContext(), followHref, JsonRepresentation.newMap()
);
renderer.with(ManagedObject.promote(elementAdapter));
if(mode.isEventSerialization()) {
@@ -120,7 +124,7 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
}
private boolean renderEagerly(ManagedObject valueAdapter) {
- return renderEagerly() && rendererContext.canEagerlyRender(ManagedObject.promote(valueAdapter));
+ return renderEagerly() && resourceContext.canEagerlyRender(ManagedObject.promote(valueAdapter));
}
// ///////////////////////////////////////////////////
@@ -133,7 +137,7 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
@Override
protected void followDetailsLink(final JsonRepresentation detailsLink) {
final JsonRepresentation representation = JsonRepresentation.newMap();
- final ObjectCollectionReprRenderer renderer = new ObjectCollectionReprRenderer(getRendererContext(), getLinkFollowSpecs(), null,
+ final ObjectCollectionReprRenderer renderer = new ObjectCollectionReprRenderer(getResourceContext(), getLinkFollowSpecs(), null,
representation);
renderer.with(new ObjectAndCollection(objectAdapter, objectMember)).asFollowed();
detailsLink.mapPut("value", renderer.render());
@@ -168,10 +172,10 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
@Override
protected void addLinksToFormalDomainModel() {
- if(rendererContext.suppressDescribedByLinks()) {
+ if(resourceContext.suppressDescribedByLinks()) {
return;
}
- final JsonRepresentation link = CollectionDescriptionReprRenderer.newLinkToBuilder(rendererContext, Rel.DESCRIBEDBY, objectAdapter.getSpecification(), objectMember).build();
+ final JsonRepresentation link = CollectionDescriptionReprRenderer.newLinkToBuilder(resourceContext, Rel.DESCRIBEDBY, objectAdapter.getSpecification(), objectMember).build();
getLinks().arrayAdd(link);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
index 76a9612..98b59c1 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
@@ -40,7 +40,7 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.PropertyDescriptionReprRenderer;
import lombok.val;
@@ -48,12 +48,12 @@ import lombok.val;
public class ObjectPropertyReprRenderer
extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAssociation> {
- public ObjectPropertyReprRenderer(RendererContext context) {
+ public ObjectPropertyReprRenderer(IResourceContext context) {
this(context, null, null, JsonRepresentation.newMap());
}
public ObjectPropertyReprRenderer(
- final RendererContext context,
+ final IResourceContext context,
final LinkFollowSpecs linkFollower,
final String propertyId,
final JsonRepresentation representation) {
@@ -115,11 +115,11 @@ extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAss
format = String.format("big-integer");
}
}
- return jsonValueEncoder.appendValueAndFormat(ManagedObject.promote(valueAdapter), representation, format, rendererContext.suppressMemberExtensions());
+ return jsonValueEncoder.appendValueAndFormat(ManagedObject.promote(valueAdapter), representation, format, resourceContext.suppressMemberExtensions());
}
boolean eagerlyRender =
- (renderEagerly() && rendererContext.canEagerlyRender(ManagedObject.promote(valueAdapter)))
+ (renderEagerly() && resourceContext.canEagerlyRender(ManagedObject.promote(valueAdapter)))
|| (linkFollower != null && !linkFollower.isTerminated());
if(valueAdapter == null) {
@@ -130,10 +130,10 @@ extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAss
final TitleFacet titleFacet = spec.getFacet(TitleFacet.class);
final String title = titleFacet.title(valueAdapter);
- final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer.newLinkToBuilder(rendererContext, Rel.VALUE, ManagedObject.promote(valueAdapter)).withTitle(title);
+ final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer.newLinkToBuilder(resourceContext, Rel.VALUE, ManagedObject.promote(valueAdapter)).withTitle(title);
if(eagerlyRender) {
final DomainObjectReprRenderer renderer =
- new DomainObjectReprRenderer(rendererContext, linkFollower, JsonRepresentation.newMap());
+ new DomainObjectReprRenderer(resourceContext, linkFollower, JsonRepresentation.newMap());
renderer.with(ManagedObject.promote(valueAdapter));
if(mode.isEventSerialization()) {
renderer.asEventSerialization();
@@ -178,7 +178,7 @@ extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAss
@Override
protected void followDetailsLink(final JsonRepresentation detailsLink) {
final JsonRepresentation representation = JsonRepresentation.newMap();
- final ObjectPropertyReprRenderer renderer = new ObjectPropertyReprRenderer(getRendererContext(), getLinkFollowSpecs(), null, representation);
+ final ObjectPropertyReprRenderer renderer = new ObjectPropertyReprRenderer(getResourceContext(), getLinkFollowSpecs(), null, representation);
renderer.with(new ObjectAndProperty(objectAdapter, objectMember)).asFollowed();
detailsLink.mapPut("value", renderer.render());
}
@@ -226,7 +226,7 @@ extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAss
// final ObjectSpecification choiceSpec = objectMember.getSpecification();
// REVIEW: check that it works for ToDoItem$Category, though...
- list.add(DomainObjectReprRenderer.valueOrRef(rendererContext, super.getJsonValueEncoder(), choiceAdapter));
+ list.add(DomainObjectReprRenderer.valueOrRef(resourceContext, super.getJsonValueEncoder(), choiceAdapter));
}
return list;
}
@@ -237,10 +237,10 @@ extends AbstractObjectMemberReprRenderer<ObjectPropertyReprRenderer, OneToOneAss
@Override
protected void addLinksToFormalDomainModel() {
- if(rendererContext.suppressDescribedByLinks()) {
+ if(resourceContext.suppressDescribedByLinks()) {
return;
}
- final JsonRepresentation link = PropertyDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.DESCRIBEDBY, objectAdapter.getSpecification(), objectMember).build();
+ final JsonRepresentation link = PropertyDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.DESCRIBEDBY, objectAdapter.getSpecification(), objectMember).build();
getLinks().arrayAdd(link);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/OidUtils.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/OidUtils.java
deleted file mode 100644
index d3a8898..0000000
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/OidUtils.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.viewer.restfulobjects.rendering.domainobjects;
-
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.metamodel.spec.ManagedObject;
-
-final class OidUtils {
-
- private OidUtils() {
- }
-
- public static String getDomainType(final ManagedObject objectAdapter) {
- if (objectAdapter == null) {
- return null;
- }
- return objectAdapter.getSpecification().getSpecId().asString();
- }
-
- public static String getInstanceId(final ObjectAdapter objectAdapter) {
- String oidStr = getOidStr(objectAdapter);
- // REVIEW: it's a bit hokey to join these together just to split them out again.
- return oidStr != null ? Oid.unmarshaller().splitInstanceId(oidStr): null;
- }
-
-
- public static String getOidStr(final ObjectAdapter objectAdapter) {
- final Oid oid = objectAdapter.getOid();
- if (!(oid instanceof RootOid)) {
- throw new IllegalArgumentException("objectAdapter must be a root adapter");
- }
- return oid.enStringNoVersion();
- }
-
-
-}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java
index 377a769..389e275 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java
@@ -20,22 +20,22 @@ package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
import javax.ws.rs.core.MediaType;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facets.object.encodeable.EncodableFacet;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererException;
-public class ScalarValueReprRenderer extends ReprRendererAbstract<ScalarValueReprRenderer, ObjectAdapter> {
+public class ScalarValueReprRenderer extends ReprRendererAbstract<ScalarValueReprRenderer, ManagedObject> {
private ObjectSpecification returnType;
public ScalarValueReprRenderer(
- final RendererContext resourceContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollower,
final JsonRepresentation representation) {
super(resourceContext, linkFollower, null, representation); // null for representationType (there is none)
@@ -53,7 +53,7 @@ public class ScalarValueReprRenderer extends ReprRendererAbstract<ScalarValueRep
}
@Override
- public ScalarValueReprRenderer with(final ObjectAdapter objectAdapter) {
+ public ScalarValueReprRenderer with(final ManagedObject objectAdapter) {
final EncodableFacet facet = objectAdapter.getSpecification().getFacet(EncodableFacet.class);
if (facet == null) {
throw ReprRendererException.create("Not an (encodable) value", objectAdapter.titleString());
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
index 444c888..140f9dd 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
@@ -24,7 +24,7 @@ import org.apache.isis.metamodel.spec.feature.ObjectFeature;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public abstract class AbstractTypeFeatureReprRenderer<R extends ReprRendererAbstract<R, ParentSpecAndFeature<T>>, T extends ObjectFeature> extends ReprRendererAbstract<R, ParentSpecAndFeature<T>> {
@@ -32,7 +32,7 @@ public abstract class AbstractTypeFeatureReprRenderer<R extends ReprRendererAbst
protected ObjectSpecification objectSpecification;
protected T objectFeature;
- public AbstractTypeFeatureReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final RepresentationType representationType, final JsonRepresentation representation) {
+ public AbstractTypeFeatureReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final RepresentationType representationType, final JsonRepresentation representation) {
super(resourceContext, linkFollower, representationType, representation);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeMemberReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeMemberReprRenderer.java
index dd8b9fb..022465d 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeMemberReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeMemberReprRenderer.java
@@ -24,7 +24,7 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberType;
@@ -32,7 +32,7 @@ public abstract class AbstractTypeMemberReprRenderer<R extends ReprRendererAbstr
protected MemberType memberType;
- public AbstractTypeMemberReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final RepresentationType representationType, final JsonRepresentation representation) {
+ public AbstractTypeMemberReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final RepresentationType representationType, final JsonRepresentation representation) {
super(resourceContext, linkFollower, representationType, representation);
}
@@ -59,7 +59,7 @@ public abstract class AbstractTypeMemberReprRenderer<R extends ReprRendererAbstr
@Override
protected void addLinkUpToParent() {
- final LinkBuilder parentLinkBuilder = DomainTypeReprRenderer.newLinkToBuilder(rendererContext, Rel.UP, objectSpecification);
+ final LinkBuilder parentLinkBuilder = DomainTypeReprRenderer.newLinkToBuilder(resourceContext, Rel.UP, objectSpecification);
getLinks().arrayAdd(parentLinkBuilder.build());
}
@@ -71,7 +71,7 @@ public abstract class AbstractTypeMemberReprRenderer<R extends ReprRendererAbstr
final ObjectMember objectMember = getObjectFeature();
final LinkBuilder linkBuilder = LinkBuilder.newBuilder(
- getRendererContext(), Rel.SELF.getName(), getMediaType(),
+ getResourceContext(), Rel.SELF.getName(), getMediaType(),
"domain-types/%s/%s%s", getParentSpecification().getSpecId().asString(), getMemberType().getUrlPart(), objectMember.getId());
getLinks().arrayAdd(linkBuilder.build());
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java
index 2a0c38f..b174f85 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionDescriptionReprRenderer.java
@@ -29,18 +29,18 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
public class ActionDescriptionReprRenderer extends AbstractTypeMemberReprRenderer<ActionDescriptionReprRenderer, ObjectAction> {
- public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectAction objectAction) {
+ public static LinkBuilder newLinkToBuilder(final IResourceContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectAction objectAction) {
final String domainType = objectSpecification.getSpecId().asString();
final String actionId = objectAction.getId();
final String url = "domain-types/" + domainType + "/actions/" + actionId;
return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.ACTION_DESCRIPTION, url);
}
- public ActionDescriptionReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public ActionDescriptionReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.ACTION_DESCRIPTION, representation);
}
@@ -55,7 +55,7 @@ public class ActionDescriptionReprRenderer extends AbstractTypeMemberReprRendere
final JsonRepresentation parameterList = JsonRepresentation.newArray();
final List<ObjectActionParameter> parameters = getObjectFeature().getParameters();
for (final ObjectActionParameter parameter : parameters) {
- final LinkBuilder linkBuilder = ActionParameterDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.ACTION_PARAM, objectSpecification, parameter);
+ final LinkBuilder linkBuilder = ActionParameterDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ACTION_PARAM, objectSpecification, parameter);
parameterList.arrayAdd(linkBuilder.build());
}
@@ -68,7 +68,7 @@ public class ActionDescriptionReprRenderer extends AbstractTypeMemberReprRendere
return;
}
final ObjectSpecification typeOfSpec = facet.valueSpec();
- final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.ELEMENT_TYPE, typeOfSpec);
+ final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ELEMENT_TYPE, typeOfSpec);
getLinks().arrayAdd(linkBuilder.build());
}
@@ -77,7 +77,7 @@ public class ActionDescriptionReprRenderer extends AbstractTypeMemberReprRendere
if (returnType == null) {
return;
}
- final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.RETURN_TYPE, returnType);
+ final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), Rel.RETURN_TYPE, returnType);
getLinks().arrayAdd(linkBuilder.build());
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
index ff06466..0e5ac6d 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/ActionParameterDescriptionReprRenderer.java
@@ -27,11 +27,11 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
public class ActionParameterDescriptionReprRenderer extends AbstractTypeFeatureReprRenderer<ActionParameterDescriptionReprRenderer, ObjectActionParameter> {
- public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectActionParameter objectActionParameter) {
+ public static LinkBuilder newLinkToBuilder(final IResourceContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectActionParameter objectActionParameter) {
final String domainType = objectSpecification.getSpecId().asString();
final ObjectAction objectAction = objectActionParameter.getAction();
final String actionId = objectAction.getId();
@@ -40,7 +40,7 @@ public class ActionParameterDescriptionReprRenderer extends AbstractTypeFeatureR
return LinkBuilder.newBuilder(resourceContext, rel.andParam("id", deriveId(objectActionParameter)), RepresentationType.ACTION_PARAMETER_DESCRIPTION, url);
}
- public ActionParameterDescriptionReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public ActionParameterDescriptionReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.ACTION_PARAMETER_DESCRIPTION, representation);
}
@@ -67,14 +67,14 @@ public class ActionParameterDescriptionReprRenderer extends AbstractTypeFeatureR
if (!includesSelf) {
return;
}
- getLinks().arrayAdd(newLinkToBuilder(getRendererContext(), Rel.SELF, getParentSpecification(), getObjectFeature()).build());
+ getLinks().arrayAdd(newLinkToBuilder(getResourceContext(), Rel.SELF, getParentSpecification(), getObjectFeature()).build());
}
@Override
protected void addLinkUpToParent() {
final ObjectAction parentAction = this.objectFeature.getAction();
- final LinkBuilder parentLinkBuilder = ActionDescriptionReprRenderer.newLinkToBuilder(rendererContext, Rel.UP, objectSpecification, parentAction);
+ final LinkBuilder parentLinkBuilder = ActionDescriptionReprRenderer.newLinkToBuilder(resourceContext, Rel.UP, objectSpecification, parentAction);
getLinks().arrayAdd(parentLinkBuilder.build());
}
@@ -91,7 +91,7 @@ public class ActionParameterDescriptionReprRenderer extends AbstractTypeFeatureR
@Override
protected void addLinksSpecificToFeature() {
- final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(rendererContext, Rel.RETURN_TYPE, objectFeature.getSpecification());
+ final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(resourceContext, Rel.RETURN_TYPE, objectFeature.getSpecification());
getLinks().arrayAdd(linkBuilder.build());
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/CollectionDescriptionReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/CollectionDescriptionReprRenderer.java
index dc3fcdd..149b749 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/CollectionDescriptionReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/CollectionDescriptionReprRenderer.java
@@ -25,18 +25,18 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
public class CollectionDescriptionReprRenderer extends AbstractTypeMemberReprRenderer<CollectionDescriptionReprRenderer, OneToManyAssociation> {
- public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final OneToManyAssociation collection) {
+ public static LinkBuilder newLinkToBuilder(final IResourceContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final OneToManyAssociation collection) {
final String domainType = objectSpecification.getSpecId().asString();
final String collectionId = collection.getId();
final String url = "domain-types/" + domainType + "/collections/" + collectionId;
return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.COLLECTION_DESCRIPTION, url);
}
- public CollectionDescriptionReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public CollectionDescriptionReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.COLLECTION_DESCRIPTION, representation);
}
@@ -50,7 +50,7 @@ public class CollectionDescriptionReprRenderer extends AbstractTypeMemberReprRen
if (elementType == null) {
return;
}
- final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.ELEMENT_TYPE, elementType);
+ final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ELEMENT_TYPE, elementType);
getLinks().arrayAdd(linkBuilder.build());
}
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 8ba0675..ae045f3 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
@@ -34,19 +34,19 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprRenderer, ObjectSpecification> {
- public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpec) {
+ public static LinkBuilder newLinkToBuilder(final IResourceContext resourceContext, final Rel rel, final ObjectSpecification objectSpec) {
final String typeFullName = objectSpec.getSpecId().asString();
final String url = String.format("domain-types/%s", typeFullName);
return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.DOMAIN_TYPE, url);
}
public static LinkBuilder newLinkToLayoutBuilder(
- final RendererContext resourceContext,
+ final IResourceContext resourceContext,
final ObjectSpecification objectSpec) {
final Rel rel = Rel.LAYOUT;
final String typeFullName = objectSpec.getSpecId().asString();
@@ -56,7 +56,7 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
private ObjectSpecification objectSpecification;
- public DomainTypeReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public DomainTypeReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.DOMAIN_TYPE, representation);
}
@@ -75,10 +75,10 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
// self
if (includesSelf) {
- final JsonRepresentation selfLink = newLinkToBuilder(getRendererContext(), Rel.SELF, objectSpecification).build();
+ final JsonRepresentation selfLink = newLinkToBuilder(getResourceContext(), Rel.SELF, objectSpecification).build();
getLinks().arrayAdd(selfLink);
- final JsonRepresentation layoutLink = newLinkToLayoutBuilder(getRendererContext(), objectSpecification).build();
+ final JsonRepresentation layoutLink = newLinkToLayoutBuilder(getResourceContext(), objectSpecification).build();
getLinks().arrayAdd(layoutLink);
}
@@ -102,11 +102,11 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
associations.forEach(association->{
if (association.isOneToOneAssociation()) {
final OneToOneAssociation property = (OneToOneAssociation) association;
- final LinkBuilder linkBuilder = PropertyDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.PROPERTY, objectSpecification, property);
+ final LinkBuilder linkBuilder = PropertyDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.PROPERTY, objectSpecification, property);
membersList.arrayAdd(linkBuilder.build());
} else if (association.isOneToManyAssociation()) {
final OneToManyAssociation collection = (OneToManyAssociation) association;
- final LinkBuilder linkBuilder = CollectionDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.PROPERTY, objectSpecification, collection);
+ final LinkBuilder linkBuilder = CollectionDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.PROPERTY, objectSpecification, collection);
membersList.arrayAdd(linkBuilder.build());
}
});
@@ -115,7 +115,7 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
actions.forEach(action->{
final LinkBuilder linkBuilder = ActionDescriptionReprRenderer
- .newLinkToBuilder(getRendererContext(), Rel.ACTION, objectSpecification, action);
+ .newLinkToBuilder(getResourceContext(), Rel.ACTION, objectSpecification, action);
membersList.arrayAdd(linkBuilder.build());
});
@@ -138,8 +138,8 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
private JsonRepresentation linkToIsSubtypeOf() {
final String url = "domain-types/" + objectSpecification.getSpecId().asString() + "/type-actions/isSubtypeOf/invoke";
- final LinkBuilder linkBuilder = LinkBuilder.newBuilder(getRendererContext(), Rel.INVOKE.andParam("typeaction", "isSubtypeOf"), RepresentationType.TYPE_ACTION_RESULT, url);
- final JsonRepresentation arguments = argumentsTo(getRendererContext(), "supertype", null);
+ final LinkBuilder linkBuilder = LinkBuilder.newBuilder(getResourceContext(), Rel.INVOKE.andParam("typeaction", "isSubtypeOf"), RepresentationType.TYPE_ACTION_RESULT, url);
+ final JsonRepresentation arguments = argumentsTo(getResourceContext(), "supertype", null);
final JsonRepresentation link = linkBuilder.withArguments(arguments).build();
return link;
}
@@ -147,13 +147,13 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
private JsonRepresentation linkToIsSupertypeOf() {
final String url = "domain-types/" + objectSpecification.getSpecId().asString() + "/type-actions/isSupertypeOf/invoke";
- final LinkBuilder linkBuilder = LinkBuilder.newBuilder(getRendererContext(), Rel.INVOKE.andParam("typeaction", "isSupertypeOf"), RepresentationType.TYPE_ACTION_RESULT, url);
- final JsonRepresentation arguments = argumentsTo(getRendererContext(), "subtype", null);
+ final LinkBuilder linkBuilder = LinkBuilder.newBuilder(getResourceContext(), Rel.INVOKE.andParam("typeaction", "isSupertypeOf"), RepresentationType.TYPE_ACTION_RESULT, url);
+ final JsonRepresentation arguments = argumentsTo(getResourceContext(), "subtype", null);
final JsonRepresentation link = linkBuilder.withArguments(arguments).build();
return link;
}
- public static JsonRepresentation argumentsTo(final RendererContext resourceContext, final String paramName, final ObjectSpecification objectSpec) {
+ public static JsonRepresentation argumentsTo(final IResourceContext resourceContext, final String paramName, final ObjectSpecification objectSpec) {
final JsonRepresentation arguments = JsonRepresentation.newMap();
final JsonRepresentation link = JsonRepresentation.newMap();
arguments.mapPut(paramName, link);
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
index c231de3..6a05bd9 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/PropertyDescriptionReprRenderer.java
@@ -26,18 +26,18 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
public class PropertyDescriptionReprRenderer extends AbstractTypeMemberReprRenderer<PropertyDescriptionReprRenderer, OneToOneAssociation> {
- public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final OneToOneAssociation property) {
+ public static LinkBuilder newLinkToBuilder(final IResourceContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final OneToOneAssociation property) {
final String domainType = objectSpecification.getSpecId().asString();
final String propertyId = property.getId();
final String url = "domain-types/" + domainType + "/properties/" + propertyId;
return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.PROPERTY_DESCRIPTION, url);
}
- public PropertyDescriptionReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public PropertyDescriptionReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.PROPERTY_DESCRIPTION, representation);
}
@@ -60,7 +60,7 @@ public class PropertyDescriptionReprRenderer extends AbstractTypeMemberReprRende
if (returnType == null) {
return;
}
- final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.RETURN_TYPE, returnType);
+ final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), Rel.RETURN_TYPE, returnType);
getLinks().arrayAdd(linkBuilder.build());
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeActionResultReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeActionResultReprRenderer.java
index 9763909..5065034 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeActionResultReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeActionResultReprRenderer.java
@@ -24,7 +24,7 @@ import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public class TypeActionResultReprRenderer extends ReprRendererAbstract<TypeActionResultReprRenderer, ObjectSpecification> {
@@ -33,7 +33,7 @@ public class TypeActionResultReprRenderer extends ReprRendererAbstract<TypeActio
private LinkRepresentation selfLink;
private Object value;
- public TypeActionResultReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public TypeActionResultReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.TYPE_ACTION_RESULT, representation);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeListReprRenderer.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeListReprRenderer.java
index 916601e..f3b1232 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeListReprRenderer.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/TypeListReprRenderer.java
@@ -26,14 +26,14 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public class TypeListReprRenderer extends ReprRendererAbstract<TypeListReprRenderer, Collection<ObjectSpecification>> {
private Collection<ObjectSpecification> specifications;
- public TypeListReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public TypeListReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.TYPE_LIST, representation);
}
@@ -53,7 +53,7 @@ public class TypeListReprRenderer extends ReprRendererAbstract<TypeListReprRende
final JsonRepresentation specList = JsonRepresentation.newArray();
for (final ObjectSpecification objectSpec : specifications) {
- final LinkBuilder linkBuilder = LinkBuilder.newBuilder(getRendererContext(), Rel.DOMAIN_TYPE.getName(), RepresentationType.DOMAIN_TYPE, "domain-types/%s", objectSpec.getSpecId().asString());
+ final LinkBuilder linkBuilder = LinkBuilder.newBuilder(getResourceContext(), Rel.DOMAIN_TYPE.getName(), RepresentationType.DOMAIN_TYPE, "domain-types/%s", objectSpec.getSpecId().asString());
specList.arrayAdd(linkBuilder.build());
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
index cd8bc76..07ec5e5 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
@@ -20,12 +20,10 @@ package org.apache.isis.viewer.restfulobjects.rendering.service;
import javax.ws.rs.core.Response;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ActionResultReprRenderer;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberReprMode;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAdapterLinkTo;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndAction;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndActionInvocation;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndCollection;
@@ -42,7 +40,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndPr
public interface RepresentationService {
/**
- * As returned by {@link RendererContext6#getIntent()}, applies only to the representation of
+ * As returned by {@link resourceContext6#getIntent()}, applies only to the representation of
* domain objects.
*/
enum Intent {
@@ -60,36 +58,28 @@ public interface RepresentationService {
NOT_APPLICABLE
}
- @Programmatic
Response objectRepresentation(
- Context resourceContext,
- ObjectAdapter objectAdapter);
+ IResourceContext resourceContext,
+ ManagedObject objectAdapter);
- @Programmatic
Response propertyDetails(
- Context rendererContext,
+ IResourceContext resourceContext,
ObjectAndProperty objectAndProperty,
MemberReprMode memberReprMode);
- @Programmatic
Response collectionDetails(
- Context rendererContext,
+ IResourceContext resourceContext,
ObjectAndCollection objectAndCollection,
MemberReprMode memberReprMode);
- @Programmatic
Response actionPrompt(
- Context rendererContext,
+ IResourceContext resourceContext,
ObjectAndAction objectAndAction);
- @Programmatic
Response actionResult(
- Context rendererContext,
+ IResourceContext resourceContext,
ObjectAndActionInvocation objectAndActionInvocation,
ActionResultReprRenderer.SelfLink selfLink);
-
- interface Context extends RendererContext {
- ObjectAdapterLinkTo getAdapterLinkTo();
- }
+
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
index 7072aa7..da67861 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
@@ -28,8 +28,8 @@ import javax.ws.rs.core.Response.ResponseBuilder;
import org.springframework.stereotype.Service;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ActionResultReprRenderer.SelfLink;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberReprMode;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndAction;
@@ -42,17 +42,17 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.ContentNeg
@Service
public class RepresentationServiceContentNegotiator implements RepresentationService {
-
+ @Inject List<ContentNegotiationService> contentNegotiationServices;
+
@PostConstruct
public void init() {
}
@Override
- @Programmatic
public Response objectRepresentation(
- final Context renderContext,
- final ObjectAdapter objectAdapter) {
+ final IResourceContext renderContext,
+ final ManagedObject objectAdapter) {
final ResponseBuilder responseBuilder = buildResponse(new Function<ContentNegotiationService, ResponseBuilder>() {
@Override
@@ -66,9 +66,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
}
@Override
- @Programmatic
public Response propertyDetails(
- final Context renderContext,
+ final IResourceContext renderContext,
final ObjectAndProperty objectAndProperty,
final MemberReprMode memberReprMode) {
@@ -85,9 +84,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
@Override
- @Programmatic
public Response collectionDetails(
- final Context renderContext,
+ final IResourceContext renderContext,
final ObjectAndCollection objectAndCollection,
final MemberReprMode memberReprMode) {
@@ -106,9 +104,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
@Override
- @Programmatic
public Response actionPrompt(
- final Context renderContext,
+ final IResourceContext renderContext,
final ObjectAndAction objectAndAction) {
final ResponseBuilder responseBuilder = buildResponse(new Function<ContentNegotiationService, ResponseBuilder>() {
@@ -124,9 +121,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
@Override
- @Programmatic
public Response actionResult(
- final Context renderContext,
+ final IResourceContext renderContext,
final ObjectAndActionInvocation objectAndActionInvocation,
final SelfLink selfLink) {
@@ -176,5 +172,5 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
return responseBuilder.build();
}
- @Inject List<ContentNegotiationService> contentNegotiationServices;
+
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationService.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationService.java
index 1318195..d4cf358 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationService.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationService.java
@@ -22,13 +22,12 @@ import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ws.rs.core.Response;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndAction;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndActionInvocation;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndCollection;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndProperty;
-import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
public interface ContentNegotiationService {
@@ -38,28 +37,23 @@ public interface ContentNegotiationService {
@PreDestroy
public void shutdown();
- @Programmatic
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
- final ObjectAdapter objectAdapter);
+ IResourceContext renderContext,
+ ManagedObject objectAdapter);
- @Programmatic
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
- final ObjectAndProperty objectAndProperty);
+ IResourceContext renderContext,
+ ObjectAndProperty objectAndProperty);
- @Programmatic
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
- final ObjectAndCollection objectAndCollection);
+ IResourceContext renderContext,
+ ObjectAndCollection objectAndCollection);
- @Programmatic
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
- final ObjectAndAction objectAndAction);
+ IResourceContext renderContext,
+ ObjectAndAction objectAndAction);
- @Programmatic
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
- final ObjectAndActionInvocation objectAndActionInvocation);
+ IResourceContext renderContext,
+ ObjectAndActionInvocation objectAndActionInvocation);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.java
index b02e401..749907c 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.java
@@ -27,67 +27,63 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.factory.InstanceUtil;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndAction;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndActionInvocation;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndCollection;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndProperty;
-import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
public abstract class ContentNegotiationServiceAbstract implements ContentNegotiationService {
@Override
- @Programmatic
+
@PostConstruct
public void init() {}
@Override
- @Programmatic
@PreDestroy
public void shutdown() {}
@Override
- @Programmatic
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext2,
- final ObjectAdapter objectAdapter) {
+ final IResourceContext renderContext2,
+ final ManagedObject objectAdapter) {
return null;
}
@Override
- @Programmatic
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext2,
+ final IResourceContext renderContext2,
final ObjectAndProperty objectAndProperty) {
return null;
}
@Override
- @Programmatic
+
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext2,
+ final IResourceContext renderContext2,
final ObjectAndCollection objectAndCollection) {
return null;
}
@Override
- @Programmatic
+
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext2,
+ final IResourceContext renderContext2,
final ObjectAndAction objectAndAction) {
return null;
}
@Override
- @Programmatic
+
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext2,
+ final IResourceContext renderContext2,
final ObjectAndActionInvocation objectAndActionInvocation) {
return null;
}
@@ -97,12 +93,12 @@ public abstract class ContentNegotiationServiceAbstract implements ContentNegoti
/**
* Potential hook to allow a domain object to be mapped.
*/
- protected Object objectOf(final ObjectAdapter objectAdapter) {
+ protected Object objectOf(final ManagedObject objectAdapter) {
return objectAdapter.getPojo();
}
protected Object returnedObjectOf(final ObjectAndActionInvocation objectAndActionInvocation) {
- final ObjectAdapter returnedAdapter = objectAndActionInvocation.getReturnedAdapter();
+ final ManagedObject returnedAdapter = objectAndActionInvocation.getReturnedAdapter();
return objectOf(returnedAdapter);
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
index 0d19671..92426c8 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
@@ -35,10 +35,10 @@ import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.domain.DomainObjectList;
import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.version.Version;
import org.apache.isis.metamodel.facets.actcoll.typeof.TypeOfFacet;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
@@ -46,6 +46,7 @@ import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
import org.apache.isis.viewer.restfulobjects.rendering.Caching;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.Responses;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ActionResultReprRenderer;
@@ -61,6 +62,8 @@ import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectColle
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectPropertyReprRenderer;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
+import lombok.val;
+
@DomainService(
nature = NatureOfService.DOMAIN
)
@@ -82,14 +85,14 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
@Override
public ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
- final ObjectAdapter objectAdapter) {
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter) {
- final List<MediaType> list = rendererContext.getAcceptableMediaTypes();
+ final List<MediaType> list = resourceContext.getAcceptableMediaTypes();
ensureCompatibleAcceptHeader(RepresentationType.DOMAIN_OBJECT, list);
final ResponseBuilder responseBuilder = buildResponseTo(
- rendererContext, objectAdapter, JsonRepresentation.newMap(), null);
+ resourceContext, objectAdapter, JsonRepresentation.newMap(), null);
return responseBuilder(responseBuilder);
}
@@ -98,25 +101,25 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
* Not API
*/
ResponseBuilder buildResponseTo(
- final RepresentationService.Context rendererContext,
- final ObjectAdapter objectAdapter,
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter,
final JsonRepresentation representationIfAnyRequired,
final JsonRepresentation rootRepresentation) {
final DomainObjectReprRenderer renderer =
- new DomainObjectReprRenderer(rendererContext, null, representationIfAnyRequired);
+ new DomainObjectReprRenderer(resourceContext, null, representationIfAnyRequired);
renderer.with(objectAdapter).includesSelf();
final ResponseBuilder responseBuilder = Responses.ofOk(renderer, Caching.NONE, rootRepresentation);
if(true) {
- final RepresentationService.Intent intent = rendererContext.getIntent();
+ final RepresentationService.Intent intent = resourceContext.getIntent();
if(intent == RepresentationService.Intent.JUST_CREATED) {
responseBuilder.status(Response.Status.CREATED);
}
}
- final Version version = objectAdapter.getVersion();
+ final Version version = ManagedObject._version(objectAdapter);
if (version != null && version.getTime() != null) {
responseBuilder.tag(etagFormat().format(version.getTime()));
}
@@ -129,15 +132,15 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
@Override
public ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndProperty objectAndProperty) {
- final List<MediaType> list = rendererContext.getAcceptableMediaTypes();
+ final List<MediaType> list = resourceContext.getAcceptableMediaTypes();
ensureCompatibleAcceptHeader(RepresentationType.OBJECT_PROPERTY, list);
- final ObjectPropertyReprRenderer renderer = new ObjectPropertyReprRenderer(rendererContext);
+ final ObjectPropertyReprRenderer renderer = new ObjectPropertyReprRenderer(resourceContext);
renderer.with(objectAndProperty)
- .usingLinkTo(rendererContext.getAdapterLinkTo());
+ .usingLinkTo(resourceContext.getObjectAdapterLinkTo());
if(objectAndProperty instanceof ObjectAndProperty2) {
final ObjectAndProperty2 objectAndProperty2 = (ObjectAndProperty2) objectAndProperty;
@@ -152,14 +155,14 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
@Override
public ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndCollection objectAndCollection) {
- final List<MediaType> list = rendererContext.getAcceptableMediaTypes();
+ final List<MediaType> list = resourceContext.getAcceptableMediaTypes();
ensureCompatibleAcceptHeader(RepresentationType.OBJECT_COLLECTION, list);
final ResponseBuilder responseBuilder =
- buildResponseTo(rendererContext, objectAndCollection, JsonRepresentation.newMap(), null);
+ buildResponseTo(resourceContext, objectAndCollection, JsonRepresentation.newMap(), null);
return responseBuilder(responseBuilder);
}
@@ -168,14 +171,14 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
* Not API
*/
ResponseBuilder buildResponseTo(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndCollection objectAndCollection,
final JsonRepresentation representation,
final JsonRepresentation rootRepresentation) {
final ObjectCollectionReprRenderer renderer =
- new ObjectCollectionReprRenderer(rendererContext, null, null, representation);
+ new ObjectCollectionReprRenderer(resourceContext, null, null, representation);
renderer.with(objectAndCollection)
- .usingLinkTo(rendererContext.getAdapterLinkTo());
+ .usingLinkTo(resourceContext.getObjectAdapterLinkTo());
if(objectAndCollection instanceof ObjectAndCollection2) {
final ObjectAndCollection2 objectAndCollection2 = (ObjectAndCollection2) objectAndCollection;
@@ -188,15 +191,15 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
@Override
public ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndAction objectAndAction) {
- final List<MediaType> list = rendererContext.getAcceptableMediaTypes();
+ final List<MediaType> list = resourceContext.getAcceptableMediaTypes();
ensureCompatibleAcceptHeader(RepresentationType.OBJECT_ACTION, list);
- final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(rendererContext);
+ final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(resourceContext);
renderer.with(objectAndAction)
- .usingLinkTo(rendererContext.getAdapterLinkTo())
+ .usingLinkTo(resourceContext.getObjectAdapterLinkTo())
.asStandalone();
final ResponseBuilder responseBuilder = Responses.ofOk(renderer, Caching.NONE);
@@ -206,16 +209,16 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
@Override
public ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndActionInvocation objectAndActionInvocation) {
final ResponseBuilder responseBuilder;
- final List<MediaType> acceptableMediaTypes = rendererContext.getAcceptableMediaTypes();
+ final List<MediaType> acceptableMediaTypes = resourceContext.getAcceptableMediaTypes();
if(isAccepted(RepresentationType.DOMAIN_OBJECT, acceptableMediaTypes, true)) {
- final ObjectAdapter adapter;
- final Collection<ObjectAdapter> collectionAdapters = objectAdaptersFrom(objectAndActionInvocation);
+ final ManagedObject adapter;
+ final Collection<ManagedObject> collectionAdapters = objectAdaptersFrom(objectAndActionInvocation);
if(collectionAdapters != null) {
final ObjectSpecification elementSpec = elementSpecFrom(objectAndActionInvocation);
@@ -224,15 +227,15 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
final String actionArguments = actionArgumentsFrom(objectAndActionInvocation);
final DomainObjectList list = domainObjectListFrom(collectionAdapters, elementSpec, actionOwningType, actionId, actionArguments);
- adapter = rendererContext.adapterOfPojo(list);
+ adapter = ManagedObject._adapterOfList(list);
} else {
adapter = objectAndActionInvocation.getReturnedAdapter();
}
- responseBuilder = buildResponse(rendererContext, adapter);
+ responseBuilder = buildResponse(resourceContext, adapter);
} else if(isAccepted(RepresentationType.ACTION_RESULT, acceptableMediaTypes)) {
- responseBuilder = buildResponseTo(rendererContext, objectAndActionInvocation, JsonRepresentation.newMap(), null);
+ responseBuilder = buildResponseTo(resourceContext, objectAndActionInvocation, JsonRepresentation.newMap(), null);
} else {
throw RestfulObjectsApplicationException.create(RestfulResponse.HttpStatusCode.NOT_ACCEPTABLE);
}
@@ -251,11 +254,11 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
private static String actionArgumentsFrom(final ObjectAndActionInvocation objectAndActionInvocation) {
final StringBuilder buf = new StringBuilder();
final List<ObjectActionParameter> parameters = objectAndActionInvocation.getAction().getParameters();
- final List<ObjectAdapter> argAdapters = objectAndActionInvocation.getArgAdapters();
+ final List<ManagedObject> argAdapters = objectAndActionInvocation.getArgAdapters();
if(parameters.size() == argAdapters.size()) {
for (int i = 0; i < parameters.size(); i++) {
final ObjectActionParameter param = parameters.get(i);
- final ObjectAdapter argAdapter = argAdapters.get(i);
+ final ManagedObject argAdapter = argAdapters.get(i);
if(buf.length() > 0) {
buf.append(",");
@@ -268,7 +271,7 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
return buf.toString();
}
- private static String titleOf(final ObjectAdapter argumentAdapter) {
+ private static String titleOf(final ManagedObject argumentAdapter) {
return argumentAdapter!=null?argumentAdapter.titleString(null):"";
}
@@ -277,7 +280,7 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
}
private static DomainObjectList domainObjectListFrom(
- final Collection<ObjectAdapter> collectionAdapters,
+ final Collection<ManagedObject> collectionAdapters,
final ObjectSpecification elementSpec,
final String actionOwningType,
final String actionId,
@@ -285,15 +288,16 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
final String title = titleFrom(collectionAdapters, elementSpec);
- final DomainObjectList list = new DomainObjectList(title, elementSpec.getSpecId().asString(), actionOwningType, actionId, actionArguments);
- for (final ObjectAdapter adapter : collectionAdapters) {
+ final DomainObjectList list = new DomainObjectList(
+ title, elementSpec.getSpecId().asString(), actionOwningType, actionId, actionArguments);
+ for (val adapter : collectionAdapters) {
list.getObjects().add(adapter.getPojo());
}
return list;
}
private static String titleFrom(
- final Collection<ObjectAdapter> collectionAdapters,
+ final Collection<ManagedObject> collectionAdapters,
final ObjectSpecification elementSpec) {
final String singularName = elementSpec.getSingularName();
final String pluralName = elementSpec.getPluralName();
@@ -320,8 +324,8 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
: specificationLoader.loadSpecification(Object.class) ;
}
- private Collection<ObjectAdapter> objectAdaptersFrom(final ObjectAndActionInvocation objectAndActionInvocation) {
- final ObjectAdapter returnedAdapter = objectAndActionInvocation.getReturnedAdapter();
+ private Collection<ManagedObject> objectAdaptersFrom(final ObjectAndActionInvocation objectAndActionInvocation) {
+ final ManagedObject returnedAdapter = objectAndActionInvocation.getReturnedAdapter();
final ObjectSpecification returnType = objectAndActionInvocation.getAction().getReturnType();
final CollectionFacet collectionFacet = returnType.getFacet(CollectionFacet.class);
@@ -334,17 +338,17 @@ public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
* Not API
*/
ResponseBuilder buildResponseTo(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndActionInvocation objectAndActionInvocation,
final JsonRepresentation representation,
final JsonRepresentation rootRepresentation) {
final ActionResultReprRenderer renderer =
- new ActionResultReprRenderer(rendererContext, null, objectAndActionInvocation.getSelfLink(), representation);
+ new ActionResultReprRenderer(resourceContext, null, objectAndActionInvocation.getSelfLink(), representation);
renderer.with(objectAndActionInvocation)
- .using(rendererContext.getAdapterLinkTo());
+ .using(resourceContext.getObjectAdapterLinkTo());
final ResponseBuilder responseBuilder = Responses.ofOk(renderer, Caching.NONE, rootRepresentation);
- Responses.addLastModifiedAndETagIfAvailable(responseBuilder, objectAndActionInvocation.getObjectAdapter().getVersion());
+ Responses.addLastModifiedAndETagIfAvailable(responseBuilder, ManagedObject._version(objectAndActionInvocation.getObjectAdapter()));
return responseBuilder;
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
index 84692ae..2d5c249 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
@@ -31,7 +31,6 @@ import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.client.SuppressionType;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
@@ -42,7 +41,7 @@ import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.domainobjects.ActionResultRepresentation;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndAction;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndActionInvocation;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndCollection;
@@ -102,20 +101,20 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
*/
@Override
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
- final ObjectAdapter objectAdapter) {
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter) {
- boolean canAccept = canAccept(rendererContext);
+ boolean canAccept = canAccept(resourceContext);
if(!canAccept) {
return null;
}
- final EnumSet<SuppressionType> suppression = suppress(rendererContext);
+ final EnumSet<SuppressionType> suppression = suppress(resourceContext);
final boolean suppressRO = suppression.contains(SuppressionType.RO);
final JsonRepresentation rootRepresentation = JsonRepresentation.newMap();
- appendObjectTo(rendererContext, objectAdapter, rootRepresentation, suppression);
+ appendObjectTo(resourceContext, objectAdapter, rootRepresentation, suppression);
final JsonRepresentation $$roRepresentation;
if(!suppressRO) {
@@ -126,7 +125,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
}
final Response.ResponseBuilder responseBuilder =
restfulObjectsV1_0.buildResponseTo(
- rendererContext, objectAdapter, $$roRepresentation, rootRepresentation);
+ resourceContext, objectAdapter, $$roRepresentation, rootRepresentation);
responseBuilder.type(CONTENT_TYPE_OAI_V1_OBJECT);
@@ -138,7 +137,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
*/
@Override
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndProperty objectAndProperty) {
return null;
@@ -150,21 +149,21 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
*/
@Override
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndCollection objectAndCollection) {
- if(!canAccept(rendererContext)) {
+ if(!canAccept(resourceContext)) {
return null;
}
- final EnumSet<SuppressionType> suppression = suppress(rendererContext);
+ final EnumSet<SuppressionType> suppression = suppress(resourceContext);
final boolean suppressRO = suppression.contains(SuppressionType.RO);
final JsonRepresentation rootRepresentation = JsonRepresentation.newArray();
- ObjectAdapter objectAdapter = objectAndCollection.getObjectAdapter();
+ ManagedObject objectAdapter = objectAndCollection.getObjectAdapter();
OneToManyAssociation collection = objectAndCollection.getMember();
- appendCollectionTo(rendererContext, objectAdapter, collection, rootRepresentation, suppression);
+ appendCollectionTo(resourceContext, objectAdapter, collection, rootRepresentation, suppression);
final JsonRepresentation $$roRepresentation;
if(!suppressRO) {
@@ -180,7 +179,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
final Response.ResponseBuilder responseBuilder =
restfulObjectsV1_0.buildResponseTo(
- rendererContext, objectAndCollection, $$roRepresentation, rootRepresentation);
+ resourceContext, objectAndCollection, $$roRepresentation, rootRepresentation);
responseBuilder.type(CONTENT_TYPE_OAI_V1_OBJECT_COLLECTION);
@@ -192,7 +191,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
*/
@Override
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndAction objectAndAction) {
return null;
}
@@ -208,13 +207,13 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
*/
@Override
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context rendererContext,
+ final IResourceContext resourceContext,
final ObjectAndActionInvocation objectAndActionInvocation) {
- if(!canAccept(rendererContext)) {
+ if(!canAccept(resourceContext)) {
return null;
}
- final EnumSet<SuppressionType> suppression = suppress(rendererContext);
+ final EnumSet<SuppressionType> suppression = suppress(resourceContext);
final boolean suppressRO = suppression.contains(SuppressionType.RO);
JsonRepresentation rootRepresentation = null;
@@ -225,7 +224,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
$$roRepresentation = null;
}
- final ObjectAdapter returnedAdapter = objectAndActionInvocation.getReturnedAdapter();
+ final ManagedObject returnedAdapter = objectAndActionInvocation.getReturnedAdapter();
final ObjectSpecification returnType = objectAndActionInvocation.getAction().getReturnType();
if (returnedAdapter == null) {
@@ -237,7 +236,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
case DOMAIN_OBJECT:
rootRepresentation = JsonRepresentation.newMap();
- appendObjectTo(rendererContext, returnedAdapter, rootRepresentation, suppression);
+ appendObjectTo(resourceContext, returnedAdapter, rootRepresentation, suppression);
break;
@@ -247,9 +246,10 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
final CollectionFacet collectionFacet = returnType.getFacet(CollectionFacet.class);
- final Stream<ObjectAdapter> collectionAdapters = CollectionFacet.Utils.streamAdapters(returnedAdapter);
+ final Stream<ManagedObject> collectionAdapters =
+ CollectionFacet.Utils.streamAdapters(returnedAdapter);
- appendStreamTo(rendererContext, collectionAdapters, rootRepresentation, suppression);
+ appendStreamTo(resourceContext, collectionAdapters, rootRepresentation, suppression);
// $$ro representation will be an object in the list with a single property named "$$ro"
if(!suppressRO) {
@@ -269,7 +269,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
final Response.ResponseBuilder responseBuilder =
restfulObjectsV1_0.buildResponseTo(
- rendererContext, objectAndActionInvocation, $$roRepresentation, rootRepresentation);
+ resourceContext, objectAndActionInvocation, $$roRepresentation, rootRepresentation);
// set appropriate Content-Type
responseBuilder.type(
@@ -288,26 +288,26 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
return responseBuilder;
}
- boolean canAccept(final RepresentationService.Context rendererContext) {
- final List<MediaType> acceptableMediaTypes = rendererContext.getAcceptableMediaTypes();
+ boolean canAccept(final IResourceContext resourceContext) {
+ final List<MediaType> acceptableMediaTypes = resourceContext.getAcceptableMediaTypes();
return mediaTypeParameterMatches(acceptableMediaTypes, "profile", ACCEPT_PROFILE);
}
protected EnumSet<SuppressionType> suppress(
- final RepresentationService.Context rendererContext) {
- final List<MediaType> acceptableMediaTypes = rendererContext.getAcceptableMediaTypes();
+ final IResourceContext resourceContext) {
+ final List<MediaType> acceptableMediaTypes = resourceContext.getAcceptableMediaTypes();
return SuppressionType.ParseUtil.parse(mediaTypeParameterList(acceptableMediaTypes, "suppress"));
}
private void appendObjectTo(
- final RepresentationService.Context rendererContext,
- final ObjectAdapter objectAdapter,
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter,
final JsonRepresentation rootRepresentation,
final EnumSet<SuppressionType> suppression) {
- appendPropertiesTo(rendererContext, objectAdapter, rootRepresentation, suppression);
+ appendPropertiesTo(resourceContext, objectAdapter, rootRepresentation, suppression);
- final Where where = rendererContext.getWhere();
+ final Where where = resourceContext.getWhere();
final Stream<OneToManyAssociation> collections = objectAdapter.getSpecification()
.streamCollections(Contributed.INCLUDED);
@@ -316,24 +316,25 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
rootRepresentation.mapPut(collection.getId(), collectionRepresentation);
- final InteractionInitiatedBy interactionInitiatedBy = determineInteractionInitiatedByFrom(rendererContext);
+ final InteractionInitiatedBy interactionInitiatedBy = determineInteractionInitiatedByFrom(resourceContext);
final Consent visibility = collection.isVisible(objectAdapter, interactionInitiatedBy, where);
if (!visibility.isAllowed()) {
return;
}
- appendCollectionTo(rendererContext, objectAdapter, collection, collectionRepresentation, suppression);
+ appendCollectionTo(resourceContext, objectAdapter, collection, collectionRepresentation, suppression);
});
}
private void appendPropertiesTo(
- final RepresentationService.Context rendererContext,
- final ObjectAdapter objectAdapter,
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter,
final JsonRepresentation rootRepresentation,
final EnumSet<SuppressionType> suppression) {
- final InteractionInitiatedBy interactionInitiatedBy = determineInteractionInitiatedByFrom(rendererContext);
- final Where where = rendererContext.getWhere();
+
+ final InteractionInitiatedBy interactionInitiatedBy = determineInteractionInitiatedByFrom(resourceContext);
+ final Where where = resourceContext.getWhere();
final Stream<OneToOneAssociation> properties = objectAdapter.getSpecification()
.streamProperties(Contributed.INCLUDED);
@@ -345,7 +346,7 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
final JsonRepresentation propertyRepresentation = JsonRepresentation.newMap();
final ObjectPropertyReprRenderer renderer =
- new ObjectPropertyReprRenderer(rendererContext, null, property.getId(), propertyRepresentation)
+ new ObjectPropertyReprRenderer(resourceContext, null, property.getId(), propertyRepresentation)
.asStandalone();
renderer.with(new ObjectAndProperty(objectAdapter, property));
@@ -383,40 +384,39 @@ public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiation
}
private void appendCollectionTo(
- final RepresentationService.Context rendererContext,
- final ObjectAdapter objectAdapter,
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter,
final OneToManyAssociation collection,
final JsonRepresentation representation,
final EnumSet<SuppressionType> suppression) {
- val interactionInitiatedBy = determineInteractionInitiatedByFrom(rendererContext);
+ val interactionInitiatedBy = determineInteractionInitiatedByFrom(resourceContext);
val valueAdapter = collection.get(objectAdapter, interactionInitiatedBy);
if (valueAdapter == null) {
return;
}
- final Stream<ObjectAdapter> adapters = CollectionFacet.Utils.streamAdapters(valueAdapter)
- .map(x->ManagedObject.promote(x));
- appendStreamTo(rendererContext, adapters, representation, suppression);
+ final Stream<ManagedObject> adapters = CollectionFacet.Utils.streamAdapters(valueAdapter);
+ appendStreamTo(resourceContext, adapters, representation, suppression);
}
private void appendStreamTo(
- final RepresentationService.Context rendererContext,
- final Stream<ObjectAdapter> adapters,
+ final IResourceContext resourceContext,
+ final Stream<ManagedObject> adapters,
final JsonRepresentation collectionRepresentation,
final EnumSet<SuppressionType> suppression) {
adapters.forEach(elementAdapter->{
JsonRepresentation elementRepresentation = JsonRepresentation.newMap();
- appendPropertiesTo(rendererContext, elementAdapter, elementRepresentation, suppression);
+ appendPropertiesTo(resourceContext, elementAdapter, elementRepresentation, suppression);
collectionRepresentation.arrayAdd(elementRepresentation);
});
}
private static InteractionInitiatedBy determineInteractionInitiatedByFrom(
- final RendererContext rendererContext) {
- return rendererContext.getInteractionInitiatedBy();
+ final IResourceContext resourceContext) {
+ return resourceContext.getInteractionInitiatedBy();
}
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java
index 3d97339..5a972e5 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java
@@ -25,13 +25,13 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Service;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.services.conmap.ContentMappingService;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndActionInvocation;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
@@ -50,19 +50,21 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationSer
* unambiguously serialize it.
* </p>
*/
-@DomainService(nature = NatureOfService.DOMAIN)
+@Service
@Order(100) //in effect, is the relative priority (lower numbers have higher priority)
public class ContentNegotiationServiceXRoDomainType extends ContentNegotiationServiceAbstract {
public static final String X_RO_DOMAIN_TYPE = "x-ro-domain-type";
+ @Inject List<ContentMappingService> contentMappingServices;
+
/**
* search for an accept header in form <code>application/xml;profile=urn:org.restfulobjects:repr-types/object;x-ro-domain-type=todoapp.dto.module.todoitem.ToDoItemDto</code>
*/
@Override
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
- final ObjectAdapter objectAdapter) {
+ final IResourceContext renderContext,
+ final ManagedObject objectAdapter) {
final Object domainObject = objectOf(objectAdapter);
final RepresentationType representationType = RepresentationType.DOMAIN_OBJECT;
@@ -76,7 +78,7 @@ public class ContentNegotiationServiceXRoDomainType extends ContentNegotiationSe
}
protected MediaType mediaTypeFrom(
- final RepresentationService.Context renderContext,
+ final IResourceContext renderContext,
final RepresentationType representationType) {
final List<MediaType> acceptableMediaTypes = renderContext.getAcceptableMediaTypes();
MediaType mediaType =
@@ -94,7 +96,7 @@ public class ContentNegotiationServiceXRoDomainType extends ContentNegotiationSe
*/
@Override
public Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
+ final IResourceContext renderContext,
final ObjectAndActionInvocation objectAndActionInvocation) {
final RepresentationType representationType = RepresentationType.ACTION_RESULT;
@@ -112,7 +114,7 @@ public class ContentNegotiationServiceXRoDomainType extends ContentNegotiationSe
}
protected Response.ResponseBuilder buildResponse(
- final RepresentationService.Context renderContext,
+ final IResourceContext renderContext,
final Object domainObject,
final RepresentationType representationType) {
@@ -154,6 +156,6 @@ public class ContentNegotiationServiceXRoDomainType extends ContentNegotiationSe
return domainObject;
}
- @Inject List<ContentMappingService> contentMappingServices;
+
}
diff --git a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java
index 1b25f08..a1314d6 100644
--- a/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java
+++ b/core/viewer-restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.restfulobjects.rendering.util;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
-import java.util.Map;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
@@ -80,17 +79,6 @@ public final class Util {
return read(queryStringTrimmed, "query string");
}
- /**
- * REVIEW - looks similar to above methods, but now unused; can it be deleted?
- */
- public static JsonRepresentation readParameterMapAsMap(final Map<String, String[]> parameterMap) {
- final JsonRepresentation map = JsonRepresentation.newMap();
- for (final Map.Entry<String, String[]> parameter : parameterMap.entrySet()) {
- map.mapPut(parameter.getKey(), parameter.getValue()[0]);
- }
- return map;
- }
-
private static JsonRepresentation read(final String args, final String argsNature) {
try {
final JsonRepresentation jsonRepr = JsonMapper.instance().read(args);
diff --git a/core/viewer-restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java b/core/viewer-restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
index 7984df4..6d1e8c0 100644
--- a/core/viewer-restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
+++ b/core/viewer-restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
@@ -52,6 +52,8 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
+import lombok.val;
+
public class JsonValueEncoderTest_asAdapter {
@Rule public JUnitRuleMockery2 context =
@@ -136,7 +138,7 @@ public class JsonValueEncoderTest_asAdapter {
});
// when
- final ObjectAdapter adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
+ val adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
// then
assertSame(mockObjectAdapter, adapter);
@@ -183,7 +185,7 @@ public class JsonValueEncoderTest_asAdapter {
});
// when
- final ObjectAdapter adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
+ val adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
// then
assertSame(mockObjectAdapter, adapter);
@@ -225,7 +227,7 @@ public class JsonValueEncoderTest_asAdapter {
});
// when
- final ObjectAdapter adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
+ val adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
// then
assertSame(mockObjectAdapter, adapter);
@@ -272,7 +274,7 @@ public class JsonValueEncoderTest_asAdapter {
});
// when
- final ObjectAdapter adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
+ val adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
// then
assertSame(mockObjectAdapter, adapter);
@@ -305,7 +307,7 @@ public class JsonValueEncoderTest_asAdapter {
});
// when
- final ObjectAdapter adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
+ val adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
// then
assertSame(mockObjectAdapter, adapter);
@@ -338,7 +340,7 @@ public class JsonValueEncoderTest_asAdapter {
});
// when
- final ObjectAdapter adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
+ val adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
// then
assertSame(mockObjectAdapter, adapter);
@@ -371,7 +373,7 @@ public class JsonValueEncoderTest_asAdapter {
});
// when
- final ObjectAdapter adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
+ val adapter = jsonValueEncoder.asAdapter(mockObjectSpec, representation, null);
// then
assertSame(mockObjectAdapter, adapter);
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
index 87a7fdc..972d8b0 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
@@ -36,29 +36,30 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Sets;
import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.runtime.system.context.session.RuntimeContextBase;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest.DomainModel;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulRequest.RequestParameter;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpStatusCode;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
+import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAdapterLinkTo;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
import org.apache.isis.viewer.restfulobjects.rendering.util.Util;
import org.apache.isis.webapp.IsisWebAppUtils;
import lombok.Getter;
+import lombok.Setter;
-public class ResourceContext extends RuntimeContextBase implements RendererContext {
+public class ResourceContext extends RuntimeContextBase implements IResourceContext {
@Getter private final HttpHeaders httpHeaders;
@Getter private final UriInfo uriInfo;
@Getter private final Request request;
- //not used ... private final Providers providers;
@Getter private final HttpServletRequest httpServletRequest;
@Getter private final HttpServletResponse httpServletResponse;
@Getter private final SecurityContext securityContext;
@@ -214,8 +215,8 @@ public class ResourceContext extends RuntimeContextBase implements RendererConte
// -- canEagerlyRender
private Set<Oid> rendered = _Sets.newHashSet();
@Override
- public boolean canEagerlyRender(ObjectAdapter objectAdapter) {
- final Oid oid = objectAdapter.getOid();
+ public boolean canEagerlyRender(ManagedObject objectAdapter) {
+ final Oid oid = ManagedObject._oid(objectAdapter);
return rendered.add(oid);
}
@@ -272,4 +273,10 @@ public class ResourceContext extends RuntimeContextBase implements RendererConte
return httpHeaders.getAcceptableMediaTypes();
}
+
+ @Getter(onMethod = @__(@Override))
+ @Setter(onMethod = @__(@Override))
+ private ObjectAdapterLinkTo objectAdapterLinkTo;
+
+
}
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
index 8fcbdb2..2c77631 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
@@ -46,10 +46,10 @@ import org.apache.isis.commons.internal.base._Bytes;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.resources._Resources;
import org.apache.isis.commons.internal.url.UrlDecoderUtil;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facets.object.grid.GridFacet;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecId;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
@@ -66,7 +66,6 @@ import org.apache.isis.viewer.restfulobjects.rendering.Responses;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberReprMode;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
-//TODO deprecated non standard import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.PrettyPrinting;
import org.apache.isis.viewer.restfulobjects.rendering.util.Util;
import org.apache.isis.viewer.restfulobjects.server.resources.serialization.SerializationStrategy;
@@ -106,9 +105,9 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
throw RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.BAD_REQUEST, "Could not determine type of domain object to persist (no class with domainType Id of '%s')", domainType);
}
- final ObjectAdapter objectAdapter = getResourceContext().newTransientInstance(domainTypeSpec);
+ final ManagedObject adapter = getResourceContext().newTransientInstance(domainTypeSpec);
- final ObjectAdapterUpdateHelper updateHelper = new ObjectAdapterUpdateHelper(getResourceContext(), objectAdapter);
+ final ObjectAdapterUpdateHelper updateHelper = new ObjectAdapterUpdateHelper(getResourceContext(), adapter);
final JsonRepresentation membersMap = objectRepr.getMap("members");
if (membersMap == null) {
@@ -119,13 +118,15 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
throw RestfulObjectsApplicationException.createWithBody(HttpStatusCode.BAD_REQUEST, objectRepr, "Illegal property value");
}
- final Consent validity = objectAdapter.getSpecification().isValid(objectAdapter, InteractionInitiatedBy.USER);
+ final Consent validity = adapter.getSpecification().isValid(adapter, InteractionInitiatedBy.USER);
if (validity.isVetoed()) {
throw RestfulObjectsApplicationException.createWithBody(HttpStatusCode.BAD_REQUEST, objectRepr, validity.getReason());
}
- getResourceContext().makePersistentInTransaction(objectAdapter);
+
+ ManagedObject._makePersistentInTransaction(adapter);
+
- return newDomainResourceHelper(objectAdapter).objectRepresentation();
+ return newDomainResourceHelper(adapter).objectRepresentation();
}
@@ -141,11 +142,10 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT, RestfulMediaType.APPLICATION_XML_ERROR
})
- //TODO deprecated non standard @PrettyPrinting
public Response object(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId) {
init(RepresentationType.DOMAIN_OBJECT, Where.OBJECT_FORMS, RepresentationService.Intent.ALREADY_PERSISTENT);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
return newDomainResourceHelper(objectAdapter).objectRepresentation();
}
@@ -159,7 +159,6 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT, RestfulMediaType.APPLICATION_XML_ERROR
})
- //TODO deprecated non standard @PrettyPrinting
public Response object(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, final InputStream object) {
init(RepresentationType.DOMAIN_OBJECT, Where.OBJECT_FORMS, RepresentationService.Intent.ALREADY_PERSISTENT);
@@ -170,7 +169,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
throw RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.BAD_REQUEST, "Body is not a map; got %s", argRepr);
}
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final ObjectAdapterUpdateHelper updateHelper = new ObjectAdapterUpdateHelper(getResourceContext(), objectAdapter);
if (!updateHelper.copyOverProperties(argRepr, ObjectAdapterUpdateHelper.Intent.UPDATE_EXISTING)) {
@@ -270,7 +269,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
init(RepresentationType.OBJECT_LAYOUT, Where.ANYWHERE, RepresentationService.Intent.NOT_APPLICABLE);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final ObjectSpecification objectSpec = objectAdapter.getSpecification();
final String iconName = objectSpec.getIconName(objectAdapter);
final Class<?> correspondingClass = objectSpec.getCorrespondingClass();
@@ -289,7 +288,6 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_LAYOUT_BS3,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_LAYOUT_BS3
})
- //TODO deprecated non standard @PrettyPrinting
public Response layout(
@PathParam("domainType")
final String domainType,
@@ -311,7 +309,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
if(gridFacet == null) {
builder = Responses.ofNotFound();
} else {
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
Grid grid = gridFacet.getGrid(objectAdapter);
addLinks(domainType, instanceId, grid);
builder = Response.status(Response.Status.OK)
@@ -389,11 +387,10 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_PROPERTY, RestfulMediaType.APPLICATION_XML_ERROR
})
- //TODO deprecated non standard @PrettyPrinting
public Response propertyDetails(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("propertyId") final String propertyId) {
init(RepresentationType.OBJECT_PROPERTY, Where.OBJECT_FORMS, RepresentationService.Intent.NOT_APPLICABLE);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
return helper.propertyDetails(
@@ -415,7 +412,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
setCommandExecutor(Command.Executor.USER);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(getResourceContext(), objectAdapter);
@@ -425,7 +422,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
final ObjectSpecification propertySpec = property.getSpecification();
final String bodyAsString = Util.asStringUtf8(body);
- final ObjectAdapter argAdapter = new JsonParserHelper(getResourceContext(), propertySpec).parseAsMapWithSingleValue(
+ final ManagedObject argAdapter = new JsonParserHelper(getResourceContext(), propertySpec).parseAsMapWithSingleValue(
bodyAsString);
final Consent consent = property.isAssociationValid(objectAdapter, argAdapter, InteractionInitiatedBy.USER);
@@ -454,7 +451,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
setCommandExecutor(Command.Executor.USER);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(getResourceContext(), objectAdapter);
@@ -491,11 +488,10 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_COLLECTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- // TODO deprecated non standard @PrettyPrinting
public Response accessCollection(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId) {
init(RepresentationType.OBJECT_COLLECTION, Where.PARENTED_TABLES, RepresentationService.Intent.NOT_APPLICABLE);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
return newDomainResourceHelper(objectAdapter).collectionDetails(collectionId, MemberReprMode.READ);
}
@@ -511,7 +507,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
public Response addToSet(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId, final InputStream body) {
init(Where.PARENTED_TABLES, RepresentationService.Intent.NOT_APPLICABLE);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(getResourceContext(), objectAdapter);
@@ -524,7 +520,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
final ObjectSpecification collectionSpec = collection.getSpecification();
final String bodyAsString = Util.asStringUtf8(body);
- final ObjectAdapter argAdapter = new JsonParserHelper(getResourceContext(), collectionSpec).parseAsMapWithSingleValue(
+ final ManagedObject argAdapter = new JsonParserHelper(getResourceContext(), collectionSpec).parseAsMapWithSingleValue(
bodyAsString);
final Consent consent = collection.isValidToAdd(objectAdapter, argAdapter, InteractionInitiatedBy.USER);
@@ -548,7 +544,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
public Response addToList(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId, final InputStream body) {
init(Where.PARENTED_TABLES, RepresentationService.Intent.NOT_APPLICABLE);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(getResourceContext(), objectAdapter);
@@ -561,7 +557,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
final ObjectSpecification collectionSpec = collection.getSpecification();
final String bodyAsString = Util.asStringUtf8(body);
- final ObjectAdapter argAdapter = new JsonParserHelper(getResourceContext(), collectionSpec).parseAsMapWithSingleValue(
+ final ManagedObject argAdapter = new JsonParserHelper(getResourceContext(), collectionSpec).parseAsMapWithSingleValue(
bodyAsString);
final Consent consent = collection.isValidToAdd(objectAdapter, argAdapter, InteractionInitiatedBy.USER);
@@ -585,7 +581,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
public Response removeFromCollection(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("collectionId") final String collectionId) {
init(Where.PARENTED_TABLES, RepresentationService.Intent.NOT_APPLICABLE);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(getResourceContext(), objectAdapter);
@@ -593,7 +589,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
collectionId, ObjectAdapterAccessHelper.Intent.MUTATE);
final ObjectSpecification collectionSpec = collection.getSpecification();
- final ObjectAdapter argAdapter = new JsonParserHelper(getResourceContext(), collectionSpec).parseAsMapWithSingleValue(
+ final ManagedObject argAdapter = new JsonParserHelper(getResourceContext(), collectionSpec).parseAsMapWithSingleValue(
getResourceContext().getUrlUnencodedQueryString());
final Consent consent = collection.isValidToRemove(objectAdapter, argAdapter, InteractionInitiatedBy.USER);
@@ -618,11 +614,10 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_OBJECT_ACTION, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_OBJECT_ACTION, RestfulMediaType.APPLICATION_XML_ERROR
})
- //TODO deprecated non standard @PrettyPrinting
public Response actionPrompt(@PathParam("domainType") String domainType, @PathParam("instanceId") final String instanceId, @PathParam("actionId") final String actionId) {
init(RepresentationType.OBJECT_ACTION, Where.OBJECT_FORMS, RepresentationService.Intent.NOT_APPLICABLE);
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
return helper.actionPrompt(actionId);
@@ -655,7 +650,6 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- //TODO deprecated non standard @PrettyPrinting
public Response invokeActionQueryOnly(
final @PathParam("domainType") String domainType,
final @PathParam("instanceId") String instanceId,
@@ -670,7 +664,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr();
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
return helper.invokeActionQueryOnly(actionId, arguments);
@@ -684,7 +678,6 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- //TODO deprecated non standard @PrettyPrinting
public Response invokeActionIdempotent(
final @PathParam("domainType") String domainType,
final @PathParam("instanceId") String instanceId,
@@ -697,7 +690,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr();
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
return helper.invokeActionIdempotent(actionId, arguments);
@@ -711,7 +704,6 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
MediaType.APPLICATION_JSON, RestfulMediaType.APPLICATION_JSON_ACTION_RESULT, RestfulMediaType.APPLICATION_JSON_ERROR,
MediaType.APPLICATION_XML, RestfulMediaType.APPLICATION_XML_ACTION_RESULT, RestfulMediaType.APPLICATION_XML_ERROR
})
- //TODO deprecated non standard @PrettyPrinting
public Response invokeAction(
@PathParam("domainType") String domainType,
@PathParam("instanceId") final String instanceId,
@@ -724,7 +716,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr();
- final ObjectAdapter objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
+ final ManagedObject objectAdapter = getObjectAdapterElseThrowNotFound(domainType, instanceId);
final DomainResourceHelper helper = newDomainResourceHelper(objectAdapter);
return helper.invokeAction(actionId, arguments);
@@ -736,7 +728,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
}
- private DomainResourceHelper newDomainResourceHelper(final ObjectAdapter objectAdapter) {
+ private DomainResourceHelper newDomainResourceHelper(final ManagedObject objectAdapter) {
return new DomainResourceHelper(getResourceContext(), objectAdapter);
}
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
index 3f621ed..d1c0850 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
@@ -20,34 +20,18 @@ package org.apache.isis.viewer.restfulobjects.server.resources;
import java.util.List;
-import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.services.inject.ServiceInjector;
-import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.metamodel.services.homepage.HomePageAction;
import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.metamodel.spec.ManagedObjectState;
-import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.Data;
-import org.apache.isis.runtime.persistence.FixturesInstalledState;
-import org.apache.isis.security.authentication.AuthenticationSession;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ActionResultReprRenderer;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectLinkTo;
@@ -60,195 +44,194 @@ import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndPr
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
import org.apache.isis.viewer.restfulobjects.server.ResourceContext;
-import lombok.Getter;
-
class DomainResourceHelper {
- static class RepresentationServiceContextAdapter implements RepresentationService.Context {
-
- private final RendererContext rendererContext;
- @Getter private final ObjectAdapterLinkTo adapterLinkTo;
- @Getter private RepresentationService.Intent intent;
-
- RepresentationServiceContextAdapter(
- final RendererContext rendererContext,
- final ObjectAdapterLinkTo adapterLinkTo) {
- this.rendererContext = rendererContext;
- this.adapterLinkTo = adapterLinkTo;
- this.intent = rendererContext.getIntent();
- }
-
- @Override
- public String urlFor(String url) {
- return rendererContext.urlFor(url);
- }
-
- @Override
- public AuthenticationSession getAuthenticationSession() {
- return rendererContext.getAuthenticationSession();
- }
-
- @Override
- public IsisConfiguration getConfiguration() {
- return rendererContext.getConfiguration();
- }
-
- @Override
- public Where getWhere() {
- return rendererContext.getWhere();
- }
-
- @Override
- public List<List<String>> getFollowLinks() {
- return rendererContext.getFollowLinks();
- }
-
- @Override
- public boolean isValidateOnly() {
- return rendererContext.isValidateOnly();
- }
-
- @Override
- public List<MediaType> getAcceptableMediaTypes() {
- return rendererContext.getAcceptableMediaTypes();
- }
-
- @Override
- public boolean canEagerlyRender(ObjectAdapter objectAdapter) {
- return rendererContext.canEagerlyRender(objectAdapter);
- }
-
- @Override
- public boolean honorUiHints() {
- return rendererContext.honorUiHints();
- }
-
- @Override
- public boolean objectPropertyValuesOnly() {
- return rendererContext.objectPropertyValuesOnly();
- }
-
- @Override
- public boolean suppressDescribedByLinks() {
- return rendererContext.suppressDescribedByLinks();
- }
-
- @Override
- public boolean suppressUpdateLink() {
- return rendererContext.suppressUpdateLink();
- }
-
- @Override
- public boolean suppressMemberId() {
- return rendererContext.suppressMemberId();
- }
-
- @Override
- public boolean suppressMemberLinks() {
- return rendererContext.suppressMemberLinks();
- }
-
- @Override
- public boolean suppressMemberExtensions() {
- return rendererContext.suppressMemberExtensions();
- }
-
- @Override
- public boolean suppressMemberDisabledReason() {
- return rendererContext.suppressMemberDisabledReason();
- }
-
- @Override
- public InteractionInitiatedBy getInteractionInitiatedBy() {
- return rendererContext.getInteractionInitiatedBy();
- }
-
- @Override
- public SpecificationLoader getSpecificationLoader() {
- return rendererContext.getSpecificationLoader();
- }
-
- @Override
- public ServiceInjector getServiceInjector() {
- return rendererContext.getServiceInjector();
- }
-
- @Override
- public ServiceRegistry getServiceRegistry() {
- return rendererContext.getServiceRegistry();
- }
-
- @Override
- public ObjectAdapter adapterOfPojo(Object pojo) {
- return rendererContext.adapterOfPojo(pojo);
- }
-
- @Override
- public ObjectAdapter adapterOfMemento(ObjectSpecification spec, Oid oid, Data data) {
- return rendererContext.adapterOfMemento(spec, oid, data);
- }
-
- @Override
- public ObjectAdapter newTransientInstance(ObjectSpecification domainTypeSpec) {
- return rendererContext.newTransientInstance(domainTypeSpec);
- }
-
- @Override
- public void makePersistentInTransaction(ObjectAdapter objectAdapter) {
- rendererContext.makePersistentInTransaction(objectAdapter);
- }
-
- @Override
- public Object fetchPersistentPojoInTransaction(RootOid rootOid) {
- return rendererContext.fetchPersistentPojoInTransaction(rootOid);
- }
-
- @Override
- public ManagedObjectState stateOf(Object domainObject) {
- return rendererContext.stateOf(domainObject);
- }
-
- @Override
- public void logoutAuthenticationSession() {
- rendererContext.logoutAuthenticationSession();
- }
-
- @Override
- public HomePageAction getHomePageAction() {
- return rendererContext.getHomePageAction();
- }
-
- @Override
- public FixturesInstalledState getFixturesInstalledState() {
- return rendererContext.getFixturesInstalledState();
- }
-
- @Override
- public MetaModelContext getMetaModelContext() {
- return rendererContext.getMetaModelContext();
- }
-
-
- }
-
- private final RepresentationServiceContextAdapter representationServiceContext;
+// static class RepresentationServiceContextAdapter implements resourceContext {
+//
+// private final resourceContext resourceContext;
+// @Getter private final ObjectAdapterLinkTo adapterLinkTo;
+// @Getter private RepresentationService.Intent intent;
+//
+// RepresentationServiceContextAdapter(
+// final resourceContext resourceContext,
+// final ObjectAdapterLinkTo adapterLinkTo) {
+//
+// this.resourceContext = resourceContext;
+// this.adapterLinkTo = adapterLinkTo;
+// this.intent = resourceContext.getIntent();
+// }
+//
+// @Override
+// public String urlFor(String url) {
+// return resourceContext.urlFor(url);
+// }
+//
+// @Override
+// public AuthenticationSession getAuthenticationSession() {
+// return resourceContext.getAuthenticationSession();
+// }
+//
+// @Override
+// public IsisConfiguration getConfiguration() {
+// return resourceContext.getConfiguration();
+// }
+//
+// @Override
+// public Where getWhere() {
+// return resourceContext.getWhere();
+// }
+//
+// @Override
+// public List<List<String>> getFollowLinks() {
+// return resourceContext.getFollowLinks();
+// }
+//
+// @Override
+// public boolean isValidateOnly() {
+// return resourceContext.isValidateOnly();
+// }
+//
+// @Override
+// public List<MediaType> getAcceptableMediaTypes() {
+// return resourceContext.getAcceptableMediaTypes();
+// }
+//
+// @Override
+// public boolean canEagerlyRender(ManagedObject objectAdapter) {
+// return resourceContext.canEagerlyRender(objectAdapter);
+// }
+//
+// @Override
+// public boolean honorUiHints() {
+// return resourceContext.honorUiHints();
+// }
+//
+// @Override
+// public boolean objectPropertyValuesOnly() {
+// return resourceContext.objectPropertyValuesOnly();
+// }
+//
+// @Override
+// public boolean suppressDescribedByLinks() {
+// return resourceContext.suppressDescribedByLinks();
+// }
+//
+// @Override
+// public boolean suppressUpdateLink() {
+// return resourceContext.suppressUpdateLink();
+// }
+//
+// @Override
+// public boolean suppressMemberId() {
+// return resourceContext.suppressMemberId();
+// }
+//
+// @Override
+// public boolean suppressMemberLinks() {
+// return resourceContext.suppressMemberLinks();
+// }
+//
+// @Override
+// public boolean suppressMemberExtensions() {
+// return resourceContext.suppressMemberExtensions();
+// }
+//
+// @Override
+// public boolean suppressMemberDisabledReason() {
+// return resourceContext.suppressMemberDisabledReason();
+// }
+//
+// @Override
+// public InteractionInitiatedBy getInteractionInitiatedBy() {
+// return resourceContext.getInteractionInitiatedBy();
+// }
+//
+// @Override
+// public SpecificationLoader getSpecificationLoader() {
+// return resourceContext.getSpecificationLoader();
+// }
+//
+// @Override
+// public ServiceInjector getServiceInjector() {
+// return resourceContext.getServiceInjector();
+// }
+//
+// @Override
+// public ServiceRegistry getServiceRegistry() {
+// return resourceContext.getServiceRegistry();
+// }
+//
+// @Override
+// public ManagedObject adapterOfPojo(Object pojo) {
+// return resourceContext.adapterOfPojo(pojo);
+// }
+//
+// @Override
+// public ManagedObject adapterOfMemento(ObjectSpecification spec, Oid oid, Data data) {
+// return resourceContext.adapterOfMemento(spec, oid, data);
+// }
+//
+// @Override
+// public ManagedObject newTransientInstance(ObjectSpecification domainTypeSpec) {
+// return resourceContext.newTransientInstance(domainTypeSpec);
+// }
+//
+// @Override
+// public void makePersistentInTransaction(ManagedObject objectAdapter) {
+// resourceContext.makePersistentInTransaction(objectAdapter);
+// }
+//
+// @Override
+// public Object fetchPersistentPojoInTransaction(RootOid rootOid) {
+// return resourceContext.fetchPersistentPojoInTransaction(rootOid);
+// }
+//
+// @Override
+// public ManagedObjectState stateOf(Object domainObject) {
+// return resourceContext.stateOf(domainObject);
+// }
+//
+// @Override
+// public void logoutAuthenticationSession() {
+// resourceContext.logoutAuthenticationSession();
+// }
+//
+// @Override
+// public HomePageAction getHomePageAction() {
+// return resourceContext.getHomePageAction();
+// }
+//
+// @Override
+// public FixturesInstalledState getFixturesInstalledState() {
+// return resourceContext.getFixturesInstalledState();
+// }
+//
+// @Override
+// public MetaModelContext getMetaModelContext() {
+// return resourceContext.getMetaModelContext();
+// }
+//
+//
+// }
+
+ private final IResourceContext resourceContext;
private final RepresentationService representationService;
private final TransactionService transactionService;
- public DomainResourceHelper(final ResourceContext resourceContext, final ObjectAdapter objectAdapter) {
+ public DomainResourceHelper(final ResourceContext resourceContext, final ManagedObject objectAdapter) {
this(resourceContext, objectAdapter, new DomainObjectLinkTo());
}
public DomainResourceHelper(
- final ResourceContext resourceContext,
- final ObjectAdapter objectAdapter,
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter,
final ObjectAdapterLinkTo adapterLinkTo) {
+ resourceContext.setObjectAdapterLinkTo(adapterLinkTo);
+
this.resourceContext = resourceContext;
this.objectAdapter = objectAdapter;
- representationServiceContext = new RepresentationServiceContextAdapter(resourceContext, adapterLinkTo);
-
adapterLinkTo.usingUrlBase(this.resourceContext)
.with(this.objectAdapter);
@@ -256,8 +239,7 @@ class DomainResourceHelper {
transactionService = lookupService(TransactionService.class);
}
- private final ResourceContext resourceContext;
- private final ObjectAdapter objectAdapter;
+ private final ManagedObject objectAdapter;
// //////////////////////////////////////
@@ -271,7 +253,7 @@ class DomainResourceHelper {
public Response objectRepresentation() {
transactionService.flushTransaction();
return representationService
- .objectRepresentation(representationServiceContext, objectAdapter);
+ .objectRepresentation(resourceContext, objectAdapter);
}
/**
@@ -283,12 +265,12 @@ class DomainResourceHelper {
final String propertyId,
final MemberReprMode memberMode) {
- ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter);
+ ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(resourceContext, objectAdapter);
final OneToOneAssociation property = accessHelper.getPropertyThatIsVisibleForIntent(propertyId, ObjectAdapterAccessHelper.Intent.ACCESS);
transactionService.flushTransaction();
- return representationService.propertyDetails(representationServiceContext, new ObjectAndProperty2(objectAdapter, property, memberMode), memberMode);
+ return representationService.propertyDetails(resourceContext, new ObjectAndProperty2(objectAdapter, property, memberMode), memberMode);
}
@@ -301,12 +283,12 @@ class DomainResourceHelper {
final String collectionId,
final MemberReprMode memberMode) {
- ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter);
+ ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(resourceContext, objectAdapter);
final OneToManyAssociation collection = accessHelper.getCollectionThatIsVisibleForIntent(collectionId, ObjectAdapterAccessHelper.Intent.ACCESS);
transactionService.flushTransaction();
- return representationService.collectionDetails(representationServiceContext, new ObjectAndCollection2(objectAdapter, collection, memberMode), memberMode);
+ return representationService.collectionDetails(resourceContext, new ObjectAndCollection2(objectAdapter, collection, memberMode), memberMode);
}
@@ -317,12 +299,12 @@ class DomainResourceHelper {
*/
public Response actionPrompt(final String actionId) {
- ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter);
+ ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(resourceContext, objectAdapter);
final ObjectAction action = accessHelper.getObjectActionThatIsVisibleForIntent(actionId, ObjectAdapterAccessHelper.Intent.ACCESS);
transactionService.flushTransaction();
- return representationService.actionPrompt(representationServiceContext, new ObjectAndAction(objectAdapter, action));
+ return representationService.actionPrompt(resourceContext, new ObjectAndAction(objectAdapter, action));
}
/**
@@ -337,7 +319,7 @@ class DomainResourceHelper {
*/
public Response invokeActionQueryOnly(final String actionId, final JsonRepresentation arguments) {
- final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter);
+ final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(resourceContext, objectAdapter);
final ObjectAction action = accessHelper.getObjectActionThatIsVisibleForIntent(actionId, ObjectAdapterAccessHelper.Intent.MUTATE);
@@ -361,7 +343,7 @@ class DomainResourceHelper {
*/
public Response invokeActionIdempotent(final String actionId, final JsonRepresentation arguments) {
- final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter);
+ final ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(resourceContext, objectAdapter);
final ObjectAction action = accessHelper.getObjectActionThatIsVisibleForIntent(actionId, ObjectAdapterAccessHelper.Intent.MUTATE);
@@ -379,7 +361,7 @@ class DomainResourceHelper {
*/
public Response invokeAction(final String actionId, final JsonRepresentation arguments) {
- ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(representationServiceContext, objectAdapter);
+ ObjectAdapterAccessHelper accessHelper = new ObjectAdapterAccessHelper(resourceContext, objectAdapter);
final ObjectAction action = accessHelper.getObjectActionThatIsVisibleForIntent(actionId, ObjectAdapterAccessHelper.Intent.MUTATE);
@@ -392,32 +374,31 @@ class DomainResourceHelper {
final JsonRepresentation arguments,
final ActionResultReprRenderer.SelfLink selfLink) {
- final RepresentationService.Context rendererContext = representationServiceContext;
- final ObjectAdapter objectAdapter = this.objectAdapter;
+ final ManagedObject objectAdapter = this.objectAdapter;
- final ObjectActionArgHelper argHelper = new ObjectActionArgHelper(rendererContext, objectAdapter, action);
+ final ObjectActionArgHelper argHelper = new ObjectActionArgHelper(resourceContext, objectAdapter, action);
- final List<ObjectAdapter> argAdapters = argHelper.parseAndValidateArguments(arguments);
+ final List<ManagedObject> argAdapters = argHelper.parseAndValidateArguments(arguments);
- if(rendererContext.isValidateOnly()) {
+ if(resourceContext.isValidateOnly()) {
// nothing more to do.
// if there had been a validation error, then an exception would have been thrown above.
return Response.noContent().build();
}
// invoke
- final ObjectAdapter mixedInAdapter = null; // action will automatically fill in if a mixin
- final ObjectAdapter[] argAdapterArr = argAdapters.toArray(new ObjectAdapter[argAdapters.size()]);
- final ObjectAdapter returnedAdapter = ManagedObject.promote(action.execute(
+ final ManagedObject mixedInAdapter = null; // action will automatically fill in if a mixin
+ final ManagedObject[] argAdapterArr = argAdapters.toArray(new ManagedObject[argAdapters.size()]);
+ final ManagedObject returnedAdapter = action.execute(
objectAdapter, mixedInAdapter, argAdapterArr,
- InteractionInitiatedBy.USER));
+ InteractionInitiatedBy.USER);
final ObjectAndActionInvocation objectAndActionInvocation =
new ObjectAndActionInvocation(objectAdapter, action, arguments, argAdapters, returnedAdapter, selfLink);
// response
transactionService.flushTransaction();
- return representationService.actionResult(representationServiceContext, objectAndActionInvocation, selfLink);
+ return representationService.actionResult(resourceContext, objectAndActionInvocation, selfLink);
}
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
index 55d4232..d2a84b7 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
@@ -36,8 +36,8 @@ import javax.ws.rs.core.Response;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.command.Command;
import org.apache.isis.commons.internal.url.UrlDecoderUtil;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facets.object.domainservice.DomainServiceFacet;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -56,7 +56,7 @@ import lombok.val;
@Path("/services")
public class DomainServiceResourceServerside extends ResourceAbstract implements DomainServiceResource {
- private final static Predicate<ObjectAdapter> NATURE_REST_ALSO = (final ObjectAdapter input) -> {
+ private final static Predicate<ManagedObject> NATURE_REST_ALSO = (final ManagedObject input) -> {
final ObjectSpecification specification = input.getSpecification();
final DomainServiceFacet facet = specification.getFacet(DomainServiceFacet.class);
if (facet == null) {
@@ -76,7 +76,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
val metaModelContext = super.getResourceContext().getMetaModelContext();
- final Stream<ObjectAdapter> serviceAdapters = metaModelContext.streamServiceAdapters()
+ final Stream<ManagedObject> serviceAdapters = metaModelContext.streamServiceAdapters2()
.filter(NATURE_REST_ALSO);
final DomainServicesListReprRenderer renderer = new DomainServicesListReprRenderer(getResourceContext(), null, JsonRepresentation.newMap());
@@ -116,7 +116,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
public Response service(@PathParam("serviceId") final String serviceId) {
init(RepresentationType.DOMAIN_OBJECT, Where.OBJECT_FORMS, RepresentationService.Intent.ALREADY_PERSISTENT);
- final ObjectAdapter serviceAdapter = getServiceAdapter(serviceId);
+ final ManagedObject serviceAdapter = getServiceAdapter(serviceId);
final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getResourceContext(), null, JsonRepresentation.newMap());
renderer.usingLinkToBuilder(new DomainServiceLinkTo())
@@ -156,7 +156,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
public Response actionPrompt(@PathParam("serviceId") final String serviceId, @PathParam("actionId") final String actionId) {
init(RepresentationType.OBJECT_ACTION, Where.OBJECT_FORMS, RepresentationService.Intent.ALREADY_PERSISTENT);
- final ObjectAdapter serviceAdapter = getServiceAdapter(serviceId);
+ final ManagedObject serviceAdapter = getServiceAdapter(serviceId);
final DomainResourceHelper helper = newDomainResourceHelper(serviceAdapter);
return helper.actionPrompt(actionId);
@@ -201,7 +201,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr();
- final ObjectAdapter serviceAdapter = getServiceAdapter(serviceId);
+ final ManagedObject serviceAdapter = getServiceAdapter(serviceId);
final DomainResourceHelper helper = newDomainResourceHelper(serviceAdapter);
return helper.invokeActionQueryOnly(actionId, arguments);
@@ -226,7 +226,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr();
- final ObjectAdapter serviceAdapter = getServiceAdapter(serviceId);
+ final ManagedObject serviceAdapter = getServiceAdapter(serviceId);
final DomainResourceHelper helper = newDomainResourceHelper(serviceAdapter);
return helper.invokeActionIdempotent(actionId, arguments);
@@ -247,7 +247,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
final JsonRepresentation arguments = getResourceContext().getQueryStringAsJsonRepr();
- final ObjectAdapter serviceAdapter = getServiceAdapter(serviceId);
+ final ManagedObject serviceAdapter = getServiceAdapter(serviceId);
final DomainResourceHelper helper = newDomainResourceHelper(serviceAdapter);
return helper.invokeAction(actionId, arguments);
@@ -258,7 +258,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
throw RestfulObjectsApplicationException.createWithMessage(RestfulResponse.HttpStatusCode.METHOD_NOT_ALLOWED, "Deleting an action invocation resource is not allowed.");
}
- private DomainResourceHelper newDomainResourceHelper(final ObjectAdapter serviceAdapter) {
+ private DomainResourceHelper newDomainResourceHelper(final ManagedObject serviceAdapter) {
return new DomainResourceHelper(getResourceContext(), serviceAdapter, new DomainServiceLinkTo());
}
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServicesListReprRenderer.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServicesListReprRenderer.java
index a2c474d..8a055b4 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServicesListReprRenderer.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServicesListReprRenderer.java
@@ -23,12 +23,12 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ListReprRenderer;
public class DomainServicesListReprRenderer extends ListReprRenderer {
- public DomainServicesListReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ public DomainServicesListReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, representation);
}
@@ -46,11 +46,11 @@ public class DomainServicesListReprRenderer extends ListReprRenderer {
private void addLinkToSelf() {
- final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SELF.getName(), RepresentationType.LIST, "services").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.SELF.getName(), RepresentationType.LIST, "services").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final DomainServicesListReprRenderer renderer = new DomainServicesListReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final DomainServicesListReprRenderer renderer = new DomainServicesListReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
renderer.with(streamServiceAdapters());
link.mapPut("value", renderer.render());
}
@@ -59,11 +59,11 @@ public class DomainServicesListReprRenderer extends ListReprRenderer {
}
private void addLinkToUp() {
- final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(resourceContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final HomePageReprRenderer renderer = new HomePageReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
link.mapPut("value", renderer.render());
}
getLinks().arrayAdd(link);
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthReprRenderer.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthReprRenderer.java
index f707560..7af317a 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthReprRenderer.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HealthReprRenderer.java
@@ -22,13 +22,13 @@ import org.apache.isis.applib.services.health.Health;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public class HealthReprRenderer extends ReprRendererAbstract<HealthReprRenderer, Health> {
HealthReprRenderer(
- final RendererContext resourceContext,
+ final IResourceContext resourceContext,
final LinkFollowSpecs linkFollower,
final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.HEALTH, representation);
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java
index 75b3f38..1e5bec5 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/HomePageReprRenderer.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.restfulobjects.server.resources;
import java.util.Collection;
import java.util.stream.Stream;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.security.authentication.AuthenticationSession;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
@@ -29,18 +29,17 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainServiceLinkTo;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ListReprRenderer;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.TypeListReprRenderer;
-import org.apache.isis.viewer.restfulobjects.server.ResourceContext;
import lombok.val;
public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRenderer, Void> {
- HomePageReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ HomePageReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.HOME_PAGE, representation);
}
@@ -57,13 +56,13 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
addLinkToSelf();
}
- val metaModelContext = super.getRendererContext().getMetaModelContext();
+ val metaModelContext = super.getResourceContext().getMetaModelContext();
- addLinkToUser(getRendererContext().getAuthenticationSession());
+ addLinkToUser(getResourceContext().getAuthenticationSession());
addLinkToMenuBars();
- addLinkToServices(metaModelContext.streamServiceAdapters());
+ addLinkToServices(metaModelContext.streamServiceAdapters2());
addLinkToVersion();
- addLinkToDomainTypes(((ResourceContext)getRendererContext()).getSpecificationLoader().snapshotSpecifications());
+ addLinkToDomainTypes(getResourceContext().getSpecificationLoader().snapshotSpecifications());
// inks and extensions
representation.mapPut("extensions", JsonRepresentation.newMap());
@@ -72,36 +71,36 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
}
private void addLinkToSelf() {
- final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.SELF.getName(), RepresentationType.HOME_PAGE, "").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(resourceContext, Rel.SELF.getName(), RepresentationType.HOME_PAGE, "").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final HomePageReprRenderer renderer = new HomePageReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
link.mapPut("value", renderer.render());
}
getLinks().arrayAdd(link);
}
private void addLinkToVersion() {
- final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.VERSION.getName(), RepresentationType.VERSION, "version").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.VERSION.getName(), RepresentationType.VERSION, "version").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final VersionReprRenderer renderer = new VersionReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final VersionReprRenderer renderer = new VersionReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
link.mapPut("value", renderer.render());
}
getLinks().arrayAdd(link);
}
- private void addLinkToServices(Stream<ObjectAdapter> serviceAdapters) {
+ private void addLinkToServices(Stream<ManagedObject> serviceAdapters) {
- final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SERVICES.getName(), RepresentationType.LIST, "services").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.SERVICES.getName(), RepresentationType.LIST, "services").build();
final LinkFollowSpecs linkFollowSpecs = getLinkFollowSpecs().follow("links");
if (linkFollowSpecs.matches(link)) {
- final ListReprRenderer renderer = new ListReprRenderer(getRendererContext(), linkFollowSpecs, JsonRepresentation.newMap());
+ final ListReprRenderer renderer = new ListReprRenderer(getResourceContext(), linkFollowSpecs, JsonRepresentation.newMap());
renderer.usingLinkToBuilder(new DomainServiceLinkTo()).withLink(Rel.SELF, "services").with(serviceAdapters);
link.mapPut("value", renderer.render());
@@ -111,11 +110,11 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
}
private void addLinkToUser(AuthenticationSession authenticationSession) {
- final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.USER.getName(), RepresentationType.USER, "user").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.USER.getName(), RepresentationType.USER, "user").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final UserReprRenderer renderer = new UserReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final UserReprRenderer renderer = new UserReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
renderer.with(authenticationSession);
link.mapPut("value", renderer.render());
}
@@ -125,17 +124,17 @@ public class HomePageReprRenderer extends ReprRendererAbstract<HomePageReprRende
private void addLinkToMenuBars() {
final JsonRepresentation link = LinkBuilder
- .newBuilder(getRendererContext(), Rel.MENUBARS.getName(), RepresentationType.MENUBARS, "menuBars").build();
+ .newBuilder(getResourceContext(), Rel.MENUBARS.getName(), RepresentationType.MENUBARS, "menuBars").build();
getLinks().arrayAdd(link);
}
private void addLinkToDomainTypes(final Collection<ObjectSpecification> specifications) {
- final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.DOMAIN_TYPES.getName(), RepresentationType.TYPE_LIST, "domain-types").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.DOMAIN_TYPES.getName(), RepresentationType.TYPE_LIST, "domain-types").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final TypeListReprRenderer renderer = new TypeListReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final TypeListReprRenderer renderer = new TypeListReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
renderer.withLink(Rel.SELF, "domain-types").with(specifications);
link.mapPut("value", renderer.render());
}
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java
index 99e5545..a8500a4 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/JsonParserHelper.java
@@ -21,33 +21,33 @@ package org.apache.isis.viewer.restfulobjects.server.resources;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.oid.Oid;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder;
import org.apache.isis.viewer.restfulobjects.rendering.util.Util;
/**
* Utility class that encapsulates the logic for parsing some content (JSON, or a simple string that is JSON)
- * into an{@link org.apache.isis.metamodel.adapter.ObjectAdapter} of a specified
+ * into an{@link ManagedObject} of a specified
* {@link org.apache.isis.metamodel.spec.ObjectSpecification type}.
*/
public class JsonParserHelper {
private final static Pattern OBJECT_OID = Pattern.compile(".*objects\\/([^/]+)\\/(.+)");
- private final RendererContext rendererContext;
+ private final IResourceContext resourceContext;
private final ObjectSpecification objectSpec;
private final JsonValueEncoder jsonValueEncoder;
- public JsonParserHelper(RendererContext rendererContext, ObjectSpecification objectSpecification) {
+ public JsonParserHelper(IResourceContext resourceContext, ObjectSpecification objectSpecification) {
this.objectSpec = objectSpecification;
- this.rendererContext = rendererContext;
- this.jsonValueEncoder = rendererContext.getServiceRegistry()
+ this.resourceContext = resourceContext;
+ this.jsonValueEncoder = resourceContext.getServiceRegistry()
.lookupServiceElseFail(JsonValueEncoder.class);
}
@@ -57,12 +57,12 @@ public class JsonParserHelper {
* - as per {@link org.apache.isis.viewer.restfulobjects.rendering.util.Util#asStringUtf8(java.io.InputStream)}
* @return
*/
- ObjectAdapter parseAsMapWithSingleValue(final String bodyAsString) {
+ ManagedObject parseAsMapWithSingleValue(final String bodyAsString) {
final JsonRepresentation arguments = Util.readAsMap(bodyAsString);
return parseAsMapWithSingleValue(arguments);
}
- ObjectAdapter parseAsMapWithSingleValue(final JsonRepresentation arguments) {
+ ManagedObject parseAsMapWithSingleValue(final JsonRepresentation arguments) {
final JsonRepresentation representation = arguments.getRepresentation("value");
if (arguments.size() != 1 || representation == null) {
throw RestfulObjectsApplicationException.createWithMessage(RestfulResponse.HttpStatusCode.BAD_REQUEST, "Body should be a map with a single key 'value' whose value represents an instance of type '%s'", resourceFor(objectSpec));
@@ -77,7 +77,7 @@ public class JsonParserHelper {
* - expected to be either a String or a Map (ie from within a
* List, built by parsing a JSON structure).
*/
- ObjectAdapter objectAdapterFor(final JsonRepresentation argRepr) {
+ ManagedObject objectAdapterFor(final JsonRepresentation argRepr) {
if (argRepr == null) {
return null;
@@ -131,7 +131,7 @@ public class JsonParserHelper {
throw new IllegalArgumentException(reason);
}
- final ObjectAdapter objectAdapter = rendererContext.getObjectAdapterElseNull(oidFromHref);
+ final ManagedObject objectAdapter = resourceContext.getObjectAdapterElseNull(oidFromHref);
if (objectAdapter == null) {
final String reason = "'href' does not reference a known entity";
argRepr.mapPut("invalidReason", reason);
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java
index 1020753..795afc4 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java
@@ -22,15 +22,15 @@ import java.util.List;
import java.util.Map;
import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
/**
@@ -39,30 +39,30 @@ import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplication
*/
public class ObjectActionArgHelper {
- private final RendererContext rendererContext;
- private final ObjectAdapter objectAdapter;
+ private final IResourceContext resourceContext;
+ private final ManagedObject objectAdapter;
private final ObjectAction action;
public ObjectActionArgHelper(
- final RendererContext rendererContext,
- final ObjectAdapter objectAdapter,
+ final IResourceContext resourceContext,
+ final ManagedObject objectAdapter,
final ObjectAction action) {
- this.rendererContext = rendererContext;
+ this.resourceContext = resourceContext;
this.objectAdapter = objectAdapter;
this.action = action;
}
- public List<ObjectAdapter> parseAndValidateArguments(final JsonRepresentation arguments) {
+ public List<ManagedObject> parseAndValidateArguments(final JsonRepresentation arguments) {
final List<JsonRepresentation> argList = argListFor(action, arguments);
- final List<ObjectAdapter> argAdapters = _Lists.newArrayList();
+ final List<ManagedObject> argAdapters = _Lists.newArrayList();
final List<ObjectActionParameter> parameters = action.getParameters();
boolean valid = true;
for (int i = 0; i < argList.size(); i++) {
final JsonRepresentation argRepr = argList.get(i);
final ObjectSpecification paramSpec = parameters.get(i).getSpecification();
try {
- final ObjectAdapter argAdapter = new JsonParserHelper(rendererContext, paramSpec).objectAdapterFor(argRepr);
+ final ManagedObject argAdapter = new JsonParserHelper(resourceContext, paramSpec).objectAdapterFor(argRepr);
argAdapters.add(argAdapter);
// validate individual arg
@@ -80,7 +80,7 @@ public class ObjectActionArgHelper {
}
// validate entire argument set
- final ObjectAdapter[] argArray = argAdapters.toArray(new ObjectAdapter[0]);
+ final ManagedObject[] argArray = argAdapters.toArray(new ManagedObject[0]);
final Consent consent = action.isArgumentSetValid(objectAdapter, argArray, InteractionInitiatedBy.USER);
if (consent.isVetoed()) {
arguments.mapPut("x-ro-invalidReason", consent.getReason());
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterAccessHelper.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterAccessHelper.java
index 1700fa2..525f5fd 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterAccessHelper.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterAccessHelper.java
@@ -19,9 +19,9 @@
package org.apache.isis.viewer.restfulobjects.server.resources;
import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.metamodel.spec.feature.ObjectAssociation;
@@ -29,13 +29,13 @@ import org.apache.isis.metamodel.spec.feature.ObjectMember;
import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberType;
/**
* Utility class that encapsulates the logic for checking access to the specified
- * {@link org.apache.isis.metamodel.adapter.ObjectAdapter object}'s members.
+ * {@link ManagedObject}'s members.
*/
public class ObjectAdapterAccessHelper {
@@ -52,19 +52,19 @@ public class ObjectAdapterAccessHelper {
}
}
- private final ObjectAdapter objectAdapter;
- private final RendererContext rendererContext;
+ private final ManagedObject objectAdapter;
+ private final IResourceContext resourceContext;
- public ObjectAdapterAccessHelper(RendererContext rendererContext, ObjectAdapter objectAdapter) {
+ public ObjectAdapterAccessHelper(IResourceContext resourceContext, ManagedObject objectAdapter) {
this.objectAdapter = objectAdapter;
- this.rendererContext = rendererContext;
+ this.resourceContext = resourceContext;
}
public OneToOneAssociation getPropertyThatIsVisibleForIntent(
final String propertyId, final Intent intent) {
//[ahuber] unused, any side-effects?
- final Where where = rendererContext.getWhere();
+ final Where where = resourceContext.getWhere();
final ObjectAssociation association;
try {
@@ -87,7 +87,7 @@ public class ObjectAdapterAccessHelper {
final String collectionId, final Intent intent) {
//[ahuber] unused, any side-effects?
- final Where where = rendererContext.getWhere();
+ final Where where = resourceContext.getWhere();
final ObjectAssociation association;
try {
@@ -108,7 +108,7 @@ public class ObjectAdapterAccessHelper {
final String actionId, final Intent intent) {
//[ahuber] unused, any side-effects?
- final Where where = rendererContext.getWhere();
+ final Where where = resourceContext.getWhere();
final ObjectAction action;
try {
@@ -126,7 +126,7 @@ public class ObjectAdapterAccessHelper {
public <T extends ObjectMember> T memberThatIsVisibleForIntent(
final T objectMember, final MemberType memberType, final Intent intent) {
- final Where where = rendererContext.getWhere();
+ final Where where = resourceContext.getWhere();
final String memberId = objectMember.getId();
final Consent visibilityConsent =
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterUpdateHelper.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterUpdateHelper.java
index 94f0152..740fe66 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterUpdateHelper.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectAdapterUpdateHelper.java
@@ -20,9 +20,9 @@ package org.apache.isis.viewer.restfulobjects.server.resources;
import java.util.stream.Stream;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.Consent;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.Contributed;
import org.apache.isis.metamodel.spec.feature.ObjectAssociation;
@@ -32,7 +32,7 @@ import org.apache.isis.viewer.restfulobjects.server.ResourceContext;
/**
* Utility class that encapsulates the logic for updating an
- * {@link org.apache.isis.metamodel.adapter.ObjectAdapter object}'s with the
+ * {@link ManagedObject}'s with the
* values of a {@link org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation}.
*
* <p>
@@ -41,10 +41,10 @@ import org.apache.isis.viewer.restfulobjects.server.ResourceContext;
*/
public class ObjectAdapterUpdateHelper {
- private final ObjectAdapter objectAdapter;
+ private final ManagedObject objectAdapter;
private final ResourceContext resourceContext;
- public ObjectAdapterUpdateHelper(ResourceContext resourceContext, ObjectAdapter objectAdapter) {
+ public ObjectAdapterUpdateHelper(ResourceContext resourceContext, ManagedObject objectAdapter) {
this.objectAdapter = objectAdapter;
this.resourceContext = resourceContext;
}
@@ -143,7 +143,7 @@ public class ObjectAdapterUpdateHelper {
// ok, we have a value, and
// (if validating) then the property is not invisible, and is not disabled
- final ObjectAdapter valueAdapter;
+ final ManagedObject valueAdapter;
try {
valueAdapter = new JsonParserHelper(resourceContext, propertySpec).objectAdapterFor(propertyRepr);
} catch(IllegalArgumentException ex) {
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
index bb69664..f3f48d9 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
@@ -34,8 +34,8 @@ import org.apache.isis.applib.services.command.Command;
import org.apache.isis.applib.services.command.CommandContext;
import org.apache.isis.commons.internal.url.UrlDecoderUtil;
import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
import org.apache.isis.runtime.system.context.IsisContext;
import org.apache.isis.runtime.system.session.IsisSession;
@@ -123,8 +123,8 @@ public abstract class ResourceAbstract {
// Isis integration
// //////////////////////////////////////////////////////////////
- protected ObjectAdapter getObjectAdapterElseThrowNotFound(String domainType, final String instanceId) {
- ObjectAdapter objectAdapter = getObjectAdapterElseNull(domainType, instanceId);
+ protected ManagedObject getObjectAdapterElseThrowNotFound(String domainType, final String instanceId) {
+ ManagedObject objectAdapter = getObjectAdapterElseNull(domainType, instanceId);
if (objectAdapter == null) {
final String instanceIdUnencoded = org.apache.isis.viewer.restfulobjects.rendering.UrlDecoderUtils.urlDecode(instanceId);
@@ -134,16 +134,16 @@ public abstract class ResourceAbstract {
return objectAdapter;
}
- protected ObjectAdapter getObjectAdapterElseNull(String domainType, final String instanceId) {
+ protected ManagedObject getObjectAdapterElseNull(String domainType, final String instanceId) {
return resourceContext.getObjectAdapterElseNull(domainType, instanceId);
}
- protected ObjectAdapter getServiceAdapter(final String serviceId) {
+ protected ManagedObject getServiceAdapter(final String serviceId) {
val metaModelContext = resourceContext.getServiceRegistry()
.lookupServiceElseFail(MetaModelContext.class);
- final ObjectAdapter serviceAdapter = metaModelContext.lookupServiceAdapterById(serviceId);
+ final ManagedObject serviceAdapter = metaModelContext.lookupServiceAdapterById(serviceId);
if(serviceAdapter==null) {
throw RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.NOT_FOUND,
"Could not locate service '%s'", serviceId);
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java
index bb551cb..b4ba8d6 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/UserReprRenderer.java
@@ -24,13 +24,13 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
public class UserReprRenderer extends ReprRendererAbstract<UserReprRenderer, AuthenticationSession> {
- UserReprRenderer(final RendererContext rendererContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
- super(rendererContext, linkFollower, RepresentationType.USER, representation);
+ UserReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ super(resourceContext, linkFollower, RepresentationType.USER, representation);
}
@Override
@@ -57,12 +57,12 @@ public class UserReprRenderer extends ReprRendererAbstract<UserReprRenderer, Aut
}
private void addLinkToSelf() {
- final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SELF.getName(), RepresentationType.USER, "user").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.SELF.getName(), RepresentationType.USER, "user").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final UserReprRenderer renderer = new UserReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
- renderer.with(getRendererContext().getAuthenticationSession());
+ final UserReprRenderer renderer = new UserReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
+ renderer.with(getResourceContext().getAuthenticationSession());
link.mapPut("value", renderer.render());
}
@@ -70,18 +70,18 @@ public class UserReprRenderer extends ReprRendererAbstract<UserReprRenderer, Aut
}
private void addLinkToUp() {
- final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(resourceContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final HomePageReprRenderer renderer = new HomePageReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
link.mapPut("value", renderer.render());
}
getLinks().arrayAdd(link);
}
private void addLinkToLogout() {
- final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.LOGOUT.getName(), RepresentationType.HOME_PAGE, "user/logout").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(resourceContext, Rel.LOGOUT.getName(), RepresentationType.HOME_PAGE, "user/logout").build();
getLinks().arrayAdd(link);
}
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java
index 5b81a83..9933777 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java
@@ -27,7 +27,7 @@ import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
-import org.apache.isis.viewer.restfulobjects.rendering.RendererContext;
+import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
import org.apache.isis.viewer.restfulobjects.server.RestfulObjectsApplication;
@@ -35,7 +35,7 @@ public class VersionReprRenderer extends ReprRendererAbstract<VersionReprRendere
private static final String META_INF_POM_PROPERTIES = "/META-INF/maven/org.apache.isis.viewer/isis-viewer-restfulobjects-server/pom.properties";
- VersionReprRenderer(final RendererContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
+ VersionReprRenderer(final IResourceContext resourceContext, final LinkFollowSpecs linkFollower, final JsonRepresentation representation) {
super(resourceContext, linkFollower, RepresentationType.VERSION, representation);
}
@@ -62,11 +62,11 @@ public class VersionReprRenderer extends ReprRendererAbstract<VersionReprRendere
}
private void addLinkToSelf() {
- final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SELF.getName(), RepresentationType.VERSION, "version").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.SELF.getName(), RepresentationType.VERSION, "version").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final VersionReprRenderer renderer = new VersionReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final VersionReprRenderer renderer = new VersionReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
link.mapPut("value", renderer.render());
}
@@ -74,11 +74,11 @@ public class VersionReprRenderer extends ReprRendererAbstract<VersionReprRendere
}
private void addLinkToUp() {
- final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build();
+ final JsonRepresentation link = LinkBuilder.newBuilder(resourceContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build();
final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links");
if (linkFollower.matches(link)) {
- final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap());
+ final HomePageReprRenderer renderer = new HomePageReprRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap());
link.mapPut("value", renderer.render());
}
getLinks().arrayAdd(link);
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
index 79d7966..9d49a7f 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
@@ -92,7 +92,7 @@ class ShiroSecmanLdapTest extends AbstractShiroTest {
@Inject ServiceInjector serviceInjector;
@BeforeEach
- void setupSvenInDb() {
+ void beforeEach() {
setSecurityManager(serviceInjector, "classpath:shiro-secman-ldap.ini");
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
index 1d9f723..88e2207 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
@@ -21,6 +21,7 @@ package org.apache.isis.testdomain.shiro;
import javax.inject.Inject;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@@ -36,6 +37,7 @@ import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryp
import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
+import org.apache.isis.security.shiro.WebModuleShiro;
import org.apache.isis.testdomain.Incubating;
import org.apache.isis.testdomain.Smoketest;
import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
@@ -91,6 +93,11 @@ class ShiroSecmanLdap_restfulStressTest extends AbstractShiroTest {
@Inject SecurityModuleConfig securityConfig;
@Inject ServiceInjector serviceInjector;
+ @BeforeAll
+ static void setup() {
+ WebModuleShiro.setShiroIniResource("classpath:shiro-secman-ldap.ini");
+ }
+
@BeforeEach
void beforeEach() {
diff --git a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScript.java b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScript.java
index 930986e..da6f60f 100644
--- a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScript.java
+++ b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/FixtureScript.java
@@ -666,7 +666,7 @@ extends AbstractViewModel {
return childFixtureScript;
default:
- throw _Exceptions.unmatchedCase("Execution strategy: '%s' not recognized", executionStrategy);
+ throw _Exceptions.illegalArgument("Execution strategy: '%s' not recognized", executionStrategy);
}
}