/** Returns an array type whose elements are all instances of {@code componentType}. */ public static ArrayTypeName of(Type componentType) { return of(TypeName.get(componentType)); }
static ArrayTypeName get(GenericArrayType type, Map<Type, TypeVariableName> map) { return ArrayTypeName.of(get(type.getGenericComponentType(), map)); } }
@Override public TypeName getTypeName() { return ArrayTypeName.of(arrayType.getTypeName()); }
static TypeName get(Type type, Map<Type, TypeVariableName> map) { if (type instanceof Class<?>) { Class<?> classType = (Class<?>) type; if (type == void.class) return VOID; if (type == boolean.class) return BOOLEAN; if (type == byte.class) return BYTE; if (type == short.class) return SHORT; if (type == int.class) return INT; if (type == long.class) return LONG; if (type == char.class) return CHAR; if (type == float.class) return FLOAT; if (type == double.class) return DOUBLE; if (classType.isArray()) return ArrayTypeName.of(get(classType.getComponentType(), map)); return ClassName.get(classType); } else if (type instanceof ParameterizedType) { return ParameterizedTypeName.get((ParameterizedType) type, map); } else if (type instanceof WildcardType) { return WildcardTypeName.get((WildcardType) type, map); } else if (type instanceof TypeVariable<?>) { return TypeVariableName.get((TypeVariable<?>) type, map); } else if (type instanceof GenericArrayType) { return ArrayTypeName.get((GenericArrayType) type, map); } else { throw new IllegalArgumentException("unexpected type: " + type); } }
@NonNull @Override public CodeBlock visitArray(@NonNull List<? extends AnnotationValue> values, Void v) { ArrayTypeName arrayTypeName = (ArrayTypeName) type; if (arrayTypeName.componentType instanceof ParameterizedTypeName) { arrayTypeName = ArrayTypeName.of(((ParameterizedTypeName) arrayTypeName.componentType).rawType); } return CodeBlock.of("new $T{$L}", arrayTypeName, values.stream().map(value -> value.accept(this, null)) .reduce((c1, c2) -> CodeBlock.builder().add(c1).add(", ").add(c2).build()).orElseGet(() -> CodeBlock.builder().build())); } }
.addAnnotation(SafeVarargs.class) .addModifiers(Modifier.PUBLIC) .addParameter(ArrayTypeName.of(typeVariableName), "values") .varargs() .addStatement("super($L, $N)", length, "values")
private static MethodSpec resWithVarargsBuilder( SpecModel specModel, final PropModel prop, final ClassName annotationClassName, final String resolver, final TypeName varargsType, final String varargsName) { return getMethodSpecBuilder( specModel, prop, prop.getName() + "Res", Arrays.asList( parameter(prop, TypeName.INT, "resId", annotation(annotationClassName)), ParameterSpec.builder(ArrayTypeName.of(varargsType), varargsName).build()), "$L.$L(resId, " + varargsName + ")", RESOURCE_RESOLVER, resolver + "Res") .varargs(true) .build(); }
ParameterSpec.builder(EVENT_TRIGGER, "eventTrigger", Modifier.FINAL).build()) .addParameter(ParameterSpec.builder(OBJECT, "eventState", Modifier.FINAL).build()) .addParameter(ArrayTypeName.of(TypeName.OBJECT), "params", Modifier.FINAL);
parameterWithoutNullableAnnotation( prop, TypeName.INT, "resId", annotation(annotationClassName)), ParameterSpec.builder(ArrayTypeName.of(varargsType), varargsName).build()), "$L.$L(resId, $L)", RESOURCE_RESOLVER, "resIds", annotation(annotationClassName)), ParameterSpec.builder(ArrayTypeName.of(varargsType), varargsName).build()), "$L.$L(resIds.get(i), $L)", RESOURCE_RESOLVER,
private MethodSpec getTableMethod(String name, TableDefinition tableDefinition) { String tableName = getTableName(name); String triggerName = tableName + "." + name + "Trigger"; TypeName tableType = ClassName.get(packageName, tableName); TypeName triggerType = ClassName.get(packageName, triggerName); MethodSpec.Builder tableGetterMethodBuilder = MethodSpec.methodBuilder("get" + tableName) .addModifiers(Modifier.PUBLIC) .addParameter(Transaction.class, "t") .returns(tableType); if (tableDefinition.getGenericTableName() != null) { tableGetterMethodBuilder .addParameter(String.class, "name") .addParameter(ArrayTypeName.of(triggerType), "triggers") .varargs() .addStatement("return $T.of(t, namespace, name, $T.getAllTriggers(t, sharedTriggers, triggers))", tableType, Triggers.class); } else { tableGetterMethodBuilder .addParameter(ArrayTypeName.of(triggerType), "triggers") .varargs() .addStatement("return $T.of(t, namespace, $T.getAllTriggers(t, sharedTriggers, triggers))", tableType, Triggers.class); } return tableGetterMethodBuilder.build(); }
/** * Array type name. * * @param type * the type * @return the array type name */ public static ArrayTypeName arrayTypeName(Type type) { return ArrayTypeName.of(type); }
private TypeName asConsumerBuilderArray() { ParameterizedTypeName consumerBuilder = ParameterizedTypeName.get(ClassName.get(Consumer.class), listElementConsumerBuilderType()); return ArrayTypeName.of(consumerBuilder); }
private TypeName asConsumerBuilderArray() { ParameterizedTypeName consumerBuilder = ParameterizedTypeName.get(ClassName.get(Consumer.class), listElementConsumerBuilderType()); return ArrayTypeName.of(consumerBuilder); }
@Override public TypeName typeName() { return ArrayTypeName.of(component.typeName()); }
private ArrayTypeName asArrayOfModeledEnum() { return ArrayTypeName.of(modeledEnumElement()); }
public TypeName typeName() { if (generic()) { Class<?> rawType = clazz.isArray() ? clazz.getComponentType() : clazz; final ParameterizedTypeName typeName = ParameterizedTypeName.get(rawType, parameters); return clazz.isArray() ? ArrayTypeName.of(typeName) : typeName; } else { return TypeName.get(clazz); } }
private void addUniverseField(ValueBuilder valueBuilder) { FieldSpec universe = FieldSpec .builder(ArrayTypeName.of(type), universeName()) .addModifiers(PRIVATE, STATIC, FINAL) .initializer("$T.getUniverse($T.class)", Enums.class, type) .build(); valueBuilder.typeBuilder.addField(universe); }
private void addUniverseField(ValueBuilder valueBuilder) { FieldSpec universe = FieldSpec .builder(ArrayTypeName.of(type), universeName()) .addModifiers(PRIVATE, STATIC, FINAL) .initializer("$T.getUniverse($T.class)", Enums.class, type) .build(); valueBuilder.typeBuilder.addField(universe); }
@Override void generateArrayElementFields(ArrayFieldModel arrayFieldModel, ValueBuilder valueBuilder) { field = FieldSpec.builder(ArrayTypeName.of(fieldType()), fieldModel.fieldName()) .addModifiers(PRIVATE, FINAL) .initializer("new $T[$L]", fieldType(), arrayFieldModel.array.length()) .build(); valueBuilder.typeBuilder.addField(field); }
@Override void generateArrayElementFields(ArrayFieldModel arrayFieldModel, ValueBuilder valueBuilder) { field = FieldSpec.builder(ArrayTypeName.of(fieldType()), fieldModel.fieldName()) .addModifiers(PRIVATE, FINAL) .initializer("new $T[$L]", fieldType(), arrayFieldModel.array.length()) .build(); valueBuilder.typeBuilder.addField(field); }