mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-18 06:14:27 +00:00
Finishing work on making lombok do sensible things with TYPE_USE annotations and for example their use on the typearg in a collection type which is being @Singular-ized.
This commit is contained in:
1 parent
d7873f2d21
commit
9198551def
37 files changed
+612
-147
No files matched your search
@@ -4,6 +4,8 @@ Lombok Changelog
|
||||
### v1.18.3 "Edgy Guinea Pig"
|
||||
* PLATFORM: Support for Eclipse Photon. [Issue #1831](https://github.com/rzwitserloot/lombok/issues/1831)
|
||||
* FEATURE: The `@FieldNameConstants` feature has been completely redesigned. [Issue #1774](https://github.com/rzwitserloot/lombok/issues/1774) [FieldNameConstants documentation](https://projectlombok.org/features/experimental/FieldNameConstants)
|
||||
* FEATURE: Lombok's `@NonNull` annotation can now be used on types (annotation on types has been introduced in JDK 8). `@Builder`'s `@Singular` annotation now properly deals with annotations on the generics type on the collection: `@Singular List<@NonNull String> names;` now does the right thing.
|
||||
* BREAKING CHANGE: Lombok will now always copy specific annotations around (from field to getter, from field to builder 'setter', etcetera): A specific curated list of known annotations where that is the right thing to do (generally, `@NonNull` style annotations from various libraries), as well as any annotations you explicitly list in the `lombok.copyableAnnotations` config key in your `lombok.config` file. Also, lombok is more consistent about copying these annotations. (Previous behaviour: Lombok used to copy any annotation whose simple name was `NonNull`, `Nullable`, or `CheckForNull`). [Issue #1570](https://github.com/rzwitserloot/lombok/issues/1570) and [Issue #1634](https://github.com/rzwitserloot/lombok/issues/1634)
|
||||
* BUGFIX: When using lombok to compile modularized (`module-info.java`-style) code, if the module name has dots in it, it wouldn't work. [Issue #1808](https://github.com/rzwitserloot/lombok/issues/1808)
|
||||
* BUGFIX: Errors about lombok not reading a module providing `org.mapstruct.ap.spi` when trying to use lombok in jigsaw-mode on JDK 11. [Issue #1806](https://github.com/rzwitserloot/lombok/issues/1806)
|
||||
* BUGFIX: Fix NetBeans compile on save. [Issue #1770](https://github.com/rzwitserloot/lombok/issues/1770)
|
||||
|
||||
@@ -449,6 +449,24 @@ public class EclipseHandlerUtil {
|
||||
return out;
|
||||
}
|
||||
|
||||
public static Annotation[] getTypeUseAnnotations(TypeReference from) {
|
||||
Annotation[][] a;
|
||||
try {
|
||||
a = (Annotation[][]) reflect(TYPE_REFERENCE__ANNOTATIONS, from);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
if (a == null) return null;
|
||||
Annotation[] b = a[a.length - 1];
|
||||
return b.length == 0 ? null : b;
|
||||
}
|
||||
|
||||
public static void removeTypeUseAnnotations(TypeReference from) {
|
||||
try {
|
||||
reflectSet(TYPE_REFERENCE__ANNOTATIONS, from, null);
|
||||
} catch (Exception ignore) {}
|
||||
}
|
||||
|
||||
public static TypeReference namePlusTypeParamsToTypeReference(char[] typeName, TypeParameter[] params, long p) {
|
||||
if (params != null && params.length > 0) {
|
||||
TypeReference[] refs = new TypeReference[params.length];
|
||||
|
||||
@@ -58,7 +58,26 @@ import org.mangosdk.spi.ProviderFor;
|
||||
@ProviderFor(EclipseAnnotationHandler.class)
|
||||
@HandlerPriority(value = 512) // 2^9; onParameter=@__(@NonNull) has to run first.
|
||||
public class HandleNonNull extends EclipseAnnotationHandler<NonNull> {
|
||||
public static final HandleNonNull INSTANCE = new HandleNonNull();
|
||||
|
||||
public void fix(EclipseNode method) {
|
||||
for (EclipseNode m : method.down()) {
|
||||
if (m.getKind() != Kind.ARGUMENT) continue;
|
||||
for (EclipseNode c : m.down()) {
|
||||
if (c.getKind() == Kind.ANNOTATION) {
|
||||
if (annotationTypeMatches(NonNull.class, c)) {
|
||||
handle0((Annotation) c.get(), c, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void handle(AnnotationValues<NonNull> annotation, Annotation ast, EclipseNode annotationNode) {
|
||||
handle0(ast, annotationNode, false);
|
||||
}
|
||||
|
||||
private void handle0(Annotation ast, EclipseNode annotationNode, boolean force) {
|
||||
handleFlagUsage(annotationNode, ConfigurationKeys.NON_NULL_FLAG_USAGE, "@NonNull");
|
||||
|
||||
if (annotationNode.up().getKind() == Kind.FIELD) {
|
||||
@@ -88,7 +107,7 @@ public class HandleNonNull extends EclipseAnnotationHandler<NonNull> {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isGenerated(declaration)) return;
|
||||
if (!force && isGenerated(declaration)) return;
|
||||
|
||||
if (declaration.isAbstract()) {
|
||||
// This used to be a warning, but as @NonNull also has a documentary purpose, better to not warn about this. Since 1.16.7
|
||||
|
||||
@@ -102,6 +102,7 @@ public class HandleSuperBuilder extends EclipseAnnotationHandler<SuperBuilder> {
|
||||
private static final AbstractMethodDeclaration[] EMPTY_METHODS = {};
|
||||
|
||||
private static class BuilderFieldData {
|
||||
Annotation[] annotations;
|
||||
TypeReference type;
|
||||
char[] rawName;
|
||||
char[] name;
|
||||
@@ -154,9 +155,12 @@ public class HandleSuperBuilder extends EclipseAnnotationHandler<SuperBuilder> {
|
||||
EclipseNode isDefault = findAnnotation(Builder.Default.class, fieldNode);
|
||||
boolean isFinal = ((fd.modifiers & ClassFileConstants.AccFinal) != 0) || (valuePresent && !hasAnnotation(NonFinal.class, fieldNode));
|
||||
|
||||
Annotation[] copyableAnnotations = findCopyableAnnotations(fieldNode);
|
||||
|
||||
BuilderFieldData bfd = new BuilderFieldData();
|
||||
bfd.rawName = fieldNode.getName().toCharArray();
|
||||
bfd.name = removePrefixFromField(fieldNode);
|
||||
bfd.annotations = copyAnnotations(fd, copyableAnnotations);
|
||||
bfd.type = fd.type;
|
||||
bfd.singularData = getSingularData(fieldNode, ast);
|
||||
bfd.originalFieldNode = fieldNode;
|
||||
@@ -665,13 +669,13 @@ public class HandleSuperBuilder extends EclipseAnnotationHandler<SuperBuilder> {
|
||||
};
|
||||
|
||||
if (bfd.singularData == null || bfd.singularData.getSingularizer() == null) {
|
||||
generateSimpleSetterMethodForBuilder(builderType, deprecate, bfd.createdFields.get(0), bfd.nameOfSetFlag, returnTypeMaker.make(), returnStatementMaker.make(), sourceNode);
|
||||
generateSimpleSetterMethodForBuilder(builderType, deprecate, bfd.createdFields.get(0), bfd.nameOfSetFlag, returnTypeMaker.make(), returnStatementMaker.make(), sourceNode, bfd.annotations);
|
||||
} else {
|
||||
bfd.singularData.getSingularizer().generateMethods(bfd.singularData, deprecate, builderType, true, returnTypeMaker, returnStatementMaker);
|
||||
}
|
||||
}
|
||||
|
||||
private void generateSimpleSetterMethodForBuilder(EclipseNode builderType, boolean deprecate, EclipseNode fieldNode, char[] nameOfSetFlag, TypeReference returnType, Statement returnStatement, EclipseNode sourceNode) {
|
||||
private void generateSimpleSetterMethodForBuilder(EclipseNode builderType, boolean deprecate, EclipseNode fieldNode, char[] nameOfSetFlag, TypeReference returnType, Statement returnStatement, EclipseNode sourceNode, Annotation[] annosOnParam) {
|
||||
TypeDeclaration td = (TypeDeclaration) builderType.get();
|
||||
AbstractMethodDeclaration[] existing = td.methods;
|
||||
if (existing == null) existing = EMPTY_METHODS;
|
||||
@@ -688,7 +692,7 @@ public class HandleSuperBuilder extends EclipseAnnotationHandler<SuperBuilder> {
|
||||
String setterName = fieldNode.getName();
|
||||
|
||||
MethodDeclaration setter = HandleSetter.createSetter(td, deprecate, fieldNode, setterName, nameOfSetFlag, returnType, returnStatement, ClassFileConstants.AccPublic,
|
||||
sourceNode, Collections.<Annotation>emptyList(), Collections.<Annotation>emptyList());
|
||||
sourceNode, Collections.<Annotation>emptyList(), annosOnParam != null ? Arrays.asList(copyAnnotations(sourceNode.get(), annosOnParam)) : Collections.<Annotation>emptyList());
|
||||
injectMethod(builderType, setter);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import lombok.core.GuavaTypeMap;
|
||||
import lombok.core.LombokImmutableList;
|
||||
import lombok.core.handlers.HandlerUtil;
|
||||
import lombok.eclipse.EclipseNode;
|
||||
import lombok.eclipse.handlers.HandleNonNull;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.EclipseSingularizer;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.SingularData;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.StatementMaker;
|
||||
@@ -150,14 +151,17 @@ abstract class EclipseGuavaSingularizer extends EclipseSingularizer {
|
||||
md.arguments = new Argument[suffixes.size()];
|
||||
for (int i = 0; i < suffixes.size(); i++) {
|
||||
TypeReference tr = cloneParamType(i, data.getTypeArgs(), builderType);
|
||||
md.arguments[i] = new Argument(names[i], 0, tr, 0);
|
||||
Annotation[] typeUseAnns = getTypeUseAnnotations(tr);
|
||||
removeTypeUseAnnotations(tr);
|
||||
md.arguments[i] = new Argument(names[i], 0, tr, ClassFileConstants.AccFinal);
|
||||
md.arguments[i].annotations = typeUseAnns;
|
||||
}
|
||||
md.returnType = returnType;
|
||||
md.selector = fluent ? data.getSingularName() : HandlerUtil.buildAccessorName(getAddMethodName(), new String(data.getSingularName())).toCharArray();
|
||||
md.annotations = deprecate ? new Annotation[] { generateDeprecatedAnnotation(data.getSource()) } : null;
|
||||
|
||||
data.setGeneratedByRecursive(md);
|
||||
injectMethod(builderType, md);
|
||||
HandleNonNull.INSTANCE.fix(injectMethod(builderType, md));
|
||||
}
|
||||
|
||||
void generatePluralMethod(boolean deprecate, TypeReference returnType, Statement returnStatement, SingularData data, EclipseNode builderType, boolean fluent) {
|
||||
@@ -182,7 +186,7 @@ abstract class EclipseGuavaSingularizer extends EclipseSingularizer {
|
||||
TypeReference paramType;
|
||||
paramType = new QualifiedTypeReference(fromQualifiedName(getAddAllTypeName()), NULL_POSS);
|
||||
paramType = addTypeArgs(getTypeArgumentsCount(), true, builderType, paramType, data.getTypeArgs());
|
||||
Argument param = new Argument(data.getPluralName(), 0, paramType, 0);
|
||||
Argument param = new Argument(data.getPluralName(), 0, paramType, ClassFileConstants.AccFinal);
|
||||
md.arguments = new Argument[] {param};
|
||||
md.returnType = returnType;
|
||||
md.selector = fluent ? data.getPluralName() : HandlerUtil.buildAccessorName(getAddMethodName() + "All", new String(data.getPluralName())).toCharArray();
|
||||
|
||||
@@ -30,6 +30,7 @@ import java.util.List;
|
||||
|
||||
import lombok.core.handlers.HandlerUtil;
|
||||
import lombok.eclipse.EclipseNode;
|
||||
import lombok.eclipse.handlers.HandleNonNull;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.SingularData;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.StatementMaker;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.TypeReferenceMaker;
|
||||
@@ -138,14 +139,18 @@ abstract class EclipseJavaUtilListSetSingularizer extends EclipseJavaUtilSingula
|
||||
|
||||
md.statements = statements.toArray(new Statement[statements.size()]);
|
||||
TypeReference paramType = cloneParamType(0, data.getTypeArgs(), builderType);
|
||||
Argument param = new Argument(data.getSingularName(), 0, paramType, 0);
|
||||
Annotation[] typeUseAnns = getTypeUseAnnotations(paramType);
|
||||
removeTypeUseAnnotations(paramType);
|
||||
Argument param = new Argument(data.getSingularName(), 0, paramType, ClassFileConstants.AccFinal);
|
||||
param.annotations = typeUseAnns;
|
||||
md.arguments = new Argument[] {param};
|
||||
md.returnType = returnType;
|
||||
md.selector = fluent ? data.getSingularName() : HandlerUtil.buildAccessorName("add", new String(data.getSingularName())).toCharArray();
|
||||
md.annotations = deprecate ? new Annotation[] { generateDeprecatedAnnotation(data.getSource()) } : null;
|
||||
|
||||
data.setGeneratedByRecursive(md);
|
||||
injectMethod(builderType, md);
|
||||
|
||||
HandleNonNull.INSTANCE.fix(injectMethod(builderType, md));
|
||||
}
|
||||
|
||||
void generatePluralMethod(boolean deprecate, TypeReference returnType, Statement returnStatement, SingularData data, EclipseNode builderType, boolean fluent) {
|
||||
@@ -169,7 +174,7 @@ abstract class EclipseJavaUtilListSetSingularizer extends EclipseJavaUtilSingula
|
||||
|
||||
TypeReference paramType = new QualifiedTypeReference(TypeConstants.JAVA_UTIL_COLLECTION, NULL_POSS);
|
||||
paramType = addTypeArgs(1, true, builderType, paramType, data.getTypeArgs());
|
||||
Argument param = new Argument(data.getPluralName(), 0, paramType, 0);
|
||||
Argument param = new Argument(data.getPluralName(), 0, paramType, ClassFileConstants.AccFinal);
|
||||
md.arguments = new Argument[] {param};
|
||||
md.returnType = returnType;
|
||||
md.selector = fluent ? data.getPluralName() : HandlerUtil.buildAccessorName("addAll", new String(data.getPluralName())).toCharArray();
|
||||
|
||||
@@ -59,6 +59,7 @@ import lombok.eclipse.handlers.EclipseSingularsRecipes.EclipseSingularizer;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.SingularData;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.StatementMaker;
|
||||
import lombok.eclipse.handlers.EclipseSingularsRecipes.TypeReferenceMaker;
|
||||
import lombok.eclipse.handlers.HandleNonNull;
|
||||
|
||||
@ProviderFor(EclipseSingularizer.class)
|
||||
public class EclipseJavaUtilMapSingularizer extends EclipseJavaUtilSingularizer {
|
||||
@@ -214,16 +215,23 @@ public class EclipseJavaUtilMapSingularizer extends EclipseJavaUtilSingularizer
|
||||
|
||||
md.statements = statements.toArray(new Statement[statements.size()]);
|
||||
TypeReference keyParamType = cloneParamType(0, data.getTypeArgs(), builderType);
|
||||
Argument keyParam = new Argument(keyParamName, 0, keyParamType, 0);
|
||||
TypeReference valueParamType = cloneParamType(1, data.getTypeArgs(), builderType);
|
||||
Argument valueParam = new Argument(valueParamName, 0, valueParamType, 0);
|
||||
Annotation[] typeUseAnnsKey = getTypeUseAnnotations(keyParamType);
|
||||
Annotation[] typeUseAnnsValue = getTypeUseAnnotations(valueParamType);
|
||||
|
||||
removeTypeUseAnnotations(keyParamType);
|
||||
removeTypeUseAnnotations(valueParamType);
|
||||
Argument keyParam = new Argument(keyParamName, 0, keyParamType, ClassFileConstants.AccFinal);
|
||||
Argument valueParam = new Argument(valueParamName, 0, valueParamType, ClassFileConstants.AccFinal);
|
||||
keyParam.annotations = typeUseAnnsKey;
|
||||
valueParam.annotations = typeUseAnnsValue;
|
||||
md.arguments = new Argument[] {keyParam, valueParam};
|
||||
md.returnType = returnType;
|
||||
md.selector = fluent ? data.getSingularName() : HandlerUtil.buildAccessorName("put", new String(data.getSingularName())).toCharArray();
|
||||
md.annotations = deprecate ? new Annotation[] { generateDeprecatedAnnotation(data.getSource()) } : null;
|
||||
|
||||
data.setGeneratedByRecursive(md);
|
||||
injectMethod(builderType, md);
|
||||
HandleNonNull.INSTANCE.fix(injectMethod(builderType, md));
|
||||
}
|
||||
|
||||
private void generatePluralMethod(boolean deprecate, TypeReference returnType, Statement returnStatement, SingularData data, EclipseNode builderType, boolean fluent) {
|
||||
@@ -280,7 +288,7 @@ public class EclipseJavaUtilMapSingularizer extends EclipseJavaUtilSingularizer
|
||||
|
||||
TypeReference paramType = new QualifiedTypeReference(JAVA_UTIL_MAP, NULL_POSS);
|
||||
paramType = addTypeArgs(2, true, builderType, paramType, data.getTypeArgs());
|
||||
Argument param = new Argument(data.getPluralName(), 0, paramType, 0);
|
||||
Argument param = new Argument(data.getPluralName(), 0, paramType, ClassFileConstants.AccFinal);
|
||||
md.arguments = new Argument[] {param};
|
||||
md.returnType = returnType;
|
||||
md.selector = fluent ? data.getPluralName() : HandlerUtil.buildAccessorName("putAll", new String(data.getPluralName())).toCharArray();
|
||||
|
||||
@@ -80,6 +80,7 @@ public class HandleSuperBuilder extends JavacAnnotationHandler<SuperBuilder> {
|
||||
private static final String SELF_METHOD = "self";
|
||||
|
||||
private static class BuilderFieldData {
|
||||
List<JCAnnotation> annotations;
|
||||
JCExpression type;
|
||||
Name rawName;
|
||||
Name name;
|
||||
@@ -135,6 +136,7 @@ public class HandleSuperBuilder extends JavacAnnotationHandler<SuperBuilder> {
|
||||
BuilderFieldData bfd = new BuilderFieldData();
|
||||
bfd.rawName = fd.name;
|
||||
bfd.name = removePrefixFromField(fieldNode);
|
||||
bfd.annotations = findCopyableAnnotations(fieldNode);
|
||||
bfd.type = fd.vartype;
|
||||
bfd.singularData = getSingularData(fieldNode);
|
||||
bfd.originalFieldNode = fieldNode;
|
||||
@@ -616,13 +618,13 @@ public class HandleSuperBuilder extends JavacAnnotationHandler<SuperBuilder> {
|
||||
}};
|
||||
|
||||
if (fieldNode.singularData == null || fieldNode.singularData.getSingularizer() == null) {
|
||||
generateSimpleSetterMethodForBuilder(builderType, deprecate, fieldNode.createdFields.get(0), fieldNode.nameOfSetFlag, source, true, true, returnTypeMaker.make(), returnStatementMaker.make());
|
||||
generateSimpleSetterMethodForBuilder(builderType, deprecate, fieldNode.createdFields.get(0), fieldNode.nameOfSetFlag, source, true, true, returnTypeMaker.make(), returnStatementMaker.make(), fieldNode.annotations);
|
||||
} else {
|
||||
fieldNode.singularData.getSingularizer().generateMethods(fieldNode.singularData, deprecate, builderType, source.get(), true, returnTypeMaker, returnStatementMaker);
|
||||
}
|
||||
}
|
||||
|
||||
private void generateSimpleSetterMethodForBuilder(JavacNode builderType, boolean deprecate, JavacNode fieldNode, Name nameOfSetFlag, JavacNode source, boolean fluent, boolean chain, JCExpression returnType, JCStatement returnStatement) {
|
||||
private void generateSimpleSetterMethodForBuilder(JavacNode builderType, boolean deprecate, JavacNode fieldNode, Name nameOfSetFlag, JavacNode source, boolean fluent, boolean chain, JCExpression returnType, JCStatement returnStatement, List<JCAnnotation> annosOnParam) {
|
||||
Name fieldName = ((JCVariableDecl) fieldNode.get()).name;
|
||||
|
||||
for (JavacNode child : builderType.down()) {
|
||||
@@ -636,7 +638,7 @@ public class HandleSuperBuilder extends JavacAnnotationHandler<SuperBuilder> {
|
||||
|
||||
JavacTreeMaker maker = fieldNode.getTreeMaker();
|
||||
|
||||
JCMethodDecl newMethod = HandleSetter.createSetter(Flags.PUBLIC, deprecate, fieldNode, maker, setterName, nameOfSetFlag, returnType, returnStatement, source, List.<JCAnnotation>nil(), List.<JCAnnotation>nil());
|
||||
JCMethodDecl newMethod = HandleSetter.createSetter(Flags.PUBLIC, deprecate, fieldNode, maker, setterName, nameOfSetFlag, returnType, returnStatement, source, List.<JCAnnotation>nil(), annosOnParam);
|
||||
|
||||
injectMethod(builderType, newMethod);
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import static lombok.javac.Javac.*;
|
||||
import static lombok.javac.JavacAugments.JCTree_generatedNode;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
@@ -1039,6 +1040,57 @@ public class JavacHandlerUtil {
|
||||
return (field.mods.flags & Flags.ENUM) != 0;
|
||||
}
|
||||
|
||||
static class JCAnnotatedTypeReflect {
|
||||
private static Class<?> TYPE;
|
||||
private static Constructor<?> CONSTRUCTOR;
|
||||
private static Field ANNOTATIONS, UNDERLYING_TYPE;
|
||||
|
||||
private static void init(Class<?> in) {
|
||||
if (TYPE != null) return;
|
||||
if (!in.getName().equals("com.sun.tools.javac.tree.JCTree$JCAnnotatedType")) return;
|
||||
try {
|
||||
CONSTRUCTOR = in.getDeclaredConstructor(List.class, JCExpression.class);
|
||||
CONSTRUCTOR.setAccessible(true);
|
||||
ANNOTATIONS = in.getDeclaredField("annotations");
|
||||
UNDERLYING_TYPE = in.getDeclaredField("underlyingType");
|
||||
TYPE = in;
|
||||
} catch (Exception ignore) {}
|
||||
}
|
||||
|
||||
static boolean is(JCTree obj) {
|
||||
if (obj == null) return false;
|
||||
init(obj.getClass());
|
||||
return obj.getClass() == TYPE;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static List<JCAnnotation> getAnnotations(JCTree obj) {
|
||||
init(obj.getClass());
|
||||
try {
|
||||
return (List<JCAnnotation>) ANNOTATIONS.get(obj);
|
||||
} catch (Exception e) {
|
||||
return List.nil();
|
||||
}
|
||||
}
|
||||
|
||||
static JCExpression getUnderlyingType(JCTree obj) {
|
||||
init(obj.getClass());
|
||||
try {
|
||||
return (JCExpression) UNDERLYING_TYPE.get(obj);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static JCExpression create(List<JCAnnotation> annotations, JCExpression underlyingType) {
|
||||
try {
|
||||
return (JCExpression) CONSTRUCTOR.newInstance(annotations, underlyingType);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// jdk9 support, types have changed, names stay the same
|
||||
static class ClassSymbolMembersField {
|
||||
private static final Field membersField;
|
||||
@@ -1570,6 +1622,16 @@ public class JavacHandlerUtil {
|
||||
return out.toList();
|
||||
}
|
||||
|
||||
public static List<JCAnnotation> getTypeUseAnnotations(JCExpression from) {
|
||||
if (!JCAnnotatedTypeReflect.is(from)) return List.nil();
|
||||
return JCAnnotatedTypeReflect.getAnnotations(from);
|
||||
}
|
||||
|
||||
public static JCExpression removeTypeUseAnnotations(JCExpression from) {
|
||||
if (!JCAnnotatedTypeReflect.is(from)) return from;
|
||||
return JCAnnotatedTypeReflect.getUnderlyingType(from);
|
||||
}
|
||||
|
||||
public static JCExpression namePlusTypeParamsToTypeReference(JavacTreeMaker maker, Name typeName, List<JCTypeParameter> params) {
|
||||
if (params.isEmpty()) {
|
||||
return maker.Ident(typeName);
|
||||
@@ -1650,7 +1712,7 @@ public class JavacHandlerUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a full clone of a given javac AST type node. Every part is cloned (every identifier, every select, every wildcard, every type apply).
|
||||
* Creates a full clone of a given javac AST type node. Every part is cloned (every identifier, every select, every wildcard, every type apply, every type_use annotation).
|
||||
*
|
||||
* If there's any node in the tree that we don't know how to clone, that part isn't cloned. However, we wouldn't know what could possibly show up that we
|
||||
* can't currently clone; that's just a safeguard.
|
||||
@@ -1712,6 +1774,12 @@ public class JavacHandlerUtil {
|
||||
return maker.Wildcard(newKind, newInner);
|
||||
}
|
||||
|
||||
if (JCAnnotatedTypeReflect.is(in)) {
|
||||
JCExpression underlyingType = cloneType0(maker, JCAnnotatedTypeReflect.getUnderlyingType(in));
|
||||
List<JCAnnotation> anns = copyAnnotations(JCAnnotatedTypeReflect.getAnnotations(in));
|
||||
return JCAnnotatedTypeReflect.create(anns, underlyingType);
|
||||
}
|
||||
|
||||
// This is somewhat unsafe, but it's better than outright throwing an exception here. Returning null will just cause an exception down the pipeline.
|
||||
return (JCExpression) in;
|
||||
}
|
||||
@@ -1887,7 +1955,7 @@ public class JavacHandlerUtil {
|
||||
|
||||
public static boolean isDirectDescendantOfObject(JavacNode typeNode) {
|
||||
if (!(typeNode.get() instanceof JCClassDecl)) throw new IllegalArgumentException("not a type node");
|
||||
JCTree extending = Javac.getExtendsClause((JCClassDecl)typeNode.get());
|
||||
JCTree extending = Javac.getExtendsClause((JCClassDecl) typeNode.get());
|
||||
if (extending == null) return true;
|
||||
String p = extending.toString();
|
||||
return p.equals("Object") || p.equals("java.lang.Object");
|
||||
|
||||
@@ -39,6 +39,7 @@ import lombok.javac.handlers.JavacSingularsRecipes.StatementMaker;
|
||||
|
||||
import com.sun.tools.javac.code.Flags;
|
||||
import com.sun.tools.javac.tree.JCTree;
|
||||
import com.sun.tools.javac.tree.JCTree.JCAnnotation;
|
||||
import com.sun.tools.javac.tree.JCTree.JCBlock;
|
||||
import com.sun.tools.javac.tree.JCTree.JCExpression;
|
||||
import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
|
||||
@@ -125,7 +126,10 @@ abstract class JavacGuavaSingularizer extends JavacSingularizer {
|
||||
ListBuffer<JCVariableDecl> params = new ListBuffer<JCVariableDecl>();
|
||||
for (int i = 0; i < suffixes.size(); i++) {
|
||||
JCExpression pt = cloneParamType(i, maker, data.getTypeArgs(), builderType, source);
|
||||
JCVariableDecl p = maker.VarDef(maker.Modifiers(paramFlags), names[i], pt, null);
|
||||
List<JCAnnotation> typeUseAnns = getTypeUseAnnotations(pt);
|
||||
pt = removeTypeUseAnnotations(pt);
|
||||
JCModifiers paramMods = typeUseAnns.isEmpty() ? maker.Modifiers(paramFlags) : maker.Modifiers(paramFlags, typeUseAnns);
|
||||
JCVariableDecl p = maker.VarDef(paramMods, names[i], pt, null);
|
||||
params.append(p);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ import lombok.javac.handlers.JavacSingularsRecipes.StatementMaker;
|
||||
|
||||
import com.sun.tools.javac.code.Flags;
|
||||
import com.sun.tools.javac.tree.JCTree;
|
||||
import com.sun.tools.javac.tree.JCTree.JCAnnotation;
|
||||
import com.sun.tools.javac.tree.JCTree.JCBlock;
|
||||
import com.sun.tools.javac.tree.JCTree.JCExpression;
|
||||
import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
|
||||
@@ -124,7 +125,10 @@ abstract class JavacJavaUtilListSetSingularizer extends JavacJavaUtilSingularize
|
||||
long paramFlags = JavacHandlerUtil.addFinalIfNeeded(Flags.PARAMETER, builderType.getContext());
|
||||
if (!fluent) name = builderType.toName(HandlerUtil.buildAccessorName("add", name.toString()));
|
||||
JCExpression paramType = cloneParamType(0, maker, data.getTypeArgs(), builderType, source);
|
||||
JCVariableDecl param = maker.VarDef(maker.Modifiers(paramFlags), data.getSingularName(), paramType, null);
|
||||
List<JCAnnotation> typeUseAnns = getTypeUseAnnotations(paramType);
|
||||
paramType = removeTypeUseAnnotations(paramType);
|
||||
JCModifiers paramMods = typeUseAnns.isEmpty() ? maker.Modifiers(paramFlags) : maker.Modifiers(paramFlags, typeUseAnns);
|
||||
JCVariableDecl param = maker.VarDef(paramMods, data.getSingularName(), paramType, null);
|
||||
JCMethodDecl method = maker.MethodDef(mods, name, returnType, typeParams, List.of(param), thrown, body, null);
|
||||
injectMethod(builderType, method);
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.mangosdk.spi.ProviderFor;
|
||||
|
||||
import com.sun.tools.javac.code.Flags;
|
||||
import com.sun.tools.javac.tree.JCTree;
|
||||
import com.sun.tools.javac.tree.JCTree.JCAnnotation;
|
||||
import com.sun.tools.javac.tree.JCTree.JCBlock;
|
||||
import com.sun.tools.javac.tree.JCTree.JCExpression;
|
||||
import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
|
||||
@@ -165,8 +166,14 @@ public class JavacJavaUtilMapSingularizer extends JavacJavaUtilSingularizer {
|
||||
if (!fluent) name = builderType.toName(HandlerUtil.buildAccessorName("put", name.toString()));
|
||||
JCExpression paramTypeKey = cloneParamType(0, maker, data.getTypeArgs(), builderType, source);
|
||||
JCExpression paramTypeValue = cloneParamType(1, maker, data.getTypeArgs(), builderType, source);
|
||||
JCVariableDecl paramKey = maker.VarDef(maker.Modifiers(paramFlags), keyName, paramTypeKey, null);
|
||||
JCVariableDecl paramValue = maker.VarDef(maker.Modifiers(paramFlags), valueName, paramTypeValue, null);
|
||||
List<JCAnnotation> typeUseAnnsKey = getTypeUseAnnotations(paramTypeKey);
|
||||
List<JCAnnotation> typeUseAnnsValue = getTypeUseAnnotations(paramTypeValue);
|
||||
paramTypeKey = removeTypeUseAnnotations(paramTypeKey);
|
||||
paramTypeValue = removeTypeUseAnnotations(paramTypeValue);
|
||||
JCModifiers paramModsKey = typeUseAnnsKey.isEmpty() ? maker.Modifiers(paramFlags) : maker.Modifiers(paramFlags, typeUseAnnsKey);
|
||||
JCModifiers paramModsValue = typeUseAnnsValue.isEmpty() ? maker.Modifiers(paramFlags) : maker.Modifiers(paramFlags, typeUseAnnsValue);
|
||||
JCVariableDecl paramKey = maker.VarDef(paramModsKey, keyName, paramTypeKey, null);
|
||||
JCVariableDecl paramValue = maker.VarDef(paramModsValue, valueName, paramTypeValue, null);
|
||||
JCMethodDecl method = maker.MethodDef(mods, name, returnType, typeParams, List.of(paramKey, paramValue), thrown, body, null);
|
||||
injectMethod(builderType, method);
|
||||
}
|
||||
|
||||
@@ -1,34 +1,42 @@
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
import lombok.NonNull;
|
||||
@Target(ElementType.TYPE_USE)
|
||||
@interface MyAnnotation {
|
||||
}
|
||||
class BuilderSingularAnnotatedTypes {
|
||||
private Set<@NonNull String> foos;
|
||||
private Map<@NonNull String, @NonNull Integer> bars;
|
||||
private Set<@MyAnnotation @NonNull String> foos;
|
||||
private Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
BuilderSingularAnnotatedTypes(final Set<@NonNull String> foos, final Map<@NonNull String, @NonNull Integer> bars) {
|
||||
BuilderSingularAnnotatedTypes(final Set<@MyAnnotation @NonNull String> foos, final Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars) {
|
||||
this.foos = foos;
|
||||
this.bars = bars;
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public static class BuilderSingularAnnotatedTypesBuilder {
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private java.util.ArrayList<@NonNull String> foos;
|
||||
private java.util.ArrayList<@MyAnnotation @NonNull String> foos;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private java.util.ArrayList<@NonNull String> bars$key;
|
||||
private java.util.ArrayList<@MyAnnotation @NonNull String> bars$key;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private java.util.ArrayList<@NonNull Integer> bars$value;
|
||||
private java.util.ArrayList<@MyAnnotation @NonNull Integer> bars$value;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
BuilderSingularAnnotatedTypesBuilder() {
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public BuilderSingularAnnotatedTypesBuilder foo(final @NonNull String foo) {
|
||||
if (this.foos == null) this.foos = new java.util.ArrayList<@NonNull String>();
|
||||
public BuilderSingularAnnotatedTypesBuilder foo(@MyAnnotation @NonNull final String foo) {
|
||||
if (foo == null) {
|
||||
throw new java.lang.NullPointerException("foo is marked @NonNull but is null");
|
||||
}
|
||||
if (this.foos == null) this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.add(foo);
|
||||
return this;
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public BuilderSingularAnnotatedTypesBuilder foos(final java.util.Collection<? extends @NonNull String> foos) {
|
||||
if (this.foos == null) this.foos = new java.util.ArrayList<@NonNull String>();
|
||||
public BuilderSingularAnnotatedTypesBuilder foos(final java.util.Collection<? extends @MyAnnotation @NonNull String> foos) {
|
||||
if (this.foos == null) this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.addAll(foos);
|
||||
return this;
|
||||
}
|
||||
@@ -38,22 +46,28 @@ class BuilderSingularAnnotatedTypes {
|
||||
return this;
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public BuilderSingularAnnotatedTypesBuilder bar(final @NonNull String barKey, final @NonNull Integer barValue) {
|
||||
public BuilderSingularAnnotatedTypesBuilder bar(@MyAnnotation @NonNull final String barKey, @MyAnnotation @NonNull final Integer barValue) {
|
||||
if (barKey == null) {
|
||||
throw new java.lang.NullPointerException("barKey is marked @NonNull but is null");
|
||||
}
|
||||
if (barValue == null) {
|
||||
throw new java.lang.NullPointerException("barValue is marked @NonNull but is null");
|
||||
}
|
||||
if (this.bars$key == null) {
|
||||
this.bars$key = new java.util.ArrayList<@NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@NonNull Integer>();
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
this.bars$key.add(barKey);
|
||||
this.bars$value.add(barValue);
|
||||
return this;
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public BuilderSingularAnnotatedTypesBuilder bars(final java.util.Map<? extends @NonNull String, ? extends @NonNull Integer> bars) {
|
||||
public BuilderSingularAnnotatedTypesBuilder bars(final java.util.Map<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> bars) {
|
||||
if (this.bars$key == null) {
|
||||
this.bars$key = new java.util.ArrayList<@NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@NonNull Integer>();
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
for (final java.util.Map.Entry<? extends @NonNull String, ? extends @NonNull Integer> $lombokEntry : bars.entrySet()) {
|
||||
for (final java.util.Map.Entry<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> $lombokEntry : bars.entrySet()) {
|
||||
this.bars$key.add($lombokEntry.getKey());
|
||||
this.bars$value.add($lombokEntry.getValue());
|
||||
}
|
||||
@@ -69,7 +83,7 @@ class BuilderSingularAnnotatedTypes {
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public BuilderSingularAnnotatedTypes build() {
|
||||
java.util.Set<@NonNull String> foos;
|
||||
java.util.Set<@MyAnnotation @NonNull String> foos;
|
||||
switch (this.foos == null ? 0 : this.foos.size()) {
|
||||
case 0:
|
||||
foos = java.util.Collections.emptySet();
|
||||
@@ -78,11 +92,11 @@ class BuilderSingularAnnotatedTypes {
|
||||
foos = java.util.Collections.singleton(this.foos.get(0));
|
||||
break;
|
||||
default:
|
||||
foos = new java.util.LinkedHashSet<@NonNull String>(this.foos.size() < 1073741824 ? 1 + this.foos.size() + (this.foos.size() - 3) / 3 : java.lang.Integer.MAX_VALUE);
|
||||
foos = new java.util.LinkedHashSet<@MyAnnotation @NonNull String>(this.foos.size() < 1073741824 ? 1 + this.foos.size() + (this.foos.size() - 3) / 3 : java.lang.Integer.MAX_VALUE);
|
||||
foos.addAll(this.foos);
|
||||
foos = java.util.Collections.unmodifiableSet(foos);
|
||||
}
|
||||
java.util.Map<@NonNull String, @NonNull Integer> bars;
|
||||
java.util.Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
switch (this.bars$key == null ? 0 : this.bars$key.size()) {
|
||||
case 0:
|
||||
bars = java.util.Collections.emptyMap();
|
||||
@@ -91,8 +105,8 @@ class BuilderSingularAnnotatedTypes {
|
||||
bars = java.util.Collections.singletonMap(this.bars$key.get(0), this.bars$value.get(0));
|
||||
break;
|
||||
default:
|
||||
bars = new java.util.LinkedHashMap<@NonNull String, @NonNull Integer>(this.bars$key.size() < 1073741824 ? 1 + this.bars$key.size() + (this.bars$key.size() - 3) / 3 : java.lang.Integer.MAX_VALUE);
|
||||
for (int $i = 0; $i < this.bars$key.size(); $i++) bars.put(this.bars$key.get($i), (@NonNull Integer) this.bars$value.get($i));
|
||||
bars = new java.util.LinkedHashMap<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer>(this.bars$key.size() < 1073741824 ? 1 + this.bars$key.size() + (this.bars$key.size() - 3) / 3 : java.lang.Integer.MAX_VALUE);
|
||||
for (int $i = 0; $i < this.bars$key.size(); $i++) bars.put(this.bars$key.get($i), (@MyAnnotation @NonNull Integer) this.bars$value.get($i));
|
||||
bars = java.util.Collections.unmodifiableMap(bars);
|
||||
}
|
||||
return new BuilderSingularAnnotatedTypes(foos, bars);
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
import lombok.NonNull;
|
||||
@Target(ElementType.TYPE_USE)
|
||||
@interface MyAnnotation {
|
||||
}
|
||||
class SuperBuilderSingularAnnotatedTypes {
|
||||
private Set<@MyAnnotation @NonNull String> foos;
|
||||
private Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public static abstract class SuperBuilderSingularAnnotatedTypesBuilder<C extends SuperBuilderSingularAnnotatedTypes, B extends SuperBuilderSingularAnnotatedTypesBuilder<C, B>> {
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private java.util.ArrayList<@MyAnnotation @NonNull String> foos;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private java.util.ArrayList<@MyAnnotation @NonNull String> bars$key;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private java.util.ArrayList<@MyAnnotation @NonNull Integer> bars$value;
|
||||
@java.lang.SuppressWarnings("all")
|
||||
protected abstract B self();
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public abstract C build();
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B foo(@MyAnnotation @NonNull final String foo) {
|
||||
if (foo == null) {
|
||||
throw new java.lang.NullPointerException("foo is marked @NonNull but is null");
|
||||
}
|
||||
if (this.foos == null) this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.add(foo);
|
||||
return self();
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B foos(final java.util.Collection<? extends @MyAnnotation @NonNull String> foos) {
|
||||
if (this.foos == null) this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.addAll(foos);
|
||||
return self();
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B clearFoos() {
|
||||
if (this.foos != null) this.foos.clear();
|
||||
return self();
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B bar(@MyAnnotation @NonNull final String barKey, @MyAnnotation @NonNull final Integer barValue) {
|
||||
if (barKey == null) {
|
||||
throw new java.lang.NullPointerException("barKey is marked @NonNull but is null");
|
||||
}
|
||||
if (barValue == null) {
|
||||
throw new java.lang.NullPointerException("barValue is marked @NonNull but is null");
|
||||
}
|
||||
if (this.bars$key == null) {
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
this.bars$key.add(barKey);
|
||||
this.bars$value.add(barValue);
|
||||
return self();
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B bars(final java.util.Map<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> bars) {
|
||||
if (this.bars$key == null) {
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
for (final java.util.Map.Entry<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> $lombokEntry : bars.entrySet()) {
|
||||
this.bars$key.add($lombokEntry.getKey());
|
||||
this.bars$value.add($lombokEntry.getValue());
|
||||
}
|
||||
return self();
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B clearBars() {
|
||||
if (this.bars$key != null) {
|
||||
this.bars$key.clear();
|
||||
this.bars$value.clear();
|
||||
}
|
||||
return self();
|
||||
}
|
||||
@java.lang.Override
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public java.lang.String toString() {
|
||||
return "SuperBuilderSingularAnnotatedTypes.SuperBuilderSingularAnnotatedTypesBuilder(foos=" + this.foos + ", bars$key=" + this.bars$key + ", bars$value=" + this.bars$value + ")";
|
||||
}
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private static final class SuperBuilderSingularAnnotatedTypesBuilderImpl extends SuperBuilderSingularAnnotatedTypesBuilder<SuperBuilderSingularAnnotatedTypes, SuperBuilderSingularAnnotatedTypesBuilderImpl> {
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private SuperBuilderSingularAnnotatedTypesBuilderImpl() {
|
||||
}
|
||||
@java.lang.Override
|
||||
@java.lang.SuppressWarnings("all")
|
||||
protected SuperBuilderSingularAnnotatedTypesBuilderImpl self() {
|
||||
return this;
|
||||
}
|
||||
@java.lang.Override
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public SuperBuilderSingularAnnotatedTypes build() {
|
||||
return new SuperBuilderSingularAnnotatedTypes(this);
|
||||
}
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
protected SuperBuilderSingularAnnotatedTypes(final SuperBuilderSingularAnnotatedTypesBuilder<?, ?> b) {
|
||||
java.util.Set<@MyAnnotation @NonNull String> foos;
|
||||
switch (b.foos == null ? 0 : b.foos.size()) {
|
||||
case 0:
|
||||
foos = java.util.Collections.emptySet();
|
||||
break;
|
||||
case 1:
|
||||
foos = java.util.Collections.singleton(b.foos.get(0));
|
||||
break;
|
||||
default:
|
||||
foos = new java.util.LinkedHashSet<@MyAnnotation @NonNull String>(b.foos.size() < 1073741824 ? 1 + b.foos.size() + (b.foos.size() - 3) / 3 : java.lang.Integer.MAX_VALUE);
|
||||
foos.addAll(b.foos);
|
||||
foos = java.util.Collections.unmodifiableSet(foos);
|
||||
}
|
||||
this.foos = foos;
|
||||
java.util.Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
switch (b.bars$key == null ? 0 : b.bars$key.size()) {
|
||||
case 0:
|
||||
bars = java.util.Collections.emptyMap();
|
||||
break;
|
||||
case 1:
|
||||
bars = java.util.Collections.singletonMap(b.bars$key.get(0), b.bars$value.get(0));
|
||||
break;
|
||||
default:
|
||||
bars = new java.util.LinkedHashMap<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer>(b.bars$key.size() < 1073741824 ? 1 + b.bars$key.size() + (b.bars$key.size() - 3) / 3 : java.lang.Integer.MAX_VALUE);
|
||||
for (int $i = 0; $i < b.bars$key.size(); $i++) bars.put(b.bars$key.get($i), (@MyAnnotation @NonNull Integer) b.bars$value.get($i));
|
||||
bars = java.util.Collections.unmodifiableMap(bars);
|
||||
}
|
||||
this.bars = bars;
|
||||
}
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public static SuperBuilderSingularAnnotatedTypesBuilder<?, ?> builder() {
|
||||
return new SuperBuilderSingularAnnotatedTypesBuilderImpl();
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,10 @@ public class SuperBuilderWithNonNull {
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public abstract C build();
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B nonNullParentField(final String nonNullParentField) {
|
||||
public B nonNullParentField(@lombok.NonNull final String nonNullParentField) {
|
||||
if (nonNullParentField == null) {
|
||||
throw new java.lang.NullPointerException("nonNullParentField is marked @NonNull but is null");
|
||||
}
|
||||
this.nonNullParentField = nonNullParentField;
|
||||
nonNullParentField$set = true;
|
||||
return self();
|
||||
@@ -72,7 +75,10 @@ public class SuperBuilderWithNonNull {
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public abstract C build();
|
||||
@java.lang.SuppressWarnings("all")
|
||||
public B nonNullChildField(final String nonNullChildField) {
|
||||
public B nonNullChildField(@lombok.NonNull final String nonNullChildField) {
|
||||
if (nonNullChildField == null) {
|
||||
throw new java.lang.NullPointerException("nonNullChildField is marked @NonNull but is null");
|
||||
}
|
||||
this.nonNullChildField = nonNullChildField;
|
||||
return self();
|
||||
}
|
||||
|
||||
@@ -16,13 +16,13 @@ public @Builder class BuilderDefaultsWarnings {
|
||||
this.z = z;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderDefaultsWarningsBuilder item(String item) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderDefaultsWarningsBuilder item(final String item) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.add(item);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderDefaultsWarningsBuilder items(java.util.Collection<? extends String> items) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderDefaultsWarningsBuilder items(final java.util.Collection<? extends String> items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.addAll(items);
|
||||
|
||||
@@ -1,24 +1,32 @@
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
import lombok.NonNull;
|
||||
import lombok.Singular;
|
||||
@Target(ElementType.TYPE_USE) @interface MyAnnotation {
|
||||
}
|
||||
@lombok.Builder class BuilderSingularAnnotatedTypes {
|
||||
public static @java.lang.SuppressWarnings("all") class BuilderSingularAnnotatedTypesBuilder {
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@NonNull String> foos;
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@NonNull String> bars$key;
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@NonNull Integer> bars$value;
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@MyAnnotation @NonNull String> foos;
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@MyAnnotation @NonNull String> bars$key;
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@MyAnnotation @NonNull Integer> bars$value;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder foo(@NonNull String foo) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder foo(final @MyAnnotation @NonNull String foo) {
|
||||
if ((foo == null))
|
||||
{
|
||||
throw new java.lang.NullPointerException("foo is marked @NonNull but is null");
|
||||
}
|
||||
if ((this.foos == null))
|
||||
this.foos = new java.util.ArrayList<@NonNull String>();
|
||||
this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.add(foo);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder foos(java.util.Collection<? extends @NonNull String> foos) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder foos(final java.util.Collection<? extends @MyAnnotation @NonNull String> foos) {
|
||||
if ((this.foos == null))
|
||||
this.foos = new java.util.ArrayList<@NonNull String>();
|
||||
this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.addAll(foos);
|
||||
return this;
|
||||
}
|
||||
@@ -27,23 +35,31 @@ import lombok.Singular;
|
||||
this.foos.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder bar(@NonNull String barKey, @NonNull Integer barValue) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder bar(final @MyAnnotation @NonNull String barKey, final @MyAnnotation @NonNull Integer barValue) {
|
||||
if ((barKey == null))
|
||||
{
|
||||
throw new java.lang.NullPointerException("barKey is marked @NonNull but is null");
|
||||
}
|
||||
if ((barValue == null))
|
||||
{
|
||||
throw new java.lang.NullPointerException("barValue is marked @NonNull but is null");
|
||||
}
|
||||
if ((this.bars$key == null))
|
||||
{
|
||||
this.bars$key = new java.util.ArrayList<@NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@NonNull Integer>();
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
this.bars$key.add(barKey);
|
||||
this.bars$value.add(barValue);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder bars(java.util.Map<? extends @NonNull String, ? extends @NonNull Integer> bars) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder bars(final java.util.Map<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> bars) {
|
||||
if ((this.bars$key == null))
|
||||
{
|
||||
this.bars$key = new java.util.ArrayList<@NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@NonNull Integer>();
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
for (java.util.Map.Entry<? extends @NonNull String, ? extends @NonNull Integer> $lombokEntry : bars.entrySet())
|
||||
for (java.util.Map.Entry<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> $lombokEntry : bars.entrySet())
|
||||
{
|
||||
this.bars$key.add($lombokEntry.getKey());
|
||||
this.bars$value.add($lombokEntry.getValue());
|
||||
@@ -59,7 +75,7 @@ import lombok.Singular;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypes build() {
|
||||
java.util.Set<@NonNull String> foos;
|
||||
java.util.Set<@MyAnnotation @NonNull String> foos;
|
||||
switch (((this.foos == null) ? 0 : this.foos.size())) {
|
||||
case 0 :
|
||||
foos = java.util.Collections.emptySet();
|
||||
@@ -68,11 +84,11 @@ import lombok.Singular;
|
||||
foos = java.util.Collections.singleton(this.foos.get(0));
|
||||
break;
|
||||
default :
|
||||
foos = new java.util.LinkedHashSet<@NonNull String>(((this.foos.size() < 0x40000000) ? ((1 + this.foos.size()) + ((this.foos.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE));
|
||||
foos = new java.util.LinkedHashSet<@MyAnnotation @NonNull String>(((this.foos.size() < 0x40000000) ? ((1 + this.foos.size()) + ((this.foos.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE));
|
||||
foos.addAll(this.foos);
|
||||
foos = java.util.Collections.unmodifiableSet(foos);
|
||||
}
|
||||
java.util.Map<@NonNull String, @NonNull Integer> bars;
|
||||
java.util.Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
switch (((this.bars$key == null) ? 0 : this.bars$key.size())) {
|
||||
case 0 :
|
||||
bars = java.util.Collections.emptyMap();
|
||||
@@ -81,7 +97,7 @@ import lombok.Singular;
|
||||
bars = java.util.Collections.singletonMap(this.bars$key.get(0), this.bars$value.get(0));
|
||||
break;
|
||||
default :
|
||||
bars = new java.util.LinkedHashMap<@NonNull String, @NonNull Integer>(((this.bars$key.size() < 0x40000000) ? ((1 + this.bars$key.size()) + ((this.bars$key.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE));
|
||||
bars = new java.util.LinkedHashMap<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer>(((this.bars$key.size() < 0x40000000) ? ((1 + this.bars$key.size()) + ((this.bars$key.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE));
|
||||
for (int $i = 0;; ($i < this.bars$key.size()); $i ++)
|
||||
bars.put(this.bars$key.get($i), this.bars$value.get($i));
|
||||
bars = java.util.Collections.unmodifiableMap(bars);
|
||||
@@ -92,9 +108,9 @@ import lombok.Singular;
|
||||
return (((((("BuilderSingularAnnotatedTypes.BuilderSingularAnnotatedTypesBuilder(foos=" + this.foos) + ", bars$key=") + this.bars$key) + ", bars$value=") + this.bars$value) + ")");
|
||||
}
|
||||
}
|
||||
private @Singular Set<@NonNull String> foos;
|
||||
private @Singular Map<@NonNull String, @NonNull Integer> bars;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypes(final Set<@NonNull String> foos, final Map<@NonNull String, @NonNull Integer> bars) {
|
||||
private @Singular Set<@MyAnnotation @NonNull String> foos;
|
||||
private @Singular Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypes(final Set<@MyAnnotation @NonNull String> foos, final Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars) {
|
||||
super();
|
||||
this.foos = foos;
|
||||
this.bars = bars;
|
||||
@@ -102,4 +118,4 @@ import lombok.Singular;
|
||||
public static @java.lang.SuppressWarnings("all") BuilderSingularAnnotatedTypesBuilder builder() {
|
||||
return new BuilderSingularAnnotatedTypesBuilder();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,13 +14,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> card(T card) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> card(final T card) {
|
||||
if ((this.cards == null))
|
||||
this.cards = com.google.common.collect.ImmutableList.builder();
|
||||
this.cards.add(card);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> cards(java.lang.Iterable<? extends T> cards) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> cards(final java.lang.Iterable<? extends T> cards) {
|
||||
if ((this.cards == null))
|
||||
this.cards = com.google.common.collect.ImmutableList.builder();
|
||||
this.cards.addAll(cards);
|
||||
@@ -30,13 +30,13 @@ import lombok.Singular;
|
||||
this.cards = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> frog(Number frog) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> frog(final Number frog) {
|
||||
if ((this.frogs == null))
|
||||
this.frogs = com.google.common.collect.ImmutableList.builder();
|
||||
this.frogs.add(frog);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> frogs(java.lang.Iterable<? extends Number> frogs) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> frogs(final java.lang.Iterable<? extends Number> frogs) {
|
||||
if ((this.frogs == null))
|
||||
this.frogs = com.google.common.collect.ImmutableList.builder();
|
||||
this.frogs.addAll(frogs);
|
||||
@@ -46,13 +46,13 @@ import lombok.Singular;
|
||||
this.frogs = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> rawSet(java.lang.Object rawSet) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> rawSet(final java.lang.Object rawSet) {
|
||||
if ((this.rawSet == null))
|
||||
this.rawSet = com.google.common.collect.ImmutableSet.builder();
|
||||
this.rawSet.add(rawSet);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> rawSet(java.lang.Iterable<?> rawSet) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> rawSet(final java.lang.Iterable<?> rawSet) {
|
||||
if ((this.rawSet == null))
|
||||
this.rawSet = com.google.common.collect.ImmutableSet.builder();
|
||||
this.rawSet.addAll(rawSet);
|
||||
@@ -62,13 +62,13 @@ import lombok.Singular;
|
||||
this.rawSet = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> pass(String pass) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> pass(final String pass) {
|
||||
if ((this.passes == null))
|
||||
this.passes = com.google.common.collect.ImmutableSortedSet.naturalOrder();
|
||||
this.passes.add(pass);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> passes(java.lang.Iterable<? extends String> passes) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> passes(final java.lang.Iterable<? extends String> passes) {
|
||||
if ((this.passes == null))
|
||||
this.passes = com.google.common.collect.ImmutableSortedSet.naturalOrder();
|
||||
this.passes.addAll(passes);
|
||||
@@ -78,13 +78,13 @@ import lombok.Singular;
|
||||
this.passes = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> user(Number rowKey, Number columnKey, String value) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> user(final Number rowKey, final Number columnKey, final String value) {
|
||||
if ((this.users == null))
|
||||
this.users = com.google.common.collect.ImmutableTable.builder();
|
||||
this.users.put(rowKey, columnKey, value);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> users(com.google.common.collect.Table<? extends Number, ? extends Number, ? extends String> users) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaListsSetsBuilder<T> users(final com.google.common.collect.Table<? extends Number, ? extends Number, ? extends String> users) {
|
||||
if ((this.users == null))
|
||||
this.users = com.google.common.collect.ImmutableTable.builder();
|
||||
this.users.putAll(users);
|
||||
|
||||
@@ -10,13 +10,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> battleaxe(K key, V value) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> battleaxe(final K key, final V value) {
|
||||
if ((this.battleaxes == null))
|
||||
this.battleaxes = com.google.common.collect.ImmutableMap.builder();
|
||||
this.battleaxes.put(key, value);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> battleaxes(java.util.Map<? extends K, ? extends V> battleaxes) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> battleaxes(final java.util.Map<? extends K, ? extends V> battleaxes) {
|
||||
if ((this.battleaxes == null))
|
||||
this.battleaxes = com.google.common.collect.ImmutableMap.builder();
|
||||
this.battleaxes.putAll(battleaxes);
|
||||
@@ -26,13 +26,13 @@ import lombok.Singular;
|
||||
this.battleaxes = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> vertex(Integer key, V value) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> vertex(final Integer key, final V value) {
|
||||
if ((this.vertices == null))
|
||||
this.vertices = com.google.common.collect.ImmutableSortedMap.naturalOrder();
|
||||
this.vertices.put(key, value);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> vertices(java.util.Map<? extends Integer, ? extends V> vertices) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> vertices(final java.util.Map<? extends Integer, ? extends V> vertices) {
|
||||
if ((this.vertices == null))
|
||||
this.vertices = com.google.common.collect.ImmutableSortedMap.naturalOrder();
|
||||
this.vertices.putAll(vertices);
|
||||
@@ -42,13 +42,13 @@ import lombok.Singular;
|
||||
this.vertices = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> rawMap(java.lang.Object key, java.lang.Object value) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> rawMap(final java.lang.Object key, final java.lang.Object value) {
|
||||
if ((this.rawMap == null))
|
||||
this.rawMap = com.google.common.collect.ImmutableBiMap.builder();
|
||||
this.rawMap.put(key, value);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> rawMap(java.util.Map<?, ?> rawMap) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularGuavaMapsBuilder<K, V> rawMap(final java.util.Map<?, ?> rawMap) {
|
||||
if ((this.rawMap == null))
|
||||
this.rawMap = com.google.common.collect.ImmutableBiMap.builder();
|
||||
this.rawMap.putAll(rawMap);
|
||||
|
||||
@@ -10,13 +10,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularListsBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> child(T child) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> child(final T child) {
|
||||
if ((this.children == null))
|
||||
this.children = new java.util.ArrayList<T>();
|
||||
this.children.add(child);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> children(java.util.Collection<? extends T> children) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> children(final java.util.Collection<? extends T> children) {
|
||||
if ((this.children == null))
|
||||
this.children = new java.util.ArrayList<T>();
|
||||
this.children.addAll(children);
|
||||
@@ -27,13 +27,13 @@ import lombok.Singular;
|
||||
this.children.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> scarf(Number scarf) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> scarf(final Number scarf) {
|
||||
if ((this.scarves == null))
|
||||
this.scarves = new java.util.ArrayList<Number>();
|
||||
this.scarves.add(scarf);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> scarves(java.util.Collection<? extends Number> scarves) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> scarves(final java.util.Collection<? extends Number> scarves) {
|
||||
if ((this.scarves == null))
|
||||
this.scarves = new java.util.ArrayList<Number>();
|
||||
this.scarves.addAll(scarves);
|
||||
@@ -44,13 +44,13 @@ import lombok.Singular;
|
||||
this.scarves.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> rawList(java.lang.Object rawList) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> rawList(final java.lang.Object rawList) {
|
||||
if ((this.rawList == null))
|
||||
this.rawList = new java.util.ArrayList<java.lang.Object>();
|
||||
this.rawList.add(rawList);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> rawList(java.util.Collection<?> rawList) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularListsBuilder<T> rawList(final java.util.Collection<?> rawList) {
|
||||
if ((this.rawList == null))
|
||||
this.rawList = new java.util.ArrayList<java.lang.Object>();
|
||||
this.rawList.addAll(rawList);
|
||||
|
||||
@@ -14,7 +14,7 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> woman(K womanKey, V womanValue) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> woman(final K womanKey, final V womanValue) {
|
||||
if ((this.women$key == null))
|
||||
{
|
||||
this.women$key = new java.util.ArrayList<K>();
|
||||
@@ -24,7 +24,7 @@ import lombok.Singular;
|
||||
this.women$value.add(womanValue);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> women(java.util.Map<? extends K, ? extends V> women) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> women(final java.util.Map<? extends K, ? extends V> women) {
|
||||
if ((this.women$key == null))
|
||||
{
|
||||
this.women$key = new java.util.ArrayList<K>();
|
||||
@@ -45,7 +45,7 @@ import lombok.Singular;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> man(K manKey, Number manValue) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> man(final K manKey, final Number manValue) {
|
||||
if ((this.men$key == null))
|
||||
{
|
||||
this.men$key = new java.util.ArrayList<K>();
|
||||
@@ -55,7 +55,7 @@ import lombok.Singular;
|
||||
this.men$value.add(manValue);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> men(java.util.Map<? extends K, ? extends Number> men) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> men(final java.util.Map<? extends K, ? extends Number> men) {
|
||||
if ((this.men$key == null))
|
||||
{
|
||||
this.men$key = new java.util.ArrayList<K>();
|
||||
@@ -76,7 +76,7 @@ import lombok.Singular;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> rawMap(java.lang.Object rawMapKey, java.lang.Object rawMapValue) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> rawMap(final java.lang.Object rawMapKey, final java.lang.Object rawMapValue) {
|
||||
if ((this.rawMap$key == null))
|
||||
{
|
||||
this.rawMap$key = new java.util.ArrayList<java.lang.Object>();
|
||||
@@ -86,7 +86,7 @@ import lombok.Singular;
|
||||
this.rawMap$value.add(rawMapValue);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> rawMap(java.util.Map<?, ?> rawMap) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> rawMap(final java.util.Map<?, ?> rawMap) {
|
||||
if ((this.rawMap$key == null))
|
||||
{
|
||||
this.rawMap$key = new java.util.ArrayList<java.lang.Object>();
|
||||
@@ -107,7 +107,7 @@ import lombok.Singular;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> stringMap(String stringMapKey, V stringMapValue) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> stringMap(final String stringMapKey, final V stringMapValue) {
|
||||
if ((this.stringMap$key == null))
|
||||
{
|
||||
this.stringMap$key = new java.util.ArrayList<String>();
|
||||
@@ -117,7 +117,7 @@ import lombok.Singular;
|
||||
this.stringMap$value.add(stringMapValue);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> stringMap(java.util.Map<? extends String, ? extends V> stringMap) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularMapsBuilder<K, V> stringMap(final java.util.Map<? extends String, ? extends V> stringMap) {
|
||||
if ((this.stringMap$key == null))
|
||||
{
|
||||
this.stringMap$key = new java.util.ArrayList<String>();
|
||||
|
||||
@@ -8,13 +8,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder things(String things) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder things(final String things) {
|
||||
if ((this.things == null))
|
||||
this.things = new java.util.ArrayList<String>();
|
||||
this.things.add(things);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder things(java.util.Collection<? extends String> things) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder things(final java.util.Collection<? extends String> things) {
|
||||
if ((this.things == null))
|
||||
this.things = new java.util.ArrayList<String>();
|
||||
this.things.addAll(things);
|
||||
@@ -25,13 +25,13 @@ import lombok.Singular;
|
||||
this.things.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder widget(String widget) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder widget(final String widget) {
|
||||
if ((this.widgets == null))
|
||||
this.widgets = new java.util.ArrayList<String>();
|
||||
this.widgets.add(widget);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder widgets(java.util.Collection<? extends String> widgets) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder widgets(final java.util.Collection<? extends String> widgets) {
|
||||
if ((this.widgets == null))
|
||||
this.widgets = new java.util.ArrayList<String>();
|
||||
this.widgets.addAll(widgets);
|
||||
@@ -42,13 +42,13 @@ import lombok.Singular;
|
||||
this.widgets.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder items(String items) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder items(final String items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.add(items);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder items(java.util.Collection<? extends String> items) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularNoAutoBuilder items(final java.util.Collection<? extends String> items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.addAll(items);
|
||||
|
||||
@@ -10,13 +10,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder dangerMouse(String dangerMouse) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder dangerMouse(final String dangerMouse) {
|
||||
if ((this.dangerMice == null))
|
||||
this.dangerMice = com.google.common.collect.ImmutableSet.builder();
|
||||
this.dangerMice.add(dangerMouse);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder dangerMice(java.lang.Iterable<? extends String> dangerMice) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder dangerMice(final java.lang.Iterable<? extends String> dangerMice) {
|
||||
if ((this.dangerMice == null))
|
||||
this.dangerMice = com.google.common.collect.ImmutableSet.builder();
|
||||
this.dangerMice.addAll(dangerMice);
|
||||
@@ -26,13 +26,13 @@ import lombok.Singular;
|
||||
this.dangerMice = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder thing(Integer key, Number value) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder thing(final Integer key, final Number value) {
|
||||
if ((this.things == null))
|
||||
this.things = com.google.common.collect.ImmutableSortedMap.naturalOrder();
|
||||
this.things.put(key, value);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder things(java.util.Map<? extends Integer, ? extends Number> things) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder things(final java.util.Map<? extends Integer, ? extends Number> things) {
|
||||
if ((this.things == null))
|
||||
this.things = com.google.common.collect.ImmutableSortedMap.naturalOrder();
|
||||
this.things.putAll(things);
|
||||
@@ -42,13 +42,13 @@ import lombok.Singular;
|
||||
this.things = null;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder doohickey(Class<?> doohickey) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder doohickey(final Class<?> doohickey) {
|
||||
if ((this.doohickeys == null))
|
||||
this.doohickeys = com.google.common.collect.ImmutableList.builder();
|
||||
this.doohickeys.add(doohickey);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder doohickeys(java.lang.Iterable<? extends Class<?>> doohickeys) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularRedirectToGuavaBuilder doohickeys(final java.lang.Iterable<? extends Class<?>> doohickeys) {
|
||||
if ((this.doohickeys == null))
|
||||
this.doohickeys = com.google.common.collect.ImmutableList.builder();
|
||||
this.doohickeys.addAll(doohickeys);
|
||||
|
||||
@@ -10,13 +10,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> dangerMouse(T dangerMouse) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> dangerMouse(final T dangerMouse) {
|
||||
if ((this.dangerMice == null))
|
||||
this.dangerMice = new java.util.ArrayList<T>();
|
||||
this.dangerMice.add(dangerMouse);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> dangerMice(java.util.Collection<? extends T> dangerMice) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> dangerMice(final java.util.Collection<? extends T> dangerMice) {
|
||||
if ((this.dangerMice == null))
|
||||
this.dangerMice = new java.util.ArrayList<T>();
|
||||
this.dangerMice.addAll(dangerMice);
|
||||
@@ -27,13 +27,13 @@ import lombok.Singular;
|
||||
this.dangerMice.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> octopus(Number octopus) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> octopus(final Number octopus) {
|
||||
if ((this.octopodes == null))
|
||||
this.octopodes = new java.util.ArrayList<Number>();
|
||||
this.octopodes.add(octopus);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> octopodes(java.util.Collection<? extends Number> octopodes) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> octopodes(final java.util.Collection<? extends Number> octopodes) {
|
||||
if ((this.octopodes == null))
|
||||
this.octopodes = new java.util.ArrayList<Number>();
|
||||
this.octopodes.addAll(octopodes);
|
||||
@@ -44,13 +44,13 @@ import lombok.Singular;
|
||||
this.octopodes.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> rawSet(java.lang.Object rawSet) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> rawSet(final java.lang.Object rawSet) {
|
||||
if ((this.rawSet == null))
|
||||
this.rawSet = new java.util.ArrayList<java.lang.Object>();
|
||||
this.rawSet.add(rawSet);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> rawSet(java.util.Collection<?> rawSet) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> rawSet(final java.util.Collection<?> rawSet) {
|
||||
if ((this.rawSet == null))
|
||||
this.rawSet = new java.util.ArrayList<java.lang.Object>();
|
||||
this.rawSet.addAll(rawSet);
|
||||
@@ -61,13 +61,13 @@ import lombok.Singular;
|
||||
this.rawSet.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> stringSet(String stringSet) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> stringSet(final String stringSet) {
|
||||
if ((this.stringSet == null))
|
||||
this.stringSet = new java.util.ArrayList<String>();
|
||||
this.stringSet.add(stringSet);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> stringSet(java.util.Collection<? extends String> stringSet) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularSetsBuilder<T> stringSet(final java.util.Collection<? extends String> stringSet) {
|
||||
if ((this.stringSet == null))
|
||||
this.stringSet = new java.util.ArrayList<String>();
|
||||
this.stringSet.addAll(stringSet);
|
||||
|
||||
@@ -5,13 +5,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularToBuilderWithNullBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularToBuilderWithNullBuilder elem(String elem) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularToBuilderWithNullBuilder elem(final String elem) {
|
||||
if ((this.elems == null))
|
||||
this.elems = new java.util.ArrayList<String>();
|
||||
this.elems.add(elem);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularToBuilderWithNullBuilder elems(java.util.Collection<? extends String> elems) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularToBuilderWithNullBuilder elems(final java.util.Collection<? extends String> elems) {
|
||||
if ((this.elems == null))
|
||||
this.elems = new java.util.ArrayList<String>();
|
||||
this.elems.addAll(elems);
|
||||
|
||||
@@ -5,13 +5,13 @@ import lombok.Singular;
|
||||
@java.lang.SuppressWarnings("all") BuilderSingularWithPrefixesBuilder() {
|
||||
super();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularWithPrefixesBuilder elem(String elem) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularWithPrefixesBuilder elem(final String elem) {
|
||||
if ((this.elems == null))
|
||||
this.elems = new java.util.ArrayList<String>();
|
||||
this.elems.add(elem);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularWithPrefixesBuilder elems(java.util.Collection<? extends String> elems) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderSingularWithPrefixesBuilder elems(final java.util.Collection<? extends String> elems) {
|
||||
if ((this.elems == null))
|
||||
this.elems = new java.util.ArrayList<String>();
|
||||
this.elems.addAll(elems);
|
||||
|
||||
@@ -18,13 +18,13 @@ public @Builder class BuilderWithDeprecated {
|
||||
this.dep2 = dep2;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder string(String string) {
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder string(final String string) {
|
||||
if ((this.strings == null))
|
||||
this.strings = new java.util.ArrayList<String>();
|
||||
this.strings.add(string);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder strings(java.util.Collection<? extends String> strings) {
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder strings(final java.util.Collection<? extends String> strings) {
|
||||
if ((this.strings == null))
|
||||
this.strings = new java.util.ArrayList<String>();
|
||||
this.strings.addAll(strings);
|
||||
@@ -35,13 +35,13 @@ public @Builder class BuilderWithDeprecated {
|
||||
this.strings.clear();
|
||||
return this;
|
||||
}
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder number(Integer number) {
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder number(final Integer number) {
|
||||
if ((this.numbers == null))
|
||||
this.numbers = com.google.common.collect.ImmutableList.builder();
|
||||
this.numbers.add(number);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder numbers(java.lang.Iterable<? extends Integer> numbers) {
|
||||
public @java.lang.Deprecated @java.lang.SuppressWarnings("all") BuilderWithDeprecatedBuilder numbers(final java.lang.Iterable<? extends Integer> numbers) {
|
||||
if ((this.numbers == null))
|
||||
this.numbers = com.google.common.collect.ImmutableList.builder();
|
||||
this.numbers.addAll(numbers);
|
||||
|
||||
@@ -21,13 +21,13 @@ import lombok.Builder;
|
||||
this.foo = foo;
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderWithToBuilderBuilder<T> bar(T bar) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderWithToBuilderBuilder<T> bar(final T bar) {
|
||||
if ((this.bars == null))
|
||||
this.bars = new java.util.ArrayList<T>();
|
||||
this.bars.add(bar);
|
||||
return this;
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") BuilderWithToBuilderBuilder<T> bars(java.util.Collection<? extends T> bars) {
|
||||
public @java.lang.SuppressWarnings("all") BuilderWithToBuilderBuilder<T> bars(final java.util.Collection<? extends T> bars) {
|
||||
if ((this.bars == null))
|
||||
this.bars = new java.util.ArrayList<T>();
|
||||
this.bars.addAll(bars);
|
||||
|
||||
@@ -13,13 +13,13 @@ public class SuperBuilderBasic {
|
||||
this.field1 = field1;
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B item(String item) {
|
||||
public @java.lang.SuppressWarnings("all") B item(final String item) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.add(item);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B items(java.util.Collection<? extends String> items) {
|
||||
public @java.lang.SuppressWarnings("all") B items(final java.util.Collection<? extends String> items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.addAll(items);
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
import lombok.NonNull;
|
||||
import lombok.Singular;
|
||||
@Target(ElementType.TYPE_USE) @interface MyAnnotation {
|
||||
}
|
||||
@lombok.experimental.SuperBuilder class SuperBuilderSingularAnnotatedTypes {
|
||||
public static abstract @java.lang.SuppressWarnings("all") class SuperBuilderSingularAnnotatedTypesBuilder<C extends SuperBuilderSingularAnnotatedTypes, B extends SuperBuilderSingularAnnotatedTypesBuilder<C, B>> {
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@MyAnnotation @NonNull String> foos;
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@MyAnnotation @NonNull String> bars$key;
|
||||
private @java.lang.SuppressWarnings("all") java.util.ArrayList<@MyAnnotation @NonNull Integer> bars$value;
|
||||
public SuperBuilderSingularAnnotatedTypesBuilder() {
|
||||
super();
|
||||
}
|
||||
protected abstract @java.lang.SuppressWarnings("all") B self();
|
||||
public abstract @java.lang.SuppressWarnings("all") C build();
|
||||
public @java.lang.SuppressWarnings("all") B foo(final @MyAnnotation @NonNull String foo) {
|
||||
if ((foo == null))
|
||||
{
|
||||
throw new java.lang.NullPointerException("foo is marked @NonNull but is null");
|
||||
}
|
||||
if ((this.foos == null))
|
||||
this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.add(foo);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B foos(final java.util.Collection<? extends @MyAnnotation @NonNull String> foos) {
|
||||
if ((this.foos == null))
|
||||
this.foos = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.foos.addAll(foos);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B clearFoos() {
|
||||
if ((this.foos != null))
|
||||
this.foos.clear();
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B bar(final @MyAnnotation @NonNull String barKey, final @MyAnnotation @NonNull Integer barValue) {
|
||||
if ((barKey == null))
|
||||
{
|
||||
throw new java.lang.NullPointerException("barKey is marked @NonNull but is null");
|
||||
}
|
||||
if ((barValue == null))
|
||||
{
|
||||
throw new java.lang.NullPointerException("barValue is marked @NonNull but is null");
|
||||
}
|
||||
if ((this.bars$key == null))
|
||||
{
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
this.bars$key.add(barKey);
|
||||
this.bars$value.add(barValue);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B bars(final java.util.Map<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> bars) {
|
||||
if ((this.bars$key == null))
|
||||
{
|
||||
this.bars$key = new java.util.ArrayList<@MyAnnotation @NonNull String>();
|
||||
this.bars$value = new java.util.ArrayList<@MyAnnotation @NonNull Integer>();
|
||||
}
|
||||
for (java.util.Map.Entry<? extends @MyAnnotation @NonNull String, ? extends @MyAnnotation @NonNull Integer> $lombokEntry : bars.entrySet())
|
||||
{
|
||||
this.bars$key.add($lombokEntry.getKey());
|
||||
this.bars$value.add($lombokEntry.getValue());
|
||||
}
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B clearBars() {
|
||||
if ((this.bars$key != null))
|
||||
{
|
||||
this.bars$key.clear();
|
||||
this.bars$value.clear();
|
||||
}
|
||||
return self();
|
||||
}
|
||||
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() {
|
||||
return (((((("SuperBuilderSingularAnnotatedTypes.SuperBuilderSingularAnnotatedTypesBuilder(foos=" + this.foos) + ", bars$key=") + this.bars$key) + ", bars$value=") + this.bars$value) + ")");
|
||||
}
|
||||
}
|
||||
private static final @java.lang.SuppressWarnings("all") class SuperBuilderSingularAnnotatedTypesBuilderImpl extends SuperBuilderSingularAnnotatedTypesBuilder<SuperBuilderSingularAnnotatedTypes, SuperBuilderSingularAnnotatedTypesBuilderImpl> {
|
||||
private SuperBuilderSingularAnnotatedTypesBuilderImpl() {
|
||||
super();
|
||||
}
|
||||
protected @java.lang.Override @java.lang.SuppressWarnings("all") SuperBuilderSingularAnnotatedTypesBuilderImpl self() {
|
||||
return this;
|
||||
}
|
||||
public @java.lang.Override @java.lang.SuppressWarnings("all") SuperBuilderSingularAnnotatedTypes build() {
|
||||
return new SuperBuilderSingularAnnotatedTypes(this);
|
||||
}
|
||||
}
|
||||
private @Singular Set<@MyAnnotation @NonNull String> foos;
|
||||
private @Singular Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
protected @java.lang.SuppressWarnings("all") SuperBuilderSingularAnnotatedTypes(final SuperBuilderSingularAnnotatedTypesBuilder<?, ?> b) {
|
||||
super();
|
||||
java.util.Set<@MyAnnotation @NonNull String> foos;
|
||||
switch (((b.foos == null) ? 0 : b.foos.size())) {
|
||||
case 0 :
|
||||
foos = java.util.Collections.emptySet();
|
||||
break;
|
||||
case 1 :
|
||||
foos = java.util.Collections.singleton(b.foos.get(0));
|
||||
break;
|
||||
default :
|
||||
foos = new java.util.LinkedHashSet<@MyAnnotation @NonNull String>(((b.foos.size() < 0x40000000) ? ((1 + b.foos.size()) + ((b.foos.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE));
|
||||
foos.addAll(b.foos);
|
||||
foos = java.util.Collections.unmodifiableSet(foos);
|
||||
}
|
||||
this.foos = foos;
|
||||
java.util.Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
switch (((b.bars$key == null) ? 0 : b.bars$key.size())) {
|
||||
case 0 :
|
||||
bars = java.util.Collections.emptyMap();
|
||||
break;
|
||||
case 1 :
|
||||
bars = java.util.Collections.singletonMap(b.bars$key.get(0), b.bars$value.get(0));
|
||||
break;
|
||||
default :
|
||||
bars = new java.util.LinkedHashMap<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer>(((b.bars$key.size() < 0x40000000) ? ((1 + b.bars$key.size()) + ((b.bars$key.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE));
|
||||
for (int $i = 0;; ($i < b.bars$key.size()); $i ++)
|
||||
bars.put(b.bars$key.get($i), b.bars$value.get($i));
|
||||
bars = java.util.Collections.unmodifiableMap(bars);
|
||||
}
|
||||
this.bars = bars;
|
||||
}
|
||||
public static @java.lang.SuppressWarnings("all") SuperBuilderSingularAnnotatedTypesBuilder<?, ?> builder() {
|
||||
return new SuperBuilderSingularAnnotatedTypesBuilderImpl();
|
||||
}
|
||||
}
|
||||
@@ -13,13 +13,13 @@ public class SuperBuilderWithCustomBuilderMethod {
|
||||
this.field1 = field1;
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B item(String item) {
|
||||
public @java.lang.SuppressWarnings("all") B item(final String item) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.add(item);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B items(java.util.Collection<? extends String> items) {
|
||||
public @java.lang.SuppressWarnings("all") B items(final java.util.Collection<? extends String> items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.addAll(items);
|
||||
|
||||
@@ -13,13 +13,13 @@ public class SuperBuilderWithGenerics {
|
||||
this.field1 = field1;
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B item(String item) {
|
||||
public @java.lang.SuppressWarnings("all") B item(final String item) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.add(item);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B items(java.util.Collection<? extends String> items) {
|
||||
public @java.lang.SuppressWarnings("all") B items(final java.util.Collection<? extends String> items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.addAll(items);
|
||||
|
||||
@@ -13,13 +13,13 @@ public class SuperBuilderWithGenerics2 {
|
||||
this.field1 = field1;
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B item(String item) {
|
||||
public @java.lang.SuppressWarnings("all") B item(final String item) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.add(item);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B items(java.util.Collection<? extends String> items) {
|
||||
public @java.lang.SuppressWarnings("all") B items(final java.util.Collection<? extends String> items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.addAll(items);
|
||||
|
||||
@@ -9,7 +9,7 @@ public class SuperBuilderWithNonNull {
|
||||
}
|
||||
protected abstract @java.lang.SuppressWarnings("all") B self();
|
||||
public abstract @java.lang.SuppressWarnings("all") C build();
|
||||
public @java.lang.SuppressWarnings("all") B nonNullParentField(final String nonNullParentField) {
|
||||
public @java.lang.SuppressWarnings("all") B nonNullParentField(final @lombok.NonNull String nonNullParentField) {
|
||||
this.nonNullParentField = nonNullParentField;
|
||||
nonNullParentField$set = true;
|
||||
return self();
|
||||
@@ -56,7 +56,7 @@ public class SuperBuilderWithNonNull {
|
||||
}
|
||||
protected abstract @java.lang.Override @java.lang.SuppressWarnings("all") B self();
|
||||
public abstract @java.lang.Override @java.lang.SuppressWarnings("all") C build();
|
||||
public @java.lang.SuppressWarnings("all") B nonNullChildField(final String nonNullChildField) {
|
||||
public @java.lang.SuppressWarnings("all") B nonNullChildField(final @lombok.NonNull String nonNullChildField) {
|
||||
this.nonNullChildField = nonNullChildField;
|
||||
return self();
|
||||
}
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
this.otherField = otherField;
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B item(String item) {
|
||||
public @java.lang.SuppressWarnings("all") B item(final String item) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.add(item);
|
||||
return self();
|
||||
}
|
||||
public @java.lang.SuppressWarnings("all") B items(java.util.Collection<? extends String> items) {
|
||||
public @java.lang.SuppressWarnings("all") B items(final java.util.Collection<? extends String> items) {
|
||||
if ((this.items == null))
|
||||
this.items = new java.util.ArrayList<String>();
|
||||
this.items.addAll(items);
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
//VERSION 8:
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
|
||||
import lombok.NonNull;
|
||||
import lombok.Singular;
|
||||
|
||||
@Target(ElementType.TYPE_USE)
|
||||
@interface MyAnnotation {}
|
||||
@lombok.Builder
|
||||
class BuilderSingularAnnotatedTypes {
|
||||
@Singular private Set<@NonNull String> foos;
|
||||
@Singular private Map<@NonNull String, @NonNull Integer> bars;
|
||||
@Singular private Set<@MyAnnotation @NonNull String> foos;
|
||||
@Singular private Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//VERSION 8:
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
import lombok.NonNull;
|
||||
import lombok.Singular;
|
||||
@Target(ElementType.TYPE_USE)
|
||||
@interface MyAnnotation {}
|
||||
@lombok.experimental.SuperBuilder
|
||||
class SuperBuilderSingularAnnotatedTypes {
|
||||
@Singular private Set<@MyAnnotation @NonNull String> foos;
|
||||
@Singular private Map<@MyAnnotation @NonNull String, @MyAnnotation @NonNull Integer> bars;
|
||||
}
|
||||
Reference in new issue
Block a user