From 63aefa41e432a050496e9f96c6ce570dde276e18 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Mon, 26 Jan 2015 08:46:41 +0100 Subject: documentation for @Singular. --- usage_examples/BuilderExample_post.jpage | 62 ++++++++ usage_examples/BuilderExample_pre.jpage | 10 ++ usage_examples/Singular-snippetExample_post.jpage | 160 +++++++++++++++++++++ usage_examples/Singular-snippetExample_pre.jpage | 14 ++ .../experimental/BuilderExample_post.jpage | 40 ------ .../experimental/BuilderExample_pre.jpage | 7 - 6 files changed, 246 insertions(+), 47 deletions(-) create mode 100644 usage_examples/BuilderExample_post.jpage create mode 100644 usage_examples/BuilderExample_pre.jpage create mode 100644 usage_examples/Singular-snippetExample_post.jpage create mode 100644 usage_examples/Singular-snippetExample_pre.jpage delete mode 100644 usage_examples/experimental/BuilderExample_post.jpage delete mode 100644 usage_examples/experimental/BuilderExample_pre.jpage (limited to 'usage_examples') diff --git a/usage_examples/BuilderExample_post.jpage b/usage_examples/BuilderExample_post.jpage new file mode 100644 index 00000000..0446a0dc --- /dev/null +++ b/usage_examples/BuilderExample_post.jpage @@ -0,0 +1,62 @@ +import java.util.Set; + +public class BuilderExample { + private String name; + private int age; + private Set occupations; + + BuilderExample(String name, int age, Set occupations) { + this.name = name; + this.age = age; + this.occupations = occupations; + } + + public static BuilderExampleBuilder builder() { + return new BuilderExampleBuilder(); + } + + public static class BuilderExampleBuilder { + private String name; + private int age; + private java.util.ArrayList occupations; + + BuilderExampleBuilder() { + } + + public BuilderExampleBuilder name(String name) { + this.name = name; + return this; + } + + public BuilderExampleBuilder age(int age) { + this.age = age; + return this; + } + + public BuilderExampleBuilder occupation(String occupation) { + if (this.occupations == null) { + this.occupations = new java.util.ArrayList(); + } + this.occupations.add(occupation); + } + + public BuilderExampleBuilder occupations(Collection occupations) { + if (this.occupations == null) { + this.occupations = new java.util.ArrayList(); + } + this.occupations.addAll(occupations); + } + + public BuilderExample build() { + // complicated switch statement to produce a compact properly sized immutable set omitted. + // go to http://projectlombok.org/features/Singular-snippet.html to see it. + Set occupations = ...; + return new BuilderExample(name, age, occupations); + } + + @java.lang.Override + public String toString() { + return "BuilderExample.BuilderExampleBuilder(name = " + this.name + ", age = " + this.age + ", occupations = " + this.occupations + ")"; + } + } +} \ No newline at end of file diff --git a/usage_examples/BuilderExample_pre.jpage b/usage_examples/BuilderExample_pre.jpage new file mode 100644 index 00000000..374799ad --- /dev/null +++ b/usage_examples/BuilderExample_pre.jpage @@ -0,0 +1,10 @@ +import lombok.Builder; +import lombok.Singular; +import java.util.Set; + +@Builder +public class BuilderExample { + private String name; + private int age; + @Singular Set occupations; +} diff --git a/usage_examples/Singular-snippetExample_post.jpage b/usage_examples/Singular-snippetExample_post.jpage new file mode 100644 index 00000000..689d97e8 --- /dev/null +++ b/usage_examples/Singular-snippetExample_post.jpage @@ -0,0 +1,160 @@ +import java.util.Collection; +import java.util.Set; +import java.util.SortedMap; +import com.google.common.collect.ImmutableList; + +public class SingularExample { + private Set occupations; + private ImmutableList axes; + private SortedMap elves; + private Collection minutiae; + + SingularExample(final Set occupations, final ImmutableList axes, final SortedMap elves, final Collection minutiae) { + this.occupations = occupations; + this.axes = axes; + this.elves = elves; + this.minutiae = minutiae; + } + + public static class SingularExampleBuilder { + private java.util.ArrayList occupations; + private com.google.common.collect.ImmutableList.Builder axes; + private java.util.ArrayList elves$key; + private java.util.ArrayList elves$value; + private java.util.ArrayList minutiae; + + SingularExampleBuilder() { + } + + public SingularExampleBuilder occupation(final String occupation) { + if (this.occupations == null) { + this.occupations = new java.util.ArrayList(); + } + + this.occupations.add(occupation); + return this; + } + + @java.lang.SuppressWarnings("all") + public SingularExampleBuilder occupations(final java.util.Collection occupations) { + if (this.occupations == null) { + this.occupations = new java.util.ArrayList(); + } + + this.occupations.addAll(occupations); + return this; + } + + public SingularExampleBuilder axis(final String axis) { + if (this.axes == null) { + this.axes = com.google.common.collect.ImmutableList.builder(); + } + + this.axes.add(axis); + return this; + } + + public SingularExampleBuilder axes(final java.lang.Iterable axes) { + if (this.axes == null) { + this.axes = com.google.common.collect.ImmutableList.builder(); + } + + this.axes.addAll(axes); + return this; + } + + public SingularExampleBuilder elf(final Integer elfKey, final T elfValue) { + if (this.elves$key == null) { + this.elves$key = new java.util.ArrayList(); + this.elves$value = new java.util.ArrayList(); + } + + this.elves$key.add(elfKey); + this.elves$value.add(elfValue); + return this; + } + + public SingularExampleBuilder elves(final java.util.Map elves) { + if (this.elves$key == null) { + this.elves$key = new java.util.ArrayList(); + this.elves$value = new java.util.ArrayList(); + } + + for (final java.util.Map.Entry $lombokEntry : elves.entrySet()) { + this.elves$key.add($lombokEntry.getKey()); + this.elves$value.add($lombokEntry.getValue()); + } + return this; + } + + public SingularExampleBuilder minutia(final java.lang.Object minutia) { + if (this.minutiae == null) { + this.minutiae = new java.util.ArrayList(); + } + + this.minutiae.add(minutia); + return this; + } + + public SingularExampleBuilder minutiae(final java.util.Collection minutiae) { + if (this.minutiae == null) { + this.minutiae = new java.util.ArrayList(); + } + + this.minutiae.addAll(minutiae); + return this; + } + + public SingularExample build() { + java.util.Set occupations; + switch (this.occupations == null ? 0 : this.occupations.size()) { + case 0: + occupations = java.util.Collections.emptySet(); + break; + + case 1: + occupations = java.util.Collections.singleton(this.occupations.get(0)); + break; + + default: + occupations = new java.util.LinkedHashSet(this.occupations.size() < 1073741824 ? 1 + this.occupations.size() + (this.occupations.size() - 3) / 3 : java.lang.Integer.MAX_VALUE); + occupations.addAll(this.occupations); + occupations = java.util.Collections.unmodifiableSet(occupations); + + } + + com.google.common.collect.ImmutableList axes = this.axes == null ? com.google.common.collect.ImmutableList.of() : this.axes.build(); + + java.util.SortedMap elves = new java.util.TreeMap(); + if (this.elves$key != null) for (int $i = 0; $i < (this.elves$key == null ? 0 : this.elves$key.size()); $i++) elves.put(this.elves$key.get($i), this.elves$value.get($i)); + elves = java.util.Collections.unmodifiableSortedMap(elves); + + java.util.Collection minutiae; + switch (this.minutiae == null ? 0 : this.minutiae.size()) { + case 0: + minutiae = java.util.Collections.emptyList(); + break; + + case 1: + minutiae = java.util.Collections.singletonList(this.minutiae.get(0)); + break; + + default: + minutiae = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.minutiae)); + + } + + return new SingularExample(occupations, axes, elves, minutiae); + } + + @java.lang.Override + public java.lang.String toString() { + return "SingularExample.SingularExampleBuilder(occupations=" + this.occupations + ", axes=" + this.axes + ", elves$key=" + this.elves$key + ", elves$value=" + this.elves$value + ", minutiae=" + this.minutiae + ")"; + } + } + + @java.lang.SuppressWarnings("all") + public static SingularExampleBuilder builder() { + return new SingularExampleBuilder(); + } +} diff --git a/usage_examples/Singular-snippetExample_pre.jpage b/usage_examples/Singular-snippetExample_pre.jpage new file mode 100644 index 00000000..65f6bbc8 --- /dev/null +++ b/usage_examples/Singular-snippetExample_pre.jpage @@ -0,0 +1,14 @@ +import lombok.Builder; +import lombok.Singular; +import java.util.Collection; +import java.util.Set; +import java.util.SortedMap; +import com.google.common.collect.ImmutableList; + +@Builder +public class SingularExample { + private @Singular Set occupations; + private @Singular("axis") ImmutableList axes; + private @Singular SortedMap elves; + private @Singular Collection minutiae; +} diff --git a/usage_examples/experimental/BuilderExample_post.jpage b/usage_examples/experimental/BuilderExample_post.jpage deleted file mode 100644 index 624b236b..00000000 --- a/usage_examples/experimental/BuilderExample_post.jpage +++ /dev/null @@ -1,40 +0,0 @@ -public class BuilderExample { - private String name; - private int age; - - BuilderExample(String name, int age) { - this.name = name; - this.age = age; - } - - public static BuilderExampleBuilder builder() { - return new BuilderExampleBuilder(); - } - - public static class BuilderExampleBuilder { - private String name; - private int age; - - BuilderExampleBuilder() { - } - - public BuilderExampleBuilder name(String name) { - this.name = name; - return this; - } - - public BuilderExampleBuilder age(int age) { - this.age = age; - return this; - } - - public BuilderExample build() { - return new BuilderExample(name, age); - } - - @java.lang.Override - public String toString() { - return "BuilderExample.BuilderExampleBuilder(name = " + this.name + ", age = " + this.age + ")"; - } - } -} \ No newline at end of file diff --git a/usage_examples/experimental/BuilderExample_pre.jpage b/usage_examples/experimental/BuilderExample_pre.jpage deleted file mode 100644 index 9c754352..00000000 --- a/usage_examples/experimental/BuilderExample_pre.jpage +++ /dev/null @@ -1,7 +0,0 @@ -import lombok.experimental.Builder; - -@Builder -public class BuilderExample { - private String name; - private int age; -} -- cgit