# HG changeset patch # User Andreas Woess # Date 1442231977 -7200 # Node ID 494bfe8a25ffd859efe4029b7bb1fa6b5fef1323 # Parent ac6dadffdf32c0aa1e7f469cb623960c84bc72e8 move LayoutBuilder to Layout.Builder diff -r ac6dadffdf32 -r 494bfe8a25ff truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java --- 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 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 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 getAllowedImplicitCasts() { + return allowedImplicitCasts; + } + + public FieldOffsetProvider getFieldOffsetProvider() { + return fieldOffsetProvider; + } + } } diff -r ac6dadffdf32 -r 494bfe8a25ff truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutBuilder.java --- 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 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 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 getAllowedImplicitCasts() { - return allowedImplicitCasts; - } - - public FieldOffsetProvider getFieldOffsetProvider() { - return fieldOffsetProvider; - } -} diff -r ac6dadffdf32 -r 494bfe8a25ff truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutFactory.java --- 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); diff -r ac6dadffdf32 -r 494bfe8a25ff truffle/com.oracle.truffle.object.basic/src/com/oracle/truffle/object/basic/DefaultLayoutFactory.java --- 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()); }