Mercurial > hg > truffle
changeset 22280:af8c8edec0f2
TruffleObject associated with PolyglotEngine should be more or less opaque.
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Tue, 06 Oct 2015 20:33:41 +0200 |
parents | 0fc995134ff3 |
children | 137edaaad62f |
files | truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/EngineTruffleObject.java |
diffstat | 1 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/EngineTruffleObject.java Tue Oct 06 13:27:47 2015 +0200 +++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/EngineTruffleObject.java Tue Oct 06 20:33:41 2015 +0200 @@ -34,6 +34,7 @@ import com.oracle.truffle.api.nodes.Node; import com.oracle.truffle.api.nodes.RootNode; import java.io.IOException; +import java.util.Objects; final class EngineTruffleObject implements TruffleObject, ForeignAccess.Factory { private final PolyglotEngine engine; @@ -63,6 +64,31 @@ return Truffle.getRuntime().createCallTarget(new WrappingRoot(TruffleLanguage.class, tree.createNode())); } + @Override + public int hashCode() { + int hash = 7; + hash = 89 * hash + Objects.hashCode(this.engine); + hash = 89 * hash + Objects.hashCode(this.delegate); + return hash; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj instanceof EngineTruffleObject) { + final EngineTruffleObject other = (EngineTruffleObject) obj; + return engine == other.engine && Objects.equals(this.delegate, other.delegate); + } + return false; + } + + @Override + public String toString() { + return delegate.toString(); + } + static class WrappingRoot extends RootNode { @Child private Node foreignAccess;