private static void cloneAnnotationArgument(AnnotationArgument arg, Library targetTypeSystem, AnnotationArrayValueBuilder builder, Scope<String, TypeInfo> genericArgs) { switch (arg.AnnotationArgumentKind) { case Annotation: cloneAnnotationValue((AnnotationValue)arg, targetTypeSystem, builder.addAnnotationArgument(arg.Type, arg.IsRuntimeVisible), genericArgs); break; case Array: var avb = builder.addArrayArgument(); foreach (var aa in arg.Elements) { cloneAnnotationArgument(aa, targetTypeSystem, avb, genericArgs); } break; case Boolean: builder.addBooleanArgument((Boolean)arg.Value); break; case Byte: builder.addByteArgument((Byte)arg.Value); break; case Char: builder.addCharArgument((Character)arg.Value); break; case Double: builder.addDoubleArgument((Double)arg.Value); break; case Enum: builder.addEnumArgument(arg.Type, arg.Name); break; case Float: builder.addFloatArgument((Float)arg.Value); break; case Int: builder.addIntArgument((Integer)arg.Value); break; case Long: builder.addLongArgument((Long)arg.Value); break; case Short: builder.addShortArgument((Short)arg.Value); break; case String: builder.addStringArgument((String)arg.Value); break; case Type: builder.addTypeArgument(arg.Type); break; } }
private void buildAnnotationArrayElement(AnnotationArrayValueBuilder b, RawAnnotationArgument arg) { switch (arg.AnnotationArgumentKind) { case Boolean: b.addBooleanArgument((Boolean)arg.Value); break; case Byte: b.addByteArgument((Byte)arg.Value); break; case Char: b.addCharArgument((Character)arg.Value); break; case Short: b.addShortArgument((Short)arg.Value); break; case Int: b.addIntArgument((Integer)arg.Value); break; case Long: b.addLongArgument((Long)arg.Value); break; case Float: b.addFloatArgument((Float)arg.Value); break; case Double: b.addDoubleArgument((Double)arg.Value); break; case String: b.addStringArgument((String)arg.Value); break; case Enum: b.addEnumArgument(getTypeInfo(arg.Type), arg.Name); break; case Type: b.addTypeArgument(getTypeInfo(arg.Type)); break; case Array: var ab = b.addArrayArgument(); foreach (var e in arg.Elements) { buildAnnotationArrayElement(ab, e); } break; default: var vb = b.addAnnotationArgument(getTypeInfo(arg.Type), arg.IsRuntimeVisible); buildAnnotationArgument(vb, arg); break; } }
private void buildAnnotationArrayElement(AnnotationArrayValueBuilder b, RawAnnotationArgument arg) { switch (arg.AnnotationArgumentKind) { case Boolean: b.addBooleanArgument((Boolean)arg.Value); break; case Byte: b.addByteArgument((Byte)arg.Value); break; case Char: b.addCharArgument((Character)arg.Value); break; case Short: b.addShortArgument((Short)arg.Value); break; case Int: b.addIntArgument((Integer)arg.Value); break; case Long: b.addLongArgument((Long)arg.Value); break; case Float: b.addFloatArgument((Float)arg.Value); break; case Double: b.addDoubleArgument((Double)arg.Value); break; case String: b.addStringArgument((String)arg.Value); break; case Enum: b.addEnumArgument(getTypeInfo(arg.Type), arg.Name); break; case Type: b.addTypeArgument(getTypeInfo(arg.Type)); break; case Array: var ab = b.addArrayArgument(); foreach (var e in arg.Elements) { buildAnnotationArrayElement(ab, e); } break; default: var vb = b.addAnnotationArgument(getTypeInfo(arg.Type), arg.IsRuntimeVisible); buildAnnotationArgument(vb, arg); break; } }