public TypeParamRef withDimensions(int dimensions) { return new TypeParamRefBuilder(this).withDimensions(dimensions).build(); }
public TypeParamRef toReference() { return new TypeParamRefBuilder() .withName(name) .withAttributes(getAttributes()) .build(); }
/** * Creates a new generic TypeParamRef. * @param letter The letter of the type. * @return The param reference. */ public static TypeParamRef newTypeParamRef(String letter) { return new TypeParamRefBuilder().withName(letter).build(); }
public TypeParamRefBuilder edit() { return new TypeParamRefBuilder(this); }
.build()); } else if (intermediateRef instanceof TypeParamRef) { arguments.add(new TypeParamRefBuilder((TypeParamRef) intermediateRef) .withDimensions(dimensions) .build()); } else { throw new IllegalStateException("Expected class or type param reference"); arguments.add(new TypeParamRefBuilder() .withName(name) .withDimensions(dimensions) .build()); return new TypeParamRefBuilder().withName(boundName).build(); } else if (classOrInterfaceType.getTypeArgs().isEmpty() && boundName.length() == 1) { return new TypeParamRefBuilder().withName(boundName).build(); } else { return new ClassRefBuilder()
public TypeParamRefBuilder(TypeParamRef instance, Boolean validationEnabled) { this.fluent = this; this.withName(instance.getName()); this.withDimensions(instance.getDimensions()); this.withAttributes(instance.getAttributes()); this.validationEnabled = validationEnabled; }
public EditableTypeParamRef build() { EditableTypeParamRef buildable = new EditableTypeParamRef(fluent.getName(), fluent.getDimensions(), fluent.getAttributes()); validate(buildable); return buildable; }
public TypeParamRef apply(TypeVariable item) { return new TypeParamRefBuilder().withName(item.asElement().getSimpleName().toString()).build(); } };
public A setToTypeParamRefArguments(int index,TypeParamRef item){ TypeParamRefBuilder builder = new TypeParamRefBuilder(item);_visitables.add(builder);this.arguments.add(builder); return (A)this; }
public TypeRef apply(TypeRef item) { if (item instanceof PrimitiveRef) { return new PrimitiveRefBuilder((PrimitiveRef) item).withDimensions(0).build(); } else if (item instanceof ClassRef) { return new ClassRefBuilder((ClassRef) item).withDimensions(0).build(); } else if (item instanceof TypeParamRef) { return new TypeParamRefBuilder((TypeParamRef) item).withDimensions(0).build(); } else { return item; } } };
return new WildcardRefBuilder().build(); } else if (item instanceof TypeVariable) { return new TypeParamRefBuilder().withName(((TypeVariable) item).getName()).build(); } else if (item instanceof GenericArrayType) { Type target = item;
public A addToTypeParamRefBounds(TypeParamRef... items){ for (TypeParamRef item : items) {TypeParamRefBuilder builder = new TypeParamRefBuilder(item);_visitables.add(builder);this.bounds.add(builder);} return (A)this; }
public TypeRef apply(TypeRef type) { if (type instanceof ClassRef) { return new ClassRefBuilder((ClassRef) type) .withDimensions(1) .build(); } else if (type instanceof PrimitiveRef) { return new PrimitiveRefBuilder((PrimitiveRef) type) .withDimensions(1) .build(); } else if (type instanceof TypeParamRef) { return new TypeParamRefBuilder((TypeParamRef) type) .withDimensions(1) .build(); } else { throw new IllegalStateException("A property type should be either class, primitive or param referemce."); } } };
public A withTypeParamRefReturnType(TypeParamRef typeParamRefReturnType){ _visitables.remove(this.returnType); if (typeParamRefReturnType!=null){ this.returnType= new TypeParamRefBuilder(typeParamRefReturnType); _visitables.add(this.returnType);} return (A) this; }
public TypeRef apply(Type type) { if (type instanceof VoidType) { return new VoidRef(); } else if (type instanceof WildcardType) { return new WildcardRef(); } else if (type instanceof ReferenceType) { ReferenceType referenceType = (ReferenceType) type; int dimensions = referenceType.getArrayCount(); TypeRef typeRef = TYPEREF.apply(referenceType.getType()); if (dimensions == 0) { return typeRef; } else if (typeRef instanceof ClassRef) { return new ClassRefBuilder((ClassRef)typeRef).withDimensions(dimensions).build(); } else if (typeRef instanceof PrimitiveRef) { return new PrimitiveRefBuilder((PrimitiveRef)typeRef).withDimensions(dimensions).build(); } else if (typeRef instanceof TypeParamRef) { return new TypeParamRefBuilder((TypeParamRef)typeRef).withDimensions(dimensions).build(); } } else if (type instanceof PrimitiveType) { PrimitiveType primitiveType = (PrimitiveType) type; return new PrimitiveRefBuilder().withName(primitiveType.getType().name()).build(); } else if (type instanceof ClassOrInterfaceType) { return CLASS_OR_TYPEPARAM_REF.apply((ClassOrInterfaceType) type); } throw new IllegalArgumentException("Can't handle type:[" + type + "]."); } };
public A withTypeParamRefTypeRef(TypeParamRef typeParamRefTypeRef){ _visitables.remove(this.typeRef); if (typeParamRefTypeRef!=null){ this.typeRef= new TypeParamRefBuilder(typeParamRefTypeRef); _visitables.add(this.typeRef);} return (A) this; }
public A addAllToTypeParamRefArguments(Collection<TypeParamRef> items){ for (TypeParamRef item : items) {TypeParamRefBuilder builder = new TypeParamRefBuilder(item);_visitables.add(builder);this.arguments.add(builder);} return (A)this; }
public A removeAllFromTypeParamRefBounds(Collection<TypeParamRef> items){ for (TypeParamRef item : items) {TypeParamRefBuilder builder = new TypeParamRefBuilder(item);_visitables.remove(builder);this.bounds.remove(builder);} return (A)this; }
public A removeAllFromTypeParamRefArguments(Collection<TypeParamRef> items){ for (TypeParamRef item : items) {TypeParamRefBuilder builder = new TypeParamRefBuilder(item);_visitables.remove(builder);this.arguments.remove(builder);} return (A)this; }
public A addToTypeParamRefBounds(int index,TypeParamRef item){ TypeParamRefBuilder builder = new TypeParamRefBuilder(item);_visitables.add(builder);this.bounds.add(builder); return (A)this; }