import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonAnySetter; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import lombok.Builder; import lombok.Singular; import lombok.extern.jackson.Jacksonized; public @Jacksonized @Builder @com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = JacksonBuilderSingular.JacksonBuilderSingularBuilder.class) class JacksonBuilderSingular { public static @java.lang.SuppressWarnings("all") @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "",buildMethodName = "build") class JacksonBuilderSingularBuilder { private @java.lang.SuppressWarnings("all") java.util.ArrayList any$key; private @java.lang.SuppressWarnings("all") java.util.ArrayList any$value; private @java.lang.SuppressWarnings("all") java.util.ArrayList values; private @java.lang.SuppressWarnings("all") com.google.common.collect.ImmutableMap.Builder guavaAny; private @java.lang.SuppressWarnings("all") com.google.common.collect.ImmutableList.Builder guavaValues; @java.lang.SuppressWarnings("all") JacksonBuilderSingularBuilder() { super(); } public @JsonAnySetter @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder any(final String anyKey, final Object anyValue) { if ((this.any$key == null)) { this.any$key = new java.util.ArrayList(); this.any$value = new java.util.ArrayList(); } this.any$key.add(anyKey); this.any$value.add(anyValue); return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder any(final java.util.Map any) { if ((any == null)) { throw new java.lang.NullPointerException("any cannot be null"); } if ((this.any$key == null)) { this.any$key = new java.util.ArrayList(); this.any$value = new java.util.ArrayList(); } for (java.util.Map.Entry $lombokEntry : any.entrySet()) { this.any$key.add($lombokEntry.getKey()); this.any$value.add($lombokEntry.getValue()); } return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearAny() { if ((this.any$key != null)) { this.any$key.clear(); this.any$value.clear(); } return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder value(final String value) { if ((this.values == null)) this.values = new java.util.ArrayList(); this.values.add(value); return this; } public @JsonProperty("v_a_l_u_e_s") @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder values(final java.util.Collection values) { if ((values == null)) { throw new java.lang.NullPointerException("values cannot be null"); } if ((this.values == null)) this.values = new java.util.ArrayList(); this.values.addAll(values); return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearValues() { if ((this.values != null)) this.values.clear(); return this; } public @JsonAnySetter @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaAny(final String key, final Object value) { if ((this.guavaAny == null)) this.guavaAny = com.google.common.collect.ImmutableMap.builder(); this.guavaAny.put(key, value); return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaAny(final java.util.Map guavaAny) { if ((guavaAny == null)) { throw new java.lang.NullPointerException("guavaAny cannot be null"); } if ((this.guavaAny == null)) this.guavaAny = com.google.common.collect.ImmutableMap.builder(); this.guavaAny.putAll(guavaAny); return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearGuavaAny() { this.guavaAny = null; return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaValue(final String guavaValue) { if ((this.guavaValues == null)) this.guavaValues = com.google.common.collect.ImmutableList.builder(); this.guavaValues.add(guavaValue); return this; } public @JsonProperty("guava_v_a_l_u_e_s") @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaValues(final java.lang.Iterable guavaValues) { if ((guavaValues == null)) { throw new java.lang.NullPointerException("guavaValues cannot be null"); } if ((this.guavaValues == null)) this.guavaValues = com.google.common.collect.ImmutableList.builder(); this.guavaValues.addAll(guavaValues); return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearGuavaValues() { this.guavaValues = null; return this; } public @java.lang.SuppressWarnings("all") JacksonBuilderSingular build() { java.util.Map any; switch (((this.any$key == null) ? 0 : this.any$key.size())) { case 0 : any = java.util.Collections.emptyMap(); break; case 1 : any = java.util.Collections.singletonMap(this.any$key.get(0), this.any$value.get(0)); break; default : any = new java.util.LinkedHashMap(((this.any$key.size() < 0x40000000) ? ((1 + this.any$key.size()) + ((this.any$key.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE)); for (int $i = 0;; ($i < this.any$key.size()); $i ++) any.put(this.any$key.get($i), this.any$value.get($i)); any = java.util.Collections.unmodifiableMap(any); } java.util.List values; switch (((this.values == null) ? 0 : this.values.size())) { case 0 : values = java.util.Collections.emptyList(); break; case 1 : values = java.util.Collections.singletonList(this.values.get(0)); break; default : values = java.util.Collections.unmodifiableList(new java.util.ArrayList(this.values)); } com.google.common.collect.ImmutableMap guavaAny = ((this.guavaAny == null) ? com.google.common.collect.ImmutableMap.of() : this.guavaAny.build()); com.google.common.collect.ImmutableList guavaValues = ((this.guavaValues == null) ? com.google.common.collect.ImmutableList.of() : this.guavaValues.build()); return new JacksonBuilderSingular(any, values, guavaAny, guavaValues); } public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { return (((((((((("JacksonBuilderSingular.JacksonBuilderSingularBuilder(any$key=" + this.any$key) + ", any$value=") + this.any$value) + ", values=") + this.values) + ", guavaAny=") + this.guavaAny) + ", guavaValues=") + this.guavaValues) + ")"); } } private @JsonAnySetter @Singular("any") Map any; private @JsonProperty("v_a_l_u_e_s") @Singular List values; private @JsonAnySetter @Singular("guavaAny") ImmutableMap guavaAny; private @JsonProperty("guava_v_a_l_u_e_s") @Singular ImmutableList guavaValues; @java.lang.SuppressWarnings("all") JacksonBuilderSingular(final Map any, final List values, final ImmutableMap guavaAny, final ImmutableList guavaValues) { super(); this.any = any; this.values = values; this.guavaAny = guavaAny; this.guavaValues = guavaValues; } public static @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder builder() { return new JacksonBuilderSingular.JacksonBuilderSingularBuilder(); } }