changeset 22151:494bfe8a25ff

move LayoutBuilder to Layout.Builder
author Andreas Woess <andreas.woess@oracle.com>
date Mon, 14 Sep 2015 13:59:37 +0200
parents ac6dadffdf32
children 291574f3e498
files truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutBuilder.java truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultLayoutFactory.java
diffstat 4 files changed, 56 insertions(+), 87 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java	Mon Sep 14 13:40:10 2015 +0200
+++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java	Mon Sep 14 13:59:37 2015 +0200
@@ -27,6 +27,7 @@
 import java.util.EnumSet;
 import java.util.ServiceLoader;
 
+import com.oracle.truffle.api.nodes.NodeUtil.FieldOffsetProvider;
 import com.oracle.truffle.api.object.Shape.Allocator;
 
 /**
@@ -54,9 +55,8 @@
     /**
      * Create a new {@link LayoutBuilder}.
      */
-    @SuppressWarnings("deprecation")
-    public static LayoutBuilder newLayout() {
-        return new LayoutBuilder();
+    public static Builder newLayout() {
+        return new Builder();
     }
 
     /**
@@ -127,4 +127,55 @@
         }
         return bestLayoutFactory;
     }
+
+    /**
+     * Layout builder.
+     *
+     * @see Layout
+     */
+    public static final class Builder {
+        private EnumSet<ImplicitCast> allowedImplicitCasts;
+        private FieldOffsetProvider fieldOffsetProvider;
+
+        /**
+         * Create a new layout builder.
+         */
+        private Builder() {
+            this.allowedImplicitCasts = Layout.NONE;
+            this.fieldOffsetProvider = null;
+        }
+
+        /**
+         * Build {@link Layout} from the configuration in this builder.
+         */
+        public Layout build() {
+            return Layout.getFactory().createLayout(this);
+        }
+
+        /**
+         * Set the allowed implicit casts in this layout.
+         *
+         * @see Layout.ImplicitCast
+         */
+        public Builder setAllowedImplicitCasts(EnumSet<ImplicitCast> allowedImplicitCasts) {
+            this.allowedImplicitCasts = allowedImplicitCasts;
+            return this;
+        }
+
+        /**
+         * Set a custom field offset provider for this layout.
+         */
+        public Builder setFieldOffsetProvider(FieldOffsetProvider fieldOffsetProvider) {
+            this.fieldOffsetProvider = fieldOffsetProvider;
+            return this;
+        }
+
+        public EnumSet<ImplicitCast> getAllowedImplicitCasts() {
+            return allowedImplicitCasts;
+        }
+
+        public FieldOffsetProvider getFieldOffsetProvider() {
+            return fieldOffsetProvider;
+        }
+    }
 }
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutBuilder.java	Mon Sep 14 13:40:10 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.oracle.truffle.api.object;
-
-import java.util.*;
-
-import com.oracle.truffle.api.nodes.NodeUtil.FieldOffsetProvider;
-import com.oracle.truffle.api.object.Layout.ImplicitCast;
-
-/**
- * Layout builder.
- *
- * @see Layout
- */
-public class LayoutBuilder {
-    private EnumSet<ImplicitCast> allowedImplicitCasts;
-    private FieldOffsetProvider fieldOffsetProvider;
-
-    /**
-     * Use {@link Layout#newLayout()} instead.
-     */
-    @Deprecated
-    public LayoutBuilder() {
-        this.allowedImplicitCasts = Layout.NONE;
-        this.fieldOffsetProvider = null;
-    }
-
-    /**
-     * Build {@link Layout} from the configuration in this builder.
-     */
-    public Layout build() {
-        return Layout.getFactory().createLayout(this);
-    }
-
-    /**
-     * Set the allowed implicit casts in this layout.
-     *
-     * @see Layout.ImplicitCast
-     */
-    public LayoutBuilder setAllowedImplicitCasts(EnumSet<ImplicitCast> allowedImplicitCasts) {
-        this.allowedImplicitCasts = allowedImplicitCasts;
-        return this;
-    }
-
-    /**
-     * Set a custom field offset provider for this layout.
-     */
-    public LayoutBuilder setFieldOffsetProvider(FieldOffsetProvider fieldOffsetProvider) {
-        this.fieldOffsetProvider = fieldOffsetProvider;
-        return this;
-    }
-
-    public EnumSet<ImplicitCast> getAllowedImplicitCasts() {
-        return allowedImplicitCasts;
-    }
-
-    public FieldOffsetProvider getFieldOffsetProvider() {
-        return fieldOffsetProvider;
-    }
-}
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java	Mon Sep 14 13:40:10 2015 +0200
+++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java	Mon Sep 14 13:59:37 2015 +0200
@@ -25,7 +25,7 @@
 package com.oracle.truffle.api.object;
 
 public interface LayoutFactory {
-    Layout createLayout(LayoutBuilder layoutBuilder);
+    Layout createLayout(Layout.Builder layoutBuilder);
 
     Property createProperty(Object id, Location location);
 
--- a/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultLayoutFactory.java	Mon Sep 14 13:40:10 2015 +0200
+++ b/truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultLayoutFactory.java	Mon Sep 14 13:59:37 2015 +0200
@@ -26,7 +26,7 @@
 import com.oracle.truffle.object.*;
 
 public class DefaultLayoutFactory implements LayoutFactory {
-    public Layout createLayout(LayoutBuilder layoutBuilder) {
+    public Layout createLayout(Layout.Builder layoutBuilder) {
         return BasicLayout.createLayoutImpl(layoutBuilder.getAllowedImplicitCasts(), new DefaultStrategy());
     }