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;