diff graal/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java @ 18747:6db7923af642

OM: DynamicObject extends TruffleObject, add default implementation
author Matthias Grimmer <grimmer@ssw.jku.at>
date Tue, 23 Dec 2014 12:13:14 +0100
parents f439fdb137a3
children d6dba4c723c0
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java	Tue Dec 23 11:56:08 2014 +0100
+++ b/graal/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java	Tue Dec 23 12:13:14 2014 +0100
@@ -24,7 +24,11 @@
  */
 package com.oracle.truffle.api.object;
 
+import com.oracle.truffle.api.*;
 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
+import com.oracle.truffle.api.interop.*;
+import com.oracle.truffle.api.interop.exception.*;
+import com.oracle.truffle.api.interop.messages.*;
 
 public class ObjectType {
     /**
@@ -67,4 +71,17 @@
      */
     public void onPropertyAdded(Property property, Shape shapeBefore, Shape shapeAfter) {
     }
+
+    public ForeignAccessFactory getForeignAccessFactory() {
+        return new ForeignAccessFactory() {
+
+            public InteropPredicate getLanguageCheck() {
+                throw new AccessException(this.toString() + " cannot be shared");
+            }
+
+            public CallTarget getAccess(Message tree) {
+                throw new AccessException(this.toString() + " cannot be shared; Message not possible: " + tree.toString());
+            }
+        };
+    }
 }