if (definitionParameters.isEmpty()) { _parameters = definitionParameters; ParameterInfo[] parameters = null; for (int i = 0, n = definitionParameters.size(); i < n; i++) { final ParameterInfo parameter = definitionParameters.get(i); final Type parameterType = parameter.getParameterType(); parameters = definitionParameters.toArray(); _parameters = new ParameterList(parameters); _parameters.getParameterTypes() );
public ParameterList getParameters() { return ParameterList.empty(); }
public TypeList getParameterTypes() { if (_parameterTypes == null) { synchronized (this) { if (_parameterTypes == null) { final Type<?>[] types = new Type<?>[size()]; for (int i = 0, n = size(); i < n; i++) { types[i] = get(i).getParameterType(); } _parameterTypes = new TypeList(types); } } } return _parameterTypes; }
public ParameterList visitParameters(final ParameterList parameters, final TypeBindings bindings) { VerifyArgument.notNull(parameters, "parameters"); ParameterInfo[] newParameters = null; for (int i = 0, n = parameters.size(); i < n; i++) { final ParameterInfo oldParameter = parameters.get(i); final Type<?> oldParameterType = oldParameter.getParameterType(); final Type<?> newParameterType = visit(oldParameterType, bindings); if (newParameterType != oldParameterType) { if (newParameters == null) { newParameters = parameters.toArray(); } newParameters[i] = new ParameterInfo(oldParameter.getName(), i, newParameterType); } } if (newParameters != null) { return new ParameterList(newParameters); } return parameters; }
if (isGenericMethodDefinition()) { final ParameterList oldParameters = getParameters(); final TypeList parameterTypes = Helper.erasure(oldParameters.getParameterTypes()); final ParameterInfo[] parameters = new ParameterInfo[oldParameters.size()]; final ParameterInfo oldParameter = oldParameters.get(i); if (parameterTypes.get(i) == oldParameter.getParameterType()) { parameters[i] = oldParameter; getReflectedType(), getRawMethod(), new ParameterList(parameters), Helper.erasure(getReturnType()), Helper.erasure(getThrownTypes()),
public static boolean hasSameArgs(final MethodInfo t, final MethodInfo p) { return containsTypeEquivalent( t.getParameters().getParameterTypes(), p.getParameters().getParameterTypes() ); }
public ConstructorInfo visitConstructor(final Type<?> declaringType, final ConstructorInfo constructor, final TypeBindings bindings) { final ParameterList parameters = constructor.getParameters(); final TypeList thrown = constructor.getThrownTypes(); final Type<?>[] parameterTypes = new Type<?>[parameters.size()]; final Type<?>[] thrownTypes = new Type<?>[thrown.size()]; final Type<?> oldParameterType = parameters.get(i).getParameterType(); parameterTypes[i] = visit(oldParameterType, bindings); if (!oldParameterType.equals(parameterTypes[i])) { newParameters.add( new ParameterInfo( parameters.get(i).getName(), i, parameterTypes[i] declaringType, constructor.getRawConstructor(), new ParameterList(newParameters), new TypeList(thrownTypes) );
public MethodInfo findBaseMethod(final Type<?> relativeTo) { VerifyArgument.notNull(relativeTo, "relativeTo"); final Type<?> declaringType = getDeclaringType(); if (!relativeTo.isAssignableFrom(declaringType)) { throw Error.invalidAncestorType(relativeTo, declaringType); } if (isStatic() || isPrivate()) { return null; } final ParameterList parameters = getParameters(); return relativeTo.getMethod( getName(), BindingFlags.AllInstance, getCallingConvention(), parameters.getParameterTypes().toArray(new Type[parameters.size()]) ); }
private DynamicMethod(final MethodType methodType, final Method invokeMethod) { VerifyArgument.notNull(methodType, "methodType"); _invokeMethod = VerifyArgument.notNull(invokeMethod, "invokeMethod"); _methodHandle = null; final ParameterInfo[] parameters = new ParameterInfo[methodType.parameterCount()]; for (int i = 0, n = parameters.length; i < n; i++) { parameters[i] = new ParameterInfo( "p" + i, i, Type.of(methodType.parameterType(i)) ); } _parameters = new ParameterList(parameters); _signatureType = new SignatureType( Type.of(methodType.returnType()), _parameters.getParameterTypes() ); }
final ParameterList createParameters() { final List<ParameterBuilder> pb = this.getDefinedParameters(); final ParameterInfo[] p = new ParameterInfo[pb.size()]; for (int i = 0; i < p.length; i++) { final ParameterBuilder b = pb.get(i); p[i] = new ParameterInfo(b.getName(), b.getPosition(), b.getParameterType()); } return new ParameterList(p); }
public void emit(final OpCode opCode, final ConstructorInfo constructor) { VerifyArgument.notNull(constructor, "constructor"); final MethodBuilder methodBuilder = this.methodBuilder; if (methodBuilder == null) { throw Error.bytecodeGeneratorNotOwnedByMethodBuilder(); } final int methodToken = methodBuilder.getDeclaringType().getMethodToken(constructor); emit(opCode, (short)methodToken); registerCheckedExceptions(constructor); int stackChange = 0; if (constructor instanceof ConstructorBuilder) { stackChange -= ((ConstructorBuilder)constructor).getParameterTypes().size(); } else { stackChange -= constructor.getParameters().size(); } updateStackSize(opCode, stackChange); }
public TypeList getParameterTypes() { if (_parameterTypes == null) { synchronized (this) { if (_parameterTypes == null) { final Type<?>[] types = new Type<?>[size()]; for (int i = 0, n = size(); i < n; i++) { types[i] = get(i).getParameterType(); } _parameterTypes = new TypeList(types); } } } return _parameterTypes; }
public ParameterList visitParameters(final ParameterList parameters, final TypeBindings bindings) { VerifyArgument.notNull(parameters, "parameters"); ParameterInfo[] newParameters = null; for (int i = 0, n = parameters.size(); i < n; i++) { final ParameterInfo oldParameter = parameters.get(i); final Type<?> oldParameterType = oldParameter.getParameterType(); final Type<?> newParameterType = visit(oldParameterType, bindings); if (newParameterType != oldParameterType) { if (newParameters == null) { newParameters = parameters.toArray(); } newParameters[i] = new ParameterInfo(oldParameter.getName(), i, newParameterType); } } if (newParameters != null) { return new ParameterList(newParameters); } return parameters; }
if (isGenericMethodDefinition()) { final ParameterList oldParameters = getParameters(); final TypeList parameterTypes = Helper.erasure(oldParameters.getParameterTypes()); final ParameterInfo[] parameters = new ParameterInfo[oldParameters.size()]; final ParameterInfo oldParameter = oldParameters.get(i); if (parameterTypes.get(i) == oldParameter.getParameterType()) { parameters[i] = oldParameter; getReflectedType(), getRawMethod(), new ParameterList(parameters), Helper.erasure(getReturnType()), Helper.erasure(getThrownTypes()),
public static boolean hasSameArgs(final MethodInfo t, final MethodInfo p) { return containsTypeEquivalent( t.getParameters().getParameterTypes(), p.getParameters().getParameterTypes() ); }
public ConstructorInfo visitConstructor(final Type<?> declaringType, final ConstructorInfo constructor, final TypeBindings bindings) { final ParameterList parameters = constructor.getParameters(); final TypeList thrown = constructor.getThrownTypes(); final Type<?>[] parameterTypes = new Type<?>[parameters.size()]; final Type<?>[] thrownTypes = new Type<?>[thrown.size()]; final Type<?> oldParameterType = parameters.get(i).getParameterType(); parameterTypes[i] = visit(oldParameterType, bindings); if (!oldParameterType.equals(parameterTypes[i])) { newParameters.add( new ParameterInfo( parameters.get(i).getName(), i, parameterTypes[i] actualDeclaringType, constructor.getRawConstructor(), new ParameterList(newParameters), new TypeList(thrownTypes) );
public MethodInfo findBaseMethod(final Type<?> relativeTo) { VerifyArgument.notNull(relativeTo, "relativeTo"); final Type<?> declaringType = getDeclaringType(); if (!relativeTo.isAssignableFrom(declaringType)) { throw Error.invalidAncestorType(relativeTo, declaringType); } if (isStatic() || isPrivate() || declaringType.isInterface()) { return null; } final ParameterList parameters = getParameters(); return relativeTo.getMethod( getName(), BindingFlags.AllInstance, getCallingConvention(), parameters.getParameterTypes().toArray(new Type[parameters.size()]) ); }
private DynamicMethod(final MethodType methodType, final Method invokeMethod) { VerifyArgument.notNull(methodType, "methodType"); _invokeMethod = VerifyArgument.notNull(invokeMethod, "invokeMethod"); _methodHandle = null; final ParameterInfo[] parameters = new ParameterInfo[methodType.parameterCount()]; for (int i = 0, n = parameters.length; i < n; i++) { parameters[i] = new ParameterInfo( "p" + i, i, Type.of(methodType.parameterType(i)) ); } _parameters = new ParameterList(parameters); _signatureType = new SignatureType( Type.of(methodType.returnType()), _parameters.getParameterTypes() ); }
declaringType, c, new ParameterList(parameters), Type.list(resolvedThrownTypes) );
public void emit(final OpCode opCode, final ConstructorInfo constructor) { VerifyArgument.notNull(constructor, "constructor"); final MethodBuilder methodBuilder = this.methodBuilder; if (methodBuilder == null) { throw Error.bytecodeGeneratorNotOwnedByMethodBuilder(); } final int methodToken = methodBuilder.getDeclaringType().getMethodToken(constructor); emit(opCode, (short)methodToken); registerCheckedExceptions(constructor); int stackChange = 0; if (constructor instanceof ConstructorBuilder) { stackChange -= ((ConstructorBuilder)constructor).getParameterTypes().size(); } else { stackChange -= constructor.getParameters().size(); } updateStackSize(opCode, stackChange); }