Search in sources :

Example 1 with ByteMemberValue

use of javassist.bytecode.annotation.ByteMemberValue in project fakereplace by fakereplace.

the class AnnotationBuilder method createMemberValue.

private static MemberValue createMemberValue(Class<?> type, Object val, ConstPool cp) {
    if (type == int.class) {
        return new IntegerMemberValue(cp, (Integer) val);
    } else if (type == short.class) {
        return new ShortMemberValue((Short) val, cp);
    } else if (type == long.class) {
        return new LongMemberValue((Long) val, cp);
    } else if (type == byte.class) {
        return new ByteMemberValue((Byte) val, cp);
    } else if (type == float.class) {
        return new FloatMemberValue((Float) val, cp);
    } else if (type == double.class) {
        return new DoubleMemberValue((Double) val, cp);
    } else if (type == char.class) {
        return new CharMemberValue((Character) val, cp);
    } else if (type == boolean.class) {
        return new BooleanMemberValue((Boolean) val, cp);
    } else if (type == String.class) {
        return new StringMemberValue((String) val, cp);
    } else if (type == Class.class) {
        return new ClassMemberValue(((Class<?>) val).getName(), cp);
    } else if (type.isEnum()) {
        EnumMemberValue e = new EnumMemberValue(cp);
        e.setType(type.getName());
        e.setValue(((Enum<?>) val).name());
        return e;
    } else if (type.isAnnotation()) {
        return new AnnotationMemberValue(createJavassistAnnotation((java.lang.annotation.Annotation) val, cp), cp);
    } else if (type.isArray()) {
        Class<?> arrayType = type.getComponentType();
        int length = Array.getLength(val);
        MemberValue arrayval = createEmptyMemberValue(arrayType, cp);
        ArrayMemberValue ret = new ArrayMemberValue(arrayval, cp);
        MemberValue[] vals = new MemberValue[length];
        for (int i = 0; i < length; ++i) {
            vals[i] = createMemberValue(arrayType, Array.get(val, i), cp);
        }
        ret.setValue(vals);
        return ret;
    }
    throw new RuntimeException("Invalid array type " + type + " value: " + val);
}
Also used : EnumMemberValue(javassist.bytecode.annotation.EnumMemberValue) StringMemberValue(javassist.bytecode.annotation.StringMemberValue) CharMemberValue(javassist.bytecode.annotation.CharMemberValue) DoubleMemberValue(javassist.bytecode.annotation.DoubleMemberValue) LongMemberValue(javassist.bytecode.annotation.LongMemberValue) IntegerMemberValue(javassist.bytecode.annotation.IntegerMemberValue) ByteMemberValue(javassist.bytecode.annotation.ByteMemberValue) AnnotationMemberValue(javassist.bytecode.annotation.AnnotationMemberValue) BooleanMemberValue(javassist.bytecode.annotation.BooleanMemberValue) ShortMemberValue(javassist.bytecode.annotation.ShortMemberValue) ClassMemberValue(javassist.bytecode.annotation.ClassMemberValue) FloatMemberValue(javassist.bytecode.annotation.FloatMemberValue) MemberValue(javassist.bytecode.annotation.MemberValue) AnnotationMemberValue(javassist.bytecode.annotation.AnnotationMemberValue) ArrayMemberValue(javassist.bytecode.annotation.ArrayMemberValue) DoubleMemberValue(javassist.bytecode.annotation.DoubleMemberValue) ShortMemberValue(javassist.bytecode.annotation.ShortMemberValue) StringMemberValue(javassist.bytecode.annotation.StringMemberValue) IntegerMemberValue(javassist.bytecode.annotation.IntegerMemberValue) LongMemberValue(javassist.bytecode.annotation.LongMemberValue) ClassMemberValue(javassist.bytecode.annotation.ClassMemberValue) CharMemberValue(javassist.bytecode.annotation.CharMemberValue) EnumMemberValue(javassist.bytecode.annotation.EnumMemberValue) BooleanMemberValue(javassist.bytecode.annotation.BooleanMemberValue) ByteMemberValue(javassist.bytecode.annotation.ByteMemberValue) FloatMemberValue(javassist.bytecode.annotation.FloatMemberValue) ArrayMemberValue(javassist.bytecode.annotation.ArrayMemberValue)

Example 2 with ByteMemberValue

use of javassist.bytecode.annotation.ByteMemberValue in project fakereplace by fakereplace.

the class AnnotationBuilder method createEmptyMemberValue.

