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 2020/05/15 05:27:36 UTC
[isis] 01/02: ISIS-2340: converts BookmarkableModel
class->interface, introduces ManagedObjectModel
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 7c6997d9819f87bf2016fe2b823b2b119699971c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri May 15 05:55:13 2020 +0200
ISIS-2340: converts BookmarkableModel class->interface, introduces
ManagedObjectModel
---
.../webapp/context/IsisWebAppCommonContext.java | 2 +-
.../viewer/wicket/model/models/ActionModel.java | 6 +-
.../wicket/model/models/BookmarkableModel.java | 17 +-
.../viewer/wicket/model/models/EntityModel.java | 4 +-
.../wicket/model/models/FormExecutorContext.java | 3 +-
.../wicket/model/models/ManagedObjectModel.java | 175 +++++++++++++++++++++
.../viewer/wicket/model/models/ModelAbstract.java | 3 +-
.../viewer/wicket/ui/components/LabelBase.java | 4 +-
.../wicket/ui/components/WebComponentBase.java | 3 +-
.../isis/viewer/wicket/ui/pages/WebPageBase.java | 5 +-
.../wicket/ui/panels/FormExecutorDefault.java | 5 +-
.../wicket/ui/panels/FormExecutorStrategy.java | 6 +-
.../isis/viewer/wicket/ui/panels/PanelBase.java | 5 +-
.../AuthenticatedWebSessionForIsis.java | 6 +-
14 files changed, 207 insertions(+), 37 deletions(-)
diff --git a/core/webapp/src/main/java/org/apache/isis/core/webapp/context/IsisWebAppCommonContext.java b/core/webapp/src/main/java/org/apache/isis/core/webapp/context/IsisWebAppCommonContext.java
index d9be52b..7038cf5 100644
--- a/core/webapp/src/main/java/org/apache/isis/core/webapp/context/IsisWebAppCommonContext.java
+++ b/core/webapp/src/main/java/org/apache/isis/core/webapp/context/IsisWebAppCommonContext.java
@@ -136,7 +136,7 @@ public class IsisWebAppCommonContext implements MetaModelContext.Delegating {
// -- FOR THOSE THAT IMPLEMENT BY DELEGATION
- public static interface Delegating {
+ public static interface HasCommonContext {
IsisWebAppCommonContext getCommonContext();
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 63e996e..d7ca6a7 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -63,9 +63,9 @@ import org.apache.isis.viewer.wicket.model.mementos.ActionMemento;
import lombok.val;
-public class ActionModel
-extends BookmarkableModel<ManagedObject>
-implements FormUiModel, FormExecutorContext {
+public final class ActionModel
+extends ManagedObjectModel
+implements FormUiModel, FormExecutorContext, BookmarkableModel<ManagedObject> {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java
index cbbdf90..d5c3514 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java
@@ -21,23 +21,10 @@ package org.apache.isis.viewer.wicket.model.models;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
import org.apache.isis.viewer.common.model.HasTitle;
-public abstract class BookmarkableModel<T>
-extends ModelAbstract<T>
-implements HasTitle {
-
- private static final long serialVersionUID = 1L;
-
- public BookmarkableModel(IsisWebAppCommonContext commonContext) {
- super(commonContext);
- }
-
- public BookmarkableModel(IsisWebAppCommonContext commonContext, T t) {
- super(commonContext, t);
- }
-
+public interface BookmarkableModel<T>
+extends HasTitle {
/**
* So can be bookmarked / added to <tt>BookmarkedPagesModel</tt>.
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 013df02..75e9da6 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -68,8 +68,8 @@ import lombok.extern.log4j.Log4j2;
*/
@Log4j2
public class EntityModel
-extends BookmarkableModel<ManagedObject>
-implements ObjectAdapterModel, UiHintContainer, ObjectUiModel {
+extends ManagedObjectModel
+implements ObjectAdapterModel, UiHintContainer, ObjectUiModel, BookmarkableModel<ManagedObject> {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
index 2f4a8da..b4c8ab7 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/FormExecutorContext.java
@@ -20,10 +20,11 @@
package org.apache.isis.viewer.wicket.model.models;
import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext.HasCommonContext;
import org.apache.isis.viewer.common.model.HasParentUiModel;
public interface FormExecutorContext
-extends HasParentUiModel<EntityModel> {
+extends HasParentUiModel<EntityModel>, HasCommonContext {
PromptStyle getPromptStyle();
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
new file mode 100644
index 0000000..2b6cb54
--- /dev/null
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ManagedObjectModel.java
@@ -0,0 +1,175 @@
+/*
+ * 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.wicket.model.models;
+
+import java.util.Objects;
+import java.util.Optional;
+
+import javax.annotation.Nullable;
+
+import org.apache.isis.applib.annotation.BookmarkPolicy;
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.core.commons.internal.base._Casts;
+import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.core.webapp.context.memento.ObjectMemento;
+
+import lombok.NonNull;
+import lombok.val;
+
+/**
+ *
+ * @since 2.0
+ *
+ */
+public abstract class ManagedObjectModel
+extends ModelAbstract<ManagedObject> {
+
+ private static final long serialVersionUID = 1L;
+
+ private ObjectMemento memento;
+
+ protected ManagedObjectModel(
+ @NonNull IsisWebAppCommonContext commonContext) {
+ this(commonContext, null);
+ }
+
+ protected ManagedObjectModel(
+ @NonNull IsisWebAppCommonContext commonContext,
+ @Nullable ObjectMemento initialMemento) {
+
+ super(commonContext);
+ this.memento = initialMemento;
+ }
+
+
+ @Override
+ protected ManagedObject load() {
+ if (memento == null) {
+ return null;
+ }
+ return super.getCommonContext().reconstructObject(memento);
+ }
+
+ @Override
+ public void setObject(final ManagedObject adapter) {
+
+ if(ManagedObject.isNullOrUnspecifiedOrEmpty(adapter)) {
+ super.setObject(null);
+ return;
+ }
+
+ super.setObject(adapter);
+
+ if(adapter.getSpecification().isParentedOrFreeCollection()) {
+ val pojo = adapter.getPojo();
+ memento = super.getMementoService()
+ .mementoForPojos(_Casts.uncheckedCast(pojo), getTypeOfSpecificationId()
+ .orElseGet(()->adapter.getElementSpecification().get().getSpecId()));
+ } else {
+
+ memento = super.getMementoService().mementoForObject(adapter);
+ }
+ }
+
+ public Bookmark asHintingBookmarkIfSupported() {
+ return memento!=null
+ ? memento.asHintingBookmarkIfSupported()
+ : null;
+ }
+
+ public Bookmark asBookmarkIfSupported() {
+ return memento!=null
+ ? memento.asBookmarkIfSupported()
+ : null;
+ }
+
+ public String oidStringIfSupported() {
+ return memento!=null
+ ? memento.toString()
+ : null;
+ }
+
+ /**
+ * @implNote free of side-effects, used for serialization
+ */
+ public Optional<ObjectSpecId> getTypeOfSpecificationId() {
+ return Optional.ofNullable(memento)
+ .map(ObjectMemento::getObjectSpecId);
+ }
+
+ public boolean hasAsRootPolicy() {
+ return hasBookmarkPolicy(BookmarkPolicy.AS_ROOT);
+ }
+
+ public boolean hasAsChildPolicy() {
+ return hasBookmarkPolicy(BookmarkPolicy.AS_CHILD);
+ }
+
+ private boolean hasBookmarkPolicy(final BookmarkPolicy policy) {
+ final BookmarkPolicyFacet facet = getBookmarkPolicyFacetIfAny();
+ return facet != null && facet.value() == policy;
+ }
+
+ private BookmarkPolicyFacet getBookmarkPolicyFacetIfAny() {
+ final ObjectSpecId specId = getTypeOfSpecificationId().orElse(null);
+ final ObjectSpecification objectSpec = super.getSpecificationLoader().lookupBySpecIdElseLoad(specId);
+ return objectSpec.getFacet(BookmarkPolicyFacet.class);
+ }
+
+
+ private transient ObjectSpecification objectSpec;
+ public ObjectSpecification getTypeOfSpecification() {
+ if(objectSpec==null) {
+ val specId = getTypeOfSpecificationId().orElse(null);
+ objectSpec = super.getSpecificationLoader().lookupBySpecIdElseLoad(specId);
+ }
+ return objectSpec;
+ }
+
+
+ @Deprecated //TODO do not expose this implementation detail
+ public ObjectMemento memento() {
+ return memento;
+ }
+
+ @Deprecated //TODO do not expose this implementation detail
+ public void memento(ObjectMemento memento) {
+ this.memento = memento;
+ }
+
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(memento);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if(obj instanceof ManagedObjectModel) {
+ val other = (ManagedObjectModel) obj;
+ return Objects.equals(this.memento, other.memento);
+ }
+ return false;
+ }
+
+}
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
index 8fd7a49..06c0aab 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ModelAbstract.java
@@ -23,6 +23,7 @@ import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext.HasCommonContext;
import lombok.NonNull;
@@ -32,7 +33,7 @@ import lombok.NonNull;
*/
public abstract class ModelAbstract<T>
extends LoadableDetachableModel<T>
-implements IsisWebAppCommonContext.Delegating {
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/LabelBase.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/LabelBase.java
index 88988b8..8b2fe47 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/LabelBase.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/LabelBase.java
@@ -18,13 +18,13 @@
*/
package org.apache.isis.viewer.wicket.ui.components;
-import org.apache.wicket.markup.html.WebComponent;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.viewer.wicket.WebAppContextPath;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext.HasCommonContext;
import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
/**
@@ -33,7 +33,7 @@ import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
*/
public abstract class LabelBase
extends Label
-implements IsisWebAppCommonContext.Delegating {
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/WebComponentBase.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/WebComponentBase.java
index 9aea7b6..91828f6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/WebComponentBase.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/WebComponentBase.java
@@ -24,6 +24,7 @@ import org.apache.wicket.model.IModel;
import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.viewer.wicket.WebAppContextPath;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext.HasCommonContext;
import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
/**
@@ -32,7 +33,7 @@ import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
*/
public abstract class WebComponentBase
extends WebComponent
-implements IsisWebAppCommonContext.Delegating {
+implements HasCommonContext {
public WebComponentBase(final String id) {
super(id);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
index 4ecfec5..345657d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
@@ -26,13 +26,16 @@ import org.apache.isis.core.config.IsisConfiguration;
import org.apache.isis.core.config.viewer.wicket.WebAppContextPath;
import org.apache.isis.core.runtime.iactn.IsisInteractionFactory;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext.HasCommonContext;
import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
/**
* Provides all the system dependencies for sub-classes.
* @since 2.0
*/
-public abstract class WebPageBase extends WebPage implements IsisWebAppCommonContext.Delegating {
+public abstract class WebPageBase
+extends WebPage
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index 7265d6d..a78e541 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -56,12 +56,11 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
import org.apache.isis.core.security.authentication.MessageBroker;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
import org.apache.isis.core.webapp.context.memento.ObjectMemento;
-import org.apache.isis.viewer.common.model.HasParentUiModel;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
-import org.apache.isis.viewer.wicket.model.models.BookmarkableModel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.FormExecutor;
+import org.apache.isis.viewer.wicket.model.models.FormExecutorContext;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobOrClobPanelAbstract;
import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
@@ -72,7 +71,7 @@ import lombok.val;
import lombok.extern.log4j.Log4j2;
@Log4j2
-public final class FormExecutorDefault<M extends BookmarkableModel<ManagedObject> & HasParentUiModel<EntityModel>>
+public final class FormExecutorDefault<M extends FormExecutorContext>
implements FormExecutor {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java
index 633840c..4977c8a 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorStrategy.java
@@ -21,11 +21,9 @@ package org.apache.isis.viewer.wicket.ui.panels;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.viewer.common.model.HasParentUiModel;
-import org.apache.isis.viewer.wicket.model.models.BookmarkableModel;
-import org.apache.isis.viewer.wicket.model.models.EntityModel;
+import org.apache.isis.viewer.wicket.model.models.FormExecutorContext;
-public interface FormExecutorStrategy<M extends BookmarkableModel<ManagedObject> & HasParentUiModel<EntityModel>> {
+public interface FormExecutorStrategy<M extends FormExecutorContext> {
M getModel();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
index 2bd6f7c..fea5f5a 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
@@ -34,6 +34,7 @@ import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.runtime.iactn.IsisInteractionFactory;
import org.apache.isis.core.security.authentication.MessageBroker;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext.HasCommonContext;
import org.apache.isis.viewer.common.model.header.HeaderUiModel;
import org.apache.isis.viewer.common.model.header.HeaderUiModelProvider;
import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
@@ -52,7 +53,9 @@ import org.apache.isis.viewer.wicket.ui.pages.PageNavigationService;
* Provides the <em>common context</em> for all implementing sub-classes.
* @since 2.0
*/
-public class PanelBase<T> extends GenericPanel<T> implements IsisWebAppCommonContext.Delegating {
+public class PanelBase<T>
+extends GenericPanel<T>
+implements HasCommonContext {
private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
index 6b02ef5..212e246 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
@@ -39,6 +39,7 @@ import org.apache.isis.core.security.authentication.AuthenticationRequestPasswor
import org.apache.isis.core.security.authentication.AuthenticationSession;
import org.apache.isis.core.security.authentication.manager.AuthenticationManager;
import org.apache.isis.core.webapp.context.IsisWebAppCommonContext;
+import org.apache.isis.core.webapp.context.IsisWebAppCommonContext.HasCommonContext;
import org.apache.isis.viewer.wicket.model.models.BookmarkedPagesModel;
import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModel;
import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModelProvider;
@@ -53,8 +54,9 @@ import lombok.val;
* also tracks thread usage (so that multiple concurrent requests are all
* associated with the same session).
*/
-public class AuthenticatedWebSessionForIsis extends AuthenticatedWebSession
-implements BreadcrumbModelProvider, BookmarkedPagesModelProvider, IsisWebAppCommonContext.Delegating {
+public class AuthenticatedWebSessionForIsis
+extends AuthenticatedWebSession
+implements BreadcrumbModelProvider, BookmarkedPagesModelProvider, HasCommonContext {
private static final long serialVersionUID = 1L;