comparison truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java @ 22354:0ad8cb1608be

Get the foreign access factory that matches a specific foreign object.
author Danilo Ansaloni <danilo.ansaloni@oracle.com>
date Tue, 10 Nov 2015 14:29:08 +0100
parents 4eb6f179a326
children
comparison
equal deleted inserted replaced
22353:56e71849d356 22354:0ad8cb1608be
63 */ 63 */
64 public Object createShapeData(Shape shape) { 64 public Object createShapeData(Shape shape) {
65 return null; 65 return null;
66 } 66 }
67 67
68 @Deprecated
68 public ForeignAccess getForeignAccessFactory() { 69 public ForeignAccess getForeignAccessFactory() {
69 return ForeignAccess.create(new com.oracle.truffle.api.interop.ForeignAccess.Factory() { 70 return ForeignAccess.create(new com.oracle.truffle.api.interop.ForeignAccess.Factory() {
70 71
71 public boolean canHandle(TruffleObject obj) { 72 public boolean canHandle(TruffleObject obj) {
72 throw new IllegalArgumentException(this.toString() + " cannot be shared"); 73 throw new IllegalArgumentException(this.toString() + " cannot be shared");
75 public CallTarget accessMessage(Message tree) { 76 public CallTarget accessMessage(Message tree) {
76 throw new IllegalArgumentException(this.toString() + " cannot be shared; Message not possible: " + tree.toString()); 77 throw new IllegalArgumentException(this.toString() + " cannot be shared; Message not possible: " + tree.toString());
77 } 78 }
78 }); 79 });
79 } 80 }
81
82 /**
83 * Create a {@link ForeignAccess} to access a specific {@link DynamicObject}.
84 *
85 * @param object the object to be accessed
86 */
87 public ForeignAccess getForeignAccessFactory(DynamicObject object) {
88 return getForeignAccessFactory();
89 }
80 } 90 }