@Override public ParameterList getParameters() { verifyTypeCreated(); return generatedConstructor.getParameters(); }
@Override public ParameterList getParameters() { verifyTypeCreated(); return generatedConstructor.getParameters(); }
@Override public ParameterList getParameters() { return isTypeCreated() ? generatedConstructor.getParameters() : _methodBuilder.createParameters(); }
@Override public StringBuilder appendSignature(final StringBuilder sb) { final ParameterList parameters = getParameters(); StringBuilder s = sb; s.append('('); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); s = p.getParameterType().appendSignature(s); } s.append(')'); s = PrimitiveTypes.Void.appendErasedSignature(s); return s; }
@Override public StringBuilder appendSignature(final StringBuilder sb) { final ParameterList parameters = getParameters(); StringBuilder s = sb; s.append('('); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); s = p.getParameterType().appendSignature(s); } s.append(')'); s = PrimitiveTypes.Void.appendErasedSignature(s); return s; }
@Override public StringBuilder appendSignature(final StringBuilder sb) { final ParameterList parameters = getParameters(); StringBuilder s = sb; s.append('('); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); s = p.getParameterType().appendSignature(s); } s.append(')'); s = PrimitiveTypes.Void.appendErasedSignature(s); return s; }
@Override public StringBuilder appendBriefDescription(final StringBuilder sb) { StringBuilder s = PrimitiveTypes.Void.appendBriefDescription(sb); s.append(' '); s.append(getName()); s.append('('); final ParameterList parameters = getParameters(); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); if (i != 0) { s.append(", "); } final Type parameterType = p.getParameterType(); if (parameterType.isGenericParameter()) { s.append(parameterType.getName()); } else { s = parameterType.appendSimpleDescription(s); } } s.append(')'); return s; }
@Override public StringBuilder appendBriefDescription(final StringBuilder sb) { StringBuilder s = PrimitiveTypes.Void.appendBriefDescription(sb); s.append(' '); s.append(getName()); s.append('('); final ParameterList parameters = getParameters(); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); if (i != 0) { s.append(", "); } final Type parameterType = p.getParameterType(); if (parameterType.isGenericParameter()) { s.append(parameterType.getName()); } else { s = parameterType.appendSimpleDescription(s); } } s.append(')'); return s; } }
@Override public StringBuilder appendBriefDescription(final StringBuilder sb) { StringBuilder s = PrimitiveTypes.Void.appendBriefDescription(sb); s.append(' '); s.append(getName()); s.append('('); final ParameterList parameters = getParameters(); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); if (i != 0) { s.append(", "); } final Type parameterType = p.getParameterType(); if (parameterType.isGenericParameter()) { s.append(parameterType.getName()); } else { s = parameterType.appendSimpleDescription(s); } } s.append(')'); return s; } }
@Override public StringBuilder appendDescription(final StringBuilder sb) { StringBuilder s = PrimitiveTypes.Void.appendBriefDescription(sb); s.append(' '); s.append(getName()); s.append('('); final ParameterList parameters = getParameters(); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); if (i != 0) { s.append(", "); } s = p.getParameterType().appendBriefDescription(s); } s.append(')'); final TypeList thrownTypes = getThrownTypes(); if (!thrownTypes.isEmpty()) { s.append(" throws "); for (int i = 0, n = thrownTypes.size(); i < n; ++i) { final Type t = thrownTypes.get(i); if (i != 0) { s.append(", "); } s = t.appendBriefDescription(s); } } return s; }
@Override public StringBuilder appendDescription(final StringBuilder sb) { StringBuilder s = PrimitiveTypes.Void.appendBriefDescription(sb); s.append(' '); s.append(getName()); s.append('('); final ParameterList parameters = getParameters(); for (int i = 0, n = parameters.size(); i < n; ++i) { final ParameterInfo p = parameters.get(i); if (i != 0) { s.append(", "); } s = p.getParameterType().appendBriefDescription(s); } s.append(')'); final TypeList thrownTypes = getThrownTypes(); if (!thrownTypes.isEmpty()) { s.append(" throws "); for (int i = 0, n = thrownTypes.size(); i < n; ++i) { final Type t = thrownTypes.get(i); if (i != 0) { s.append(", "); } s = t.appendBriefDescription(s); } } return s; }
private ArrayList<RuntimeConstructorInfo> populateConstructors(final Filter filter) { final Type<?> reflectedType = getReflectedType(); final ArrayList<RuntimeConstructorInfo> list = new ArrayList<>(); if (reflectedType.isGenericParameter()) { return list; } for (final ConstructorInfo constructor : reflectedType.getDeclaredConstructors()) { final String name = constructor.getName(); if (!filter.match(name)) { continue; } final int modifiers = constructor.getModifiers(); assert constructor.getDeclaringType() != Type.NullType; final boolean isPublic = Modifier.isPublic(modifiers); final boolean isStatic = false; final boolean isInherited = false; final Set<BindingFlags> bindingFlags = Type.filterPreCalculate(isPublic, isInherited, isStatic); final RuntimeConstructorInfo runtimeConstructorInfo = new RuntimeConstructorInfo( constructor.getRawConstructor(), _typeCache, modifiers, bindingFlags, constructor.getParameters() ); list.add(runtimeConstructorInfo); } return list; }
private ArrayList<RuntimeConstructorInfo> populateConstructors(final Filter filter) { final Type<?> reflectedType = getReflectedType(); final ArrayList<RuntimeConstructorInfo> list = new ArrayList<>(); if (reflectedType.isGenericParameter()) { return list; } for (final ConstructorInfo constructor : reflectedType.getDeclaredConstructors()) { final String name = constructor.getName(); if (!filter.match(name)) { continue; } final int modifiers = constructor.getModifiers(); assert constructor.getDeclaringType() != Type.NullType; final boolean isPublic = Modifier.isPublic(modifiers); final boolean isStatic = false; final boolean isInherited = false; final Set<BindingFlags> bindingFlags = Type.filterPreCalculate(isPublic, isInherited, isStatic); final RuntimeConstructorInfo runtimeConstructorInfo = new RuntimeConstructorInfo( constructor.getRawConstructor(), _typeCache, modifiers, bindingFlags, constructor.getParameters() ); list.add(runtimeConstructorInfo); } return list; }
private ArrayList<RuntimeConstructorInfo> populateConstructors(final Filter filter) { final Type<?> reflectedType = getReflectedType(); final ArrayList<RuntimeConstructorInfo> list = new ArrayList<>(); if (reflectedType.isGenericParameter()) { return list; } for (final ConstructorInfo constructor : reflectedType.getDeclaredConstructors()) { final String name = constructor.getName(); if (!filter.match(name)) { continue; } final int modifiers = constructor.getModifiers(); assert constructor.getDeclaringType() != Type.NullType; final boolean isPublic = Modifier.isPublic(modifiers); final boolean isStatic = false; final boolean isInherited = false; final Set<BindingFlags> bindingFlags = Type.filterPreCalculate(isPublic, isInherited, isStatic); final RuntimeConstructorInfo runtimeConstructorInfo = new RuntimeConstructorInfo( constructor.getRawConstructor(), _typeCache, modifiers, bindingFlags, constructor.getParameters() ); list.add(runtimeConstructorInfo); } return list; }
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) { for (final Type<?> type : ((ConstructorBuilder) constructor).getParameterTypes()) { stackChange -= stackSize(type); } } else { for (final ParameterInfo p : constructor.getParameters()) { stackChange -= stackSize(p.getParameterType()); } stackChange -= constructor.getParameters().size(); } updateStackSize(opCode, stackChange); }
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 ConstructorBuilder defineDefaultConstructor(final int modifiers) { verifyNotGeneric(); verifyNotCreated(); if (isInterface()) { throw Error.interfacesCannotDefineConstructors(); } final ConstructorInfo baseConstructor = _baseType.getConstructor(BindingFlags.AllExact); if (baseConstructor == null || baseConstructor.isPrivate()) { throw Error.baseTypeHasNoDefaultConstructor(_baseType); } final ConstructorBuilder constructor = new ConstructorBuilder( modifiers & Modifier.constructorModifiers(), baseConstructor.getParameters().getParameterTypes(), TypeList.empty(), this ); final CodeGenerator code = constructor.getCodeGenerator(); code.emitThis(); for (final ParameterInfo parameter : baseConstructor.getParameters()) { code.emitLoadArgument(parameter.getPosition()); } code.call(baseConstructor); code.emitReturn(); constructor.returnCodeGenerator = false; constructorBuilders.add(constructor); _constructors = new ConstructorList(ArrayUtilities.append(_constructors.toArray(), constructor)); return constructor; }
public ConstructorBuilder defineDefaultConstructor(final int modifiers) { verifyNotGeneric(); verifyNotCreated(); if (isInterface()) { throw Error.interfacesCannotDefineConstructors(); } final ConstructorInfo baseConstructor = _baseType.getConstructor(BindingFlags.AllExact); if (baseConstructor == null || baseConstructor.isPrivate()) { throw Error.baseTypeHasNoDefaultConstructor(_baseType); } final ConstructorBuilder constructor = new ConstructorBuilder( modifiers & Modifier.constructorModifiers(), baseConstructor.getParameters().getParameterTypes(), TypeList.empty(), this ); final CodeGenerator code = constructor.getCodeGenerator(); code.emitThis(); for (final ParameterInfo parameter : baseConstructor.getParameters()) { code.emitLoadArgument(parameter.getPosition()); } code.call(baseConstructor); code.emitReturn(); constructor.returnCodeGenerator = false; constructorBuilders.add(constructor); _constructors = new ConstructorList(ArrayUtilities.append(_constructors.toArray(), constructor)); return constructor; }
public ConstructorBuilder defineDefaultConstructor(final int modifiers) { verifyNotGeneric(); verifyNotCreated(); if (isInterface()) { throw Error.interfacesCannotDefineConstructors(); } final ConstructorInfo baseConstructor = _baseType.getConstructor(BindingFlags.AllExact); if (baseConstructor == null || baseConstructor.isPrivate()) { throw Error.baseTypeHasNoDefaultConstructor(_baseType); } final ConstructorBuilder constructor = new ConstructorBuilder( modifiers & Modifier.constructorModifiers(), baseConstructor.getParameters().getParameterTypes(), TypeList.empty(), this ); final CodeGenerator code = constructor.getCodeGenerator(); code.emitThis(); for (final ParameterInfo parameter : baseConstructor.getParameters()) { code.emitLoadArgument(parameter.getPosition()); } code.call(baseConstructor); code.emitReturn(); constructor.returnCodeGenerator = false; constructorBuilders.add(constructor); _constructors = new ConstructorList(ArrayUtilities.append(_constructors.toArray(), constructor)); return constructor; }
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); }