s = SignatureAttribute.toMethodSignature(sig).toString(); else s = SignatureAttribute.toFieldSignature(sig).toString();
s = SignatureAttribute.toMethodSignature(sig).toString(); else s = SignatureAttribute.toFieldSignature(sig).toString();
public static SignatureAttribute.ObjectType getFieldSignature(CtField field) { if (field == null) throw new IllegalArgumentException("Null method/constructor"); SignatureAttribute signature = (SignatureAttribute) field.getFieldInfo2().getAttribute(SignatureAttribute.tag); if (signature == null) return null; String sig = signature.getSignature(); try { return SignatureAttribute.toFieldSignature(sig); } catch (BadBytecode e) { throw new IllegalStateException(e); } }
/** * Gets the FieldSignature for a field * * @param field the field * @return the FieldSignature * @throws IllegalArgumentException if clazz is null */ public static ObjectType getFieldSignature(CtField field) { if (field == null) throw new IllegalArgumentException("Null method/constructor"); //Use getMethodInfo2 since in some cases the class has been frozen SignatureAttribute signature = (SignatureAttribute)field.getFieldInfo2().getAttribute(SignatureAttribute.tag); if (signature == null) return null; String sig = signature.getSignature(); try { return SignatureAttribute.toFieldSignature(sig); } catch (BadBytecode e) { throw new IllegalStateException(e); } }
/** * Makes a localVariableType from a given signature. * @return LocalVariableType * @throws RuntimeException if the signature could not be parsed. */ public static LocalVariableType parse(String signature) { int dimensions = 0; for(int i = 0; i < signature.length(); i++) { if(signature.charAt(i) == '[') dimensions++; else break; } try { javassist.bytecode.SignatureAttribute.Type objectType = SignatureAttribute.toFieldSignature(signature); if(objectType instanceof ArrayType) objectType = ((ArrayType) objectType).getComponentType(); if(objectType instanceof ClassType) { String typeName = ((ClassType) objectType).getName(); return new LocalVariableType(signature, addArrayTypeInfo(typeName, dimensions), typeName, false, dimensions); } throw new RuntimeException("not a class ?"); } catch(Exception e) { // not a class String typeName = primitiveSymbols.get("" + signature.charAt(dimensions)); if(typeName == null) throw new RuntimeException("unknown signature: " + signature, e); return new LocalVariableType(signature, addArrayTypeInfo(typeName, dimensions), typeName, true, dimensions); } }
@Override public ResolvedType getType() { try { if (ctField.getGenericSignature() != null && declaringType() instanceof ResolvedTypeParametrizable) { javassist.bytecode.SignatureAttribute.Type genericSignatureType = SignatureAttribute.toFieldSignature(ctField.getGenericSignature()); return JavassistUtils.signatureTypeToType(genericSignatureType, typeSolver, (ResolvedTypeParametrizable) declaringType()); } else { return JavassistFactory.typeUsageFor(ctField.getType(), typeSolver); } } catch (NotFoundException e) { throw new RuntimeException(e); } catch (BadBytecode e) { throw new RuntimeException(e); } }
s = SignatureAttribute.toMethodSignature(sig).toString(); else s = SignatureAttribute.toFieldSignature(sig).toString();
@Override public ResolvedType getType() { try { if (ctField.getGenericSignature() != null && declaringType() instanceof ResolvedTypeParametrizable) { javassist.bytecode.SignatureAttribute.Type genericSignatureType = SignatureAttribute.toFieldSignature(ctField.getGenericSignature()); return JavassistUtils.signatureTypeToType(genericSignatureType, typeSolver, (ResolvedTypeParametrizable) declaringType()); } else { return JavassistFactory.typeUsageFor(ctField.getType(), typeSolver); } } catch (NotFoundException e) { throw new RuntimeException(e); } catch (BadBytecode e) { throw new RuntimeException(e); } }
s = SignatureAttribute.toMethodSignature(sig).toString(); else s = SignatureAttribute.toFieldSignature(sig).toString();
s = SignatureAttribute.toMethodSignature(sig).toString(); else s = SignatureAttribute.toFieldSignature(sig).toString();
s = SignatureAttribute.toMethodSignature(sig).toString(); else s = SignatureAttribute.toFieldSignature(sig).toString();
s = SignatureAttribute.toMethodSignature(sig).toString(); else s = SignatureAttribute.toFieldSignature(sig).toString();
@Override public ResolvedType getType() { try { if (ctField.getGenericSignature() != null && declaringType() instanceof ResolvedTypeParametrizable) { javassist.bytecode.SignatureAttribute.Type genericSignatureType = SignatureAttribute.toFieldSignature(ctField.getGenericSignature()); return JavassistUtils.signatureTypeToType(genericSignatureType, typeSolver, (ResolvedTypeParametrizable) declaringType()); } else { return JavassistFactory.typeUsageFor(ctField.getType(), typeSolver); } } catch (NotFoundException | BadBytecode e) { throw new RuntimeException(e); } }
try type = SignatureAttribute.toFieldSignature(signature);