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 2018/09/26 10:53:11 UTC

[isis] 06/06: ISIS-1976: move Oid.State -> Oid_State and make it package private

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 2f962190637e23544ca49cd8a66f8caa256a1b8f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Sep 26 12:50:43 2018 +0200

    ISIS-1976: move Oid.State -> Oid_State and make it package private
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../isis/core/metamodel/adapter/oid/Oid.java       | 80 +------------------
 .../core/metamodel/adapter/oid/Oid_Marshaller.java |  9 +--
 .../isis/core/metamodel/adapter/oid/Oid_Root.java  |  8 +-
 .../isis/core/metamodel/adapter/oid/Oid_State.java | 93 ++++++++++++++++++++++
 4 files changed, 105 insertions(+), 85 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
index 06706b8..d7441e9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid.java
@@ -21,13 +21,10 @@ package org.apache.isis.core.metamodel.adapter.oid;
 
 import org.apache.isis.applib.annotation.Value;
 import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.commons.encoding.Encodable;
 import org.apache.isis.core.metamodel.adapter.version.Version;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.schema.common.v1.BookmarkObjectState;
-import org.apache.isis.schema.common.v1.OidDto;
 
 
 /**
@@ -67,75 +64,6 @@ public interface Oid extends Encodable {
     default boolean isValue() {
         return false; // default, only overridden by Oid_Value
     }
-
-    public static enum State {
-        PERSISTENT,
-        TRANSIENT,
-        VIEWMODEL;
-
-        public boolean isTransient() {
-            return this == TRANSIENT;
-        }
-        public boolean isViewModel() {
-            return this == VIEWMODEL;
-        }
-        public boolean isPersistent() {
-            return this == PERSISTENT;
-        }
-
-        public static State from(final Bookmark bookmark) {
-            final Bookmark.ObjectState objectState = bookmark.getObjectState();
-            return from(objectState);
-        }
-
-        public static 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;
-        }
-        
-    }
     
     // -- MARSHALLING
     
@@ -184,15 +112,15 @@ public interface Oid extends Encodable {
         
         public static RootOid ofBookmark(final Bookmark bookmark) {
             return Oid_Root.of(ObjectSpecId.of(bookmark.getObjectType()), 
-                    bookmark.getIdentifier(), State.from(bookmark), Version.empty());
+                    bookmark.getIdentifier(), Oid_State.from(bookmark), Version.empty());
         }
 
         public static RootOid viewmodelOf(ObjectSpecId objectSpecId, String mementoStr) {
-            return Oid_Root.of(objectSpecId, mementoStr, State.VIEWMODEL, Version.empty());
+            return Oid_Root.of(objectSpecId, mementoStr, Oid_State.VIEWMODEL, Version.empty());
         }
         
         public static RootOid transientOf(final ObjectSpecId objectSpecId, final String identifier) {
-            return Oid_Root.of(objectSpecId, identifier, State.TRANSIENT, Version.empty());
+            return Oid_Root.of(objectSpecId, identifier, Oid_State.TRANSIENT, Version.empty());
         }
 
         public static RootOid persistentOf(final ObjectSpecId objectSpecId, final String identifier) {
@@ -212,7 +140,7 @@ public interface Oid extends Encodable {
         }
 
         public static RootOid persistentOf(final ObjectSpecId objectSpecId, final String identifier, final Long versionSequence, final String versionUser, final Long versionUtcTimestamp) {
-            return Oid_Root.of(objectSpecId, identifier, State.PERSISTENT, 
+            return Oid_Root.of(objectSpecId, identifier, Oid_State.PERSISTENT, 
                     Version.Factory.ifPresent(versionSequence, versionUser, versionUtcTimestamp));
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
index ebc1323..bed9fa9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Marshaller.java
@@ -30,7 +30,6 @@ import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.ensure.Ensure;
-import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
 import org.apache.isis.core.metamodel.adapter.version.Version;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 
@@ -155,13 +154,13 @@ final class Oid_Marshaller implements Oid.Marshaller, Oid.Unmarshaller {
         }
 
         final String isTransientOrViewModelStr = getGroup(matcher, 3);
-        final State state;
+        final Oid_State state;
         if("!".equals(isTransientOrViewModelStr)) {
-            state = State.TRANSIENT;
+            state = Oid_State.TRANSIENT;
         } else if("*".equals(isTransientOrViewModelStr)) {
-            state = State.VIEWMODEL;
+            state = Oid_State.VIEWMODEL;
         } else {
-            state = State.PERSISTENT;
+            state = Oid_State.PERSISTENT;
         }
 
         final String rootObjectType = getGroup(matcher, 4);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java
index d6e547b..03c67ba 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_Root.java
@@ -39,22 +39,22 @@ final class Oid_Root implements RootOid {
 
     private final ObjectSpecId objectSpecId;
     private final String identifier;
-    private final Oid.State state;
+    private final Oid_State state;
     private final int hashCode;
 
     // not part of equality check
     private Version version;
 
 
-    public static Oid_Root of(final ObjectSpecId objectSpecId, final String identifier, final State state) {
+    public static Oid_Root of(final ObjectSpecId objectSpecId, final String identifier, final Oid_State state) {
         return of(objectSpecId, identifier, state, Version.empty());
     }
     
-    public static Oid_Root of(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
+    public static Oid_Root of(final ObjectSpecId objectSpecId, final String identifier, final Oid_State state, final Version version) {
         return new Oid_Root(objectSpecId, identifier, state, version);
     }
     
-    private Oid_Root(final ObjectSpecId objectSpecId, final String identifier, final State state, final Version version) {
+    private Oid_Root(final ObjectSpecId objectSpecId, final String identifier, final Oid_State state, final Version version) {
 
         requires(objectSpecId, "objectSpecId");
         requires(identifier, "identifier");
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_State.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_State.java
new file mode 100644
index 0000000..a91e05c
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/Oid_State.java
@@ -0,0 +1,93 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.core.metamodel.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