private static MemberValue createEmptyMemberValue(Class<?> type, ConstPool cp) {
    if (type == int.class) {
        return new IntegerMemberValue(cp);
    } else if (type == short.class) {
        return new ShortMemberValue(cp);
    } else if (type == long.class) {
        return new LongMemberValue(cp);
    } else if (type == byte.class) {
        return new ByteMemberValue(cp);
    } else if (type == float.class) {
        return new FloatMemberValue(cp);
    } else if (type == double.class) {
        return new DoubleMemberValue(cp);
    } else if (type == char.class) {
        return new CharMemberValue(cp);
    } else if (type == boolean.class) {
        return new BooleanMemberValue(cp);
    } else if (type == String.class) {
        return new StringMemberValue(cp);
    } else if (type == Class.class) {
        return new ClassMemberValue(cp);
    } else if (type.isEnum()) {
        EnumMemberValue e = new EnumMemberValue(cp);
        e.setType(type.getName());
        return e;
    } else if (type.isAnnotation()) {
        return new AnnotationMemberValue(cp);
    } else if (type.isArray()) {
        Class<?> arrayType = type.getComponentType();
        MemberValue arrayval = createEmptyMemberValue(arrayType, cp);
        return new ArrayMemberValue(arrayval, cp);
    }
    throw new RuntimeException("Invalid array type " + type + " with no value ");
}
Also used : BooleanMemberValue(javassist.bytecode.annotation.BooleanMemberValue) EnumMemberValue(javassist.bytecode.annotation.EnumMemberValue) StringMemberValue(javassist.bytecode.annotation.StringMemberValue) CharMemberValue(javassist.bytecode.annotation.CharMemberValue) ShortMemberValue(javassist.bytecode.annotation.ShortMemberValue) DoubleMemberValue(javassist.bytecode.annotation.DoubleMemberValue) LongMemberValue(javassist.bytecode.annotation.LongMemberValue) ClassMemberValue(javassist.bytecode.annotation.ClassMemberValue) IntegerMemberValue(javassist.bytecode.annotation.IntegerMemberValue) ByteMemberValue(javassist.bytecode.annotation.ByteMemberValue) FloatMemberValue(javassist.bytecode.annotation.FloatMemberValue) MemberValue(javassist.bytecode.annotation.MemberValue) AnnotationMemberValue(javassist.bytecode.annotation.AnnotationMemberValue) ArrayMemberValue(javassist.bytecode.annotation.ArrayMemberValue) DoubleMemberValue(javassist.bytecode.annotation.DoubleMemberValue) ShortMemberValue(javassist.bytecode.annotation.ShortMemberValue) StringMemberValue(javassist.bytecode.annotation.StringMemberValue) IntegerMemberValue(javassist.bytecode.annotation.IntegerMemberValue) LongMemberValue(javassist.bytecode.annotation.LongMemberValue) ClassMemberValue(javassist.bytecode.annotation.ClassMemberValue) CharMemberValue(javassist.bytecode.annotation.CharMemberValue) EnumMemberValue(javassist.bytecode.annotation.EnumMemberValue) BooleanMemberValue(javassist.bytecode.annotation.BooleanMemberValue) ByteMemberValue(javassist.bytecode.annotation.ByteMemberValue) AnnotationMemberValue(javassist.bytecode.annotation.AnnotationMemberValue) FloatMemberValue(javassist.bytecode.annotation.FloatMemberValue) ArrayMemberValue(javassist.bytecode.annotation.ArrayMemberValue)

Aggregations

AnnotationMemberValue (javassist.bytecode.annotation.AnnotationMemberValue)2 ArrayMemberValue (javassist.bytecode.annotation.ArrayMemberValue)2 BooleanMemberValue (javassist.bytecode.annotation.BooleanMemberValue)2 ByteMemberValue (javassist.bytecode.annotation.ByteMemberValue)2 CharMemberValue (javassist.bytecode.annotation.CharMemberValue)2 ClassMemberValue (javassist.bytecode.annotation.ClassMemberValue)2 DoubleMemberValue (javassist.bytecode.annotation.DoubleMemberValue)2 EnumMemberValue (javassist.bytecode.annotation.EnumMemberValue)2 FloatMemberValue (javassist.bytecode.annotation.FloatMemberValue)2 IntegerMemberValue (javassist.bytecode.annotation.IntegerMemberValue)2 LongMemberValue (javassist.bytecode.annotation.LongMemberValue)2 MemberValue (javassist.bytecode.annotation.MemberValue)2 ShortMemberValue (javassist.bytecode.annotation.ShortMemberValue)2 StringMemberValue (javassist.bytecode.annotation.StringMemberValue)2