changeset 22287:479028cce974

Layout cleanup
author Andreas Woess <andreas.woess@oracle.com>
date Wed, 07 Oct 2015 20:27:40 +0200
parents 5b1d1de9ba6e
children 47172a9b40ac
files truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java
diffstat 1 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java	Wed Oct 07 17:17:56 2015 +0200
+++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java	Wed Oct 07 20:27:40 2015 +0200
@@ -35,9 +35,9 @@
  * An object may change its shape but only to shapes of the same layout.
  */
 public abstract class Layout {
-    public static final EnumSet<ImplicitCast> NONE = EnumSet.noneOf(ImplicitCast.class);
-    public static final EnumSet<ImplicitCast> INT_TO_DOUBLE = EnumSet.of(ImplicitCast.IntToDouble);
-    public static final EnumSet<ImplicitCast> INT_TO_LONG = EnumSet.of(ImplicitCast.IntToLong);
+    @Deprecated public static final EnumSet<ImplicitCast> NONE = EnumSet.noneOf(ImplicitCast.class);
+    @Deprecated public static final EnumSet<ImplicitCast> INT_TO_DOUBLE = EnumSet.of(ImplicitCast.IntToDouble);
+    @Deprecated public static final EnumSet<ImplicitCast> INT_TO_LONG = EnumSet.of(ImplicitCast.IntToLong);
 
     public static final String OPTION_PREFIX = "truffle.object.";
 
@@ -62,7 +62,7 @@
      * Equivalent to {@code Layout.newLayout().build()}.
      */
     public static Layout createLayout() {
-        return createLayout(NONE);
+        return newLayout().build();
     }
 
     /**
@@ -139,7 +139,7 @@
          * Create a new layout builder.
          */
         private Builder() {
-            this.allowedImplicitCasts = Layout.NONE;
+            this.allowedImplicitCasts = EnumSet.noneOf(ImplicitCast.class);
         }
 
         /**
@@ -159,6 +159,16 @@
             return this;
         }
 
+        /**
+         * Add an allowed implicit cast in this layout.
+         *
+         * @see Layout.ImplicitCast
+         */
+        public Builder addAllowedImplicitCast(ImplicitCast allowedImplicitCast) {
+            this.allowedImplicitCasts.add(allowedImplicitCast);
+            return this;
+        }
+
         public EnumSet<ImplicitCast> getAllowedImplicitCasts() {
             return allowedImplicitCasts;
         }