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/11/19 20:11:26 UTC

[isis] branch 2177-object-manager updated: ISIS-2177: removes Oid_State, marks Bookmark.ObjectState deprecated

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 2177-object-manager
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/2177-object-manager by this push:
     new f34def4  ISIS-2177: removes Oid_State, marks Bookmark.ObjectState deprecated
f34def4 is described below

commit f34def4d254dc198c37d62e781a4d8c4cf3845d1
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Nov 19 21:11:18 2019 +0100

    ISIS-2177: removes Oid_State, marks Bookmark.ObjectState deprecated
---
 .../isis/applib/services/bookmark/Bookmark.java    | 18 ++---
 .../org/apache/isis/metamodel/adapter/oid/Oid.java | 12 +--
 .../isis/metamodel/adapter/oid/Oid_Marshaller.java |  8 +-
 .../isis/metamodel/adapter/oid/Oid_Root.java       | 36 ++++++---
 .../isis/metamodel/adapter/oid/Oid_State.java      | 93 ----------------------
 5 files changed, 46 insertions(+), 121 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
index ebfcd5c..c685ba0 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
@@ -46,16 +46,23 @@ public class Bookmark implements Serializable {
     
     @Getter private final String objectType;
     @Getter private final String identifier;
+    
     @Getter private final ObjectState objectState;
     
+    /**
+     * @deprecated since 2.0, only kept for compatibility with common schema v1.1
+     */
+    @Deprecated
     public enum ObjectState {
         PERSISTENT("", BookmarkObjectState.PERSISTENT),
         TRANSIENT("!", BookmarkObjectState.TRANSIENT), // same as OidMarshaller
         VIEW_MODEL("*", BookmarkObjectState.VIEW_MODEL); // same as OidMarshaller
 
         @Getter private final String code;
+        
         private final BookmarkObjectState bookmarkObjectState;
 
+        
         ObjectState(
                 final String code,
                 final BookmarkObjectState bookmarkObjectState) {
@@ -63,16 +70,6 @@ public class Bookmark implements Serializable {
             this.bookmarkObjectState = bookmarkObjectState;
         }
 
-        public boolean isTransient() {
-            return this == TRANSIENT;
-        }
-        public boolean isViewModel() {
-            return this == VIEW_MODEL;
-        }
-        public boolean isPersistent() {
-            return this == PERSISTENT;
-        }
-
         public static ObjectState from(final String objectType) {
             if(objectType.startsWith(TRANSIENT.code)) return TRANSIENT;
             if(objectType.startsWith(VIEW_MODEL.code)) return VIEW_MODEL;
@@ -96,6 +93,7 @@ public class Bookmark implements Serializable {
             }
         }
 
+        @Deprecated
         public BookmarkObjectState toBookmarkState() {
             return bookmarkObjectState;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid.java
index 6e0a394..eca322f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid.java
@@ -100,20 +100,22 @@ public interface Oid extends Encodable {
         // -- LEGACY
 
         public static RootOid ofBookmark(Bookmark bookmark) {
-            return Oid_Root.of(ObjectSpecId.of(bookmark.getObjectType()), 
-                    bookmark.getIdentifier(), Oid_State.from(bookmark));
+            return Oid_Root.of(
+                    ObjectSpecId.of(bookmark.getObjectType()), 
+                    bookmark.getIdentifier(), 
+                    bookmark.getObjectState());
         }
 
         public static RootOid viewmodelOf(ObjectSpecId objectSpecId, String mementoStr) {
-            return Oid_Root.of(objectSpecId, mementoStr, Oid_State.VIEWMODEL);
+            return Oid_Root.of(objectSpecId, mementoStr, Bookmark.ObjectState.VIEW_MODEL);
         }
 
         public static RootOid transientOf(ObjectSpecId objectSpecId, String identifier) {
-            return Oid_Root.of(objectSpecId, identifier, Oid_State.TRANSIENT);
+            return Oid_Root.of(objectSpecId, identifier, Bookmark.ObjectState.TRANSIENT);
         }
 
         public static RootOid persistentOf(ObjectSpecId objectSpecId, String identifier) {
-            return Oid_Root.of(objectSpecId, identifier, Oid_State.PERSISTENT);
+            return Oid_Root.of(objectSpecId, identifier, Bookmark.ObjectState.PERSISTENT);
         }
 
         // -- PARENTED COLLECTIONS
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Marshaller.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Marshaller.java
index d4c58ed..f3d99c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Marshaller.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Marshaller.java
@@ -148,13 +148,13 @@ final class Oid_Marshaller implements Oid.Marshaller, Oid.Unmarshaller {
         }
 
         final String isTransientOrViewModelStr = getGroup(matcher, 3);
-        final Oid_State state;
+        final Bookmark.ObjectState state;
         if("!".equals(isTransientOrViewModelStr)) {
-            state = Oid_State.TRANSIENT;
+            state = Bookmark.ObjectState.TRANSIENT;
         } else if("*".equals(isTransientOrViewModelStr)) {
-            state = Oid_State.VIEWMODEL;
+            state = Bookmark.ObjectState.VIEW_MODEL;
         } else {
-            state = Oid_State.PERSISTENT;
+            state = Bookmark.ObjectState.PERSISTENT;
         }
 
         final String rootObjectType = getGroup(matcher, 4);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Root.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Root.java
index fbd94e1..d12da9e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Root.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_Root.java
@@ -28,6 +28,7 @@ import org.apache.isis.commons.internal.encoding.DataOutputExtended;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.commons.internal.url.UrlDecoderUtil;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
+import org.apache.isis.schema.common.v1.BookmarkObjectState;
 import org.apache.isis.schema.common.v1.OidDto;
 
 import static org.apache.isis.commons.internal.base._With.requires;
@@ -37,18 +38,22 @@ import lombok.val;
 final class Oid_Root implements RootOid {
 
     // -- fields
-    private final static long serialVersionUID = 1L;
+    private final static long serialVersionUID = 2L;
 
     private final ObjectSpecId objectSpecId;
     private final String identifier;
-    private final Oid_State state;
+    private final Bookmark.ObjectState state;
     private final int hashCode;
 
-    public static Oid_Root of(final ObjectSpecId objectSpecId, final String identifier, final Oid_State state) {
+    public static Oid_Root of(
+            ObjectSpecId objectSpecId, 
+            String identifier, 
+            Bookmark.ObjectState state) {
+        
         return new Oid_Root(objectSpecId, identifier, state);
     }
 
-    private Oid_Root(final ObjectSpecId objectSpecId, final String identifier, final Oid_State state) {
+    private Oid_Root(ObjectSpecId objectSpecId, String identifier, Bookmark.ObjectState state) {
 
         requires(objectSpecId, "objectSpecId");
         requires(identifier, "identifier");
@@ -120,27 +125,40 @@ final class Oid_Root implements RootOid {
 
     @Override
     public boolean isTransient() {
-        return state.isTransient();
+        return state == Bookmark.ObjectState.TRANSIENT;
     }
 
     @Override
     public boolean isViewModel() {
-        return state.isViewModel();
+        return state == Bookmark.ObjectState.VIEW_MODEL;
     }
 
     @Override
     public boolean isPersistent() {
-        return state.isPersistent();
+        return state == Bookmark.ObjectState.PERSISTENT;
     }
 
     @Override
     public Bookmark asBookmark() {
-        return state.bookmarkOf(this);
+        val objectType = state.getCode() + getObjectSpecId().asString();
+        val identifier = getIdentifier();
+        return new Bookmark(objectType, identifier);
     }
 
     @Override
     public OidDto asOidDto() {
-        return state.toOidDto(this);
+        
+        val oidDto = new OidDto();
+
+        oidDto.setType(getObjectSpecId().asString());
+        oidDto.setId(getIdentifier());
+
+        val bookmarkState = state.toBookmarkState();
+        // persistent is assumed if not specified...
+        oidDto.setObjectState(
+                bookmarkState != BookmarkObjectState.PERSISTENT ? bookmarkState : null);
+
+        return oidDto;
     }
 
     // -- equals, hashCode
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_State.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_State.java
deleted file mode 100644
index 888afc3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/oid/Oid_State.java
+++ /dev/null
@@ -1,93 +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.metamodel.adapter.oid;
-
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.schema.common.v1.BookmarkObjectState;
-import org.apache.isis.schema.common.v1.OidDto;
-
-enum Oid_State {
-    PERSISTENT,
-    TRANSIENT,
-    VIEWMODEL;
-
-    public boolean isTransient() {
-        return this == TRANSIENT;
-    }
-    public boolean isViewModel() {
-        return this == VIEWMODEL;
-    }
-    public boolean isPersistent() {
-        return this == PERSISTENT;
-    }
-
-    public static Oid_State from(final Bookmark bookmark) {
-        final Bookmark.ObjectState objectState = bookmark.getObjectState();
-        return from(objectState);
-    }
-
-    public static Oid_State from(final Bookmark.ObjectState objectState) {
-        switch (objectState) {
-        case VIEW_MODEL:
-            return VIEWMODEL;
-        case TRANSIENT:
-            return TRANSIENT;
-        case PERSISTENT:
-            return PERSISTENT;
-        default:
-            throw _Exceptions.unmatchedCase(objectState);
-        }
-    }
-    public Bookmark.ObjectState asBookmarkObjectState() {
-        switch (this) {
-        case VIEWMODEL:
-            return Bookmark.ObjectState.VIEW_MODEL;
-        case TRANSIENT:
-            return Bookmark.ObjectState.TRANSIENT;
-        case PERSISTENT:
-            return Bookmark.ObjectState.PERSISTENT;
-        default:
-            throw _Exceptions.unmatchedCase(this);
-        }
-    }
-
-    public Bookmark bookmarkOf(RootOid rootOid) {
-        final String objectType = asBookmarkObjectState().getCode() + rootOid.getObjectSpecId().asString();
-        final String identifier = rootOid.getIdentifier();
-        return new Bookmark(objectType, identifier);
-    }
-
-    public OidDto toOidDto(RootOid rootOid) {
-
-        final OidDto oidDto = new OidDto();
-
-        oidDto.setType(rootOid.getObjectSpecId().asString());
-        oidDto.setId(rootOid.getIdentifier());
-
-        final Bookmark.ObjectState objectState = asBookmarkObjectState();
-        final BookmarkObjectState bookmarkState = objectState.toBookmarkState();
-        // persistent is assumed if not specified...
-        oidDto.setObjectState(
-                bookmarkState != BookmarkObjectState.PERSISTENT ? bookmarkState : null);
-
-        return oidDto;
-    }
-
-}
\ No newline at end of file