Mercurial > hg > truffle
changeset 22150:ac6dadffdf32
add Layout.newLayout() as replacement for `new LayoutBuilder()`
author | Andreas Woess <andreas.woess@oracle.com> |
---|---|
date | Mon, 14 Sep 2015 13:40:10 +0200 |
parents | b84a11723d64 |
children | 494bfe8a25ff |
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 |
diffstat | 2 files changed, 34 insertions(+), 7 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:43:21 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Layout.java Mon Sep 14 13:40:10 2015 +0200 @@ -24,9 +24,9 @@ */ package com.oracle.truffle.api.object; -import java.util.*; +import java.util.EnumSet; +import java.util.ServiceLoader; -import com.oracle.truffle.api.nodes.NodeUtil.FieldOffsetProvider; import com.oracle.truffle.api.object.Shape.Allocator; /** @@ -51,16 +51,28 @@ IntToLong, } + /** + * Create a new {@link LayoutBuilder}. + */ + @SuppressWarnings("deprecation") + public static LayoutBuilder newLayout() { + return new LayoutBuilder(); + } + + /** + * Equivalent to {@code Layout.newLayout().build()}. + */ public static Layout createLayout() { return createLayout(NONE); } + /** + * Equivalent to + * {@code Layout.newLayout().setAllowedImplicitCasts(allowedImplicitCasts).build()}. + */ + @Deprecated public static Layout createLayout(EnumSet<ImplicitCast> allowedImplicitCasts) { - return new LayoutBuilder().setAllowedImplicitCasts(allowedImplicitCasts).build(); - } - - public static Layout createLayout(EnumSet<ImplicitCast> allowedImplicitCasts, FieldOffsetProvider fieldOffsetProvider) { - return new LayoutBuilder().setAllowedImplicitCasts(allowedImplicitCasts).setFieldOffsetProvider(fieldOffsetProvider).build(); + return newLayout().setAllowedImplicitCasts(allowedImplicitCasts).build(); } public abstract DynamicObject newInstance(Shape shape);
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutBuilder.java Mon Sep 14 13:43:21 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/LayoutBuilder.java Mon Sep 14 13:40:10 2015 +0200 @@ -38,20 +38,35 @@ 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;