src/jdk/internal/dynalink/beans/DynamicMethodLinker.java

changeset 101
f8221ce53c2e
parent 90
5a820fb11814
child 404
18d467e94150
equal deleted inserted replaced
100:3245e174fe3a 101:f8221ce53c2e
91 import jdk.internal.dynalink.linker.LinkRequest; 91 import jdk.internal.dynalink.linker.LinkRequest;
92 import jdk.internal.dynalink.linker.LinkerServices; 92 import jdk.internal.dynalink.linker.LinkerServices;
93 import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; 93 import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker;
94 import jdk.internal.dynalink.support.Guards; 94 import jdk.internal.dynalink.support.Guards;
95 95
96
97 /** 96 /**
98 * Simple linker that implements the "dyn:call" operation for {@link DynamicMethod} objects - the objects returned by 97 * Simple linker that implements the "dyn:call" operation for {@link DynamicMethod} objects - the objects returned by
99 * "dyn:getMethod" from {@link AbstractJavaLinker}. 98 * "dyn:getMethod" from {@link AbstractJavaLinker}.
100 */ 99 */
101 class DynamicMethodLinker implements TypeBasedGuardingDynamicLinker { 100 class DynamicMethodLinker implements TypeBasedGuardingDynamicLinker {
102 @Override 101 @Override
103 public boolean canLinkType(Class<?> type) { 102 public boolean canLinkType(Class<?> type) {
104 return DynamicMethod.class.isAssignableFrom(type); 103 return DynamicMethod.class.isAssignableFrom(type);
105 }; 104 }
106 105
107 @Override 106 @Override
108 public GuardedInvocation getGuardedInvocation(LinkRequest linkRequest, LinkerServices linkerServices) { 107 public GuardedInvocation getGuardedInvocation(LinkRequest linkRequest, LinkerServices linkerServices) {
109 final Object receiver = linkRequest.getReceiver(); 108 final Object receiver = linkRequest.getReceiver();
110 if(!(receiver instanceof DynamicMethod)) { 109 if(!(receiver instanceof DynamicMethod)) {

mercurial