From 9e644ceea547aaf1537b656709f3f0ae674b402e Mon Sep 17 00:00:00 2001 From: Falguni Vadodaria Date: Wed, 2 Sep 2020 15:51:43 -0700 Subject: [PATCH 1/3] Add RecordingRule and RecordingRulesUpdate --- .../java/com/twilio/type/RecordingRule.java | 249 ++++++++++++++++++ .../com/twilio/type/RecordingRulesUpdate.java | 43 +++ .../com/twilio/type/RecordingRuleTest.java | 82 ++++++ 3 files changed, 374 insertions(+) create mode 100644 src/main/java/com/twilio/type/RecordingRule.java create mode 100644 src/main/java/com/twilio/type/RecordingRulesUpdate.java create mode 100644 src/test/java/com/twilio/type/RecordingRuleTest.java diff --git a/src/main/java/com/twilio/type/RecordingRule.java b/src/main/java/com/twilio/type/RecordingRule.java new file mode 100644 index 0000000000..39dffa52ef --- /dev/null +++ b/src/main/java/com/twilio/type/RecordingRule.java @@ -0,0 +1,249 @@ +package com.twilio.type; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonValue; +import com.google.common.base.MoreObjects; +import com.twilio.converter.Promoter; + +import java.util.Objects; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class RecordingRule { + + public enum Type { + INCLUDE("include"), + EXCLUDE("exclude"); + + private final String value; + + Type(final String value) { + this.value = value; + } + + @JsonCreator + public static Type forValue(final String value) { + return Promoter.enumFromString(value, Type.values()); + } + + @JsonValue + public String value() { + return this.value; + } + + @Override + public String toString() { + return value; + } + } + + public enum Kind { + AUDIO("audio"), + DATA("data"), + VIDEO("video"); + + private final String value; + + Kind(final String value) { + this.value = value; + } + + @JsonCreator + public static Kind forValue(final String value) { + return Promoter.enumFromString(value, Kind.values()); + } + + @JsonValue + public String value() { + return this.value; + } + + @Override + public String toString() { + return value; + } + } + + + private static final RecordingRule recordAll = builder().withType(Type.INCLUDE).withAll().build(); + private static final RecordingRule recordNone = builder().withType(Type.EXCLUDE).withAll().build(); + + @JsonProperty("type") + private final Type type; + + @JsonProperty("all") + private final Boolean all; + + @JsonProperty("publisher") + private final String publisher; + + @JsonProperty("track") + private final String track; + + @JsonProperty("kind") + private final Kind kind; + + public RecordingRule(@JsonProperty("type") final Type type, + @JsonProperty("all") final Boolean all, + @JsonProperty("publisher") final String publisher, + @JsonProperty("track") final String track, + @JsonProperty("kind") final Kind kind) { + this.type = type; + this.all = all; + this.publisher = publisher; + this.track = track; + this.kind = kind; + } + + public RecordingRule() { + this.type = null; + this.all = null; + this.publisher = null; + this.track = null; + this.kind = null; + } + + public static BuilderStart builder() { + return new Builder(); + } + + public interface BuilderStart { + BuilderMiddle withType(final Type type); + } + + public interface BuilderMiddle { + BuilderMiddleBuild withPublisher(final String publisher); + BuilderMiddleBuild withKind(final Kind kind); + BuilderMiddleBuild withTrack(final String track); + BuilderBuild withAll(); + } + + public interface BuilderMiddleBuild { + BuilderMiddleBuild withPublisher(final String publisher); + BuilderMiddleBuild withKind(final Kind kind); + BuilderMiddleBuild withTrack(final String track); + RecordingRule build(); + } + + public interface BuilderBuild { + RecordingRule build(); + } + + public static class Builder implements + BuilderStart, + BuilderMiddle, + BuilderMiddleBuild, + BuilderBuild { + private Type type; + private Boolean all; + private String publisher; + private Kind kind; + private String track; + + private Builder() { + } + + public BuilderMiddle withType(final Type type) { + this.type = type; + return this; + } + + public BuilderBuild withAll() { + this.all = true; + return this; + } + public BuilderMiddleBuild withPublisher(final String publisher) { + this.publisher = publisher; + return this; + } + public BuilderMiddleBuild withKind(final Kind kind) { + this.kind = kind; + return this; + } + public BuilderMiddleBuild withTrack(final String track) { + this.track = track; + return this; + } + + private boolean hasOneFilter() { + // at least one filter must be set + return this.kind != null + || this.all != null + || this.track != null + || this.publisher != null; + } + + private boolean hasType() { + // every rule must have a type + return this.type != null; + } + + public RecordingRule build() { + if (!hasType()) { + throw new IllegalArgumentException("Recording Rule must have a type"); + } + if (!hasOneFilter()) { + throw new IllegalArgumentException("Recording Rule must have at least one filter"); + } + + return new RecordingRule(this.type, this.all, this.publisher, this.track, this.kind); + } + } + + public Type getType() { + return type; + } + + public Boolean getAll() { + return all; + } + + public String getPublisher() { + return publisher; + } + + public String getTrack() { + return track; + } + + public Kind getKind() { + return kind; + } + + public static RecordingRule all() { + return recordAll; + } + + public static RecordingRule none() { + return recordNone; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof RecordingRule)) return false; + RecordingRule that = (RecordingRule) o; + return getType() == that.getType() && + Objects.equals(getAll(), that.getAll()) && + Objects.equals(getPublisher(), that.getPublisher()) && + Objects.equals(getTrack(), that.getTrack()) && + getKind() == that.getKind(); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), getAll(), getPublisher(), getTrack(), getKind()); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("type", this.type) + .add("all", this.all) + .add("publisher", this.publisher) + .add("track", this.track) + .add("kind", this.kind) + .toString(); + } +} diff --git a/src/main/java/com/twilio/type/RecordingRulesUpdate.java b/src/main/java/com/twilio/type/RecordingRulesUpdate.java new file mode 100644 index 0000000000..3891ae5595 --- /dev/null +++ b/src/main/java/com/twilio/type/RecordingRulesUpdate.java @@ -0,0 +1,43 @@ +package com.twilio.type; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.base.MoreObjects; + +import java.util.List; +import java.util.Objects; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class RecordingRulesUpdate { + + @JsonProperty("rules") + private final List rules; + + public RecordingRulesUpdate(@JsonProperty("rules") final List rules) { + this.rules = rules; + } + + public List getRules() { + return rules; + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final com.twilio.type.RecordingRulesUpdate that = (com.twilio.type.RecordingRulesUpdate) o; + return Objects.equals(getRules(), that.getRules()); + } + + @Override + public int hashCode() { + return Objects.hash(getRules()); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("rules", this.rules) + .toString(); + } +} diff --git a/src/test/java/com/twilio/type/RecordingRuleTest.java b/src/test/java/com/twilio/type/RecordingRuleTest.java new file mode 100644 index 0000000000..231793cfff --- /dev/null +++ b/src/test/java/com/twilio/type/RecordingRuleTest.java @@ -0,0 +1,82 @@ +package com.twilio.type; + +import com.google.common.collect.Lists; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.fail; + +public class RecordingRuleTest extends TypeTest { + @Test + public void testBuilderOneFilter() { + try { + RecordingRule.builder().withType(RecordingRule.Type.INCLUDE).withPublisher(null).build(); + } catch (IllegalArgumentException e) { + return; + } + fail("Rule builder should enforce a filter"); + } + + @Test + public void testBuilderMustHaveType() { + try { + RecordingRule.builder().withType(null).withPublisher("alice").build(); + } catch (IllegalArgumentException e) { + return; + } + fail("Rule builder should enforce setting a type"); + } + + @Test + public void testAllExclusive() throws IOException { + String json = "{\n" + + " \"type\": \"include\",\n" + + " \"all\": true\n" + + "}"; + + RecordingRule r = fromJson(json, RecordingRule.class); + Assert.assertEquals(RecordingRule.Type.INCLUDE, r.getType()); + Assert.assertEquals(true, r.getAll()); + + Assert.assertTrue(convertsToAndFromJson(r, RecordingRule.class)); + } + + @Test + public void testFilters() throws IOException { + String json = "{\n" + + " \"type\": \"exclude\",\n" + + " \"track\": \"screen\",\n" + + " \"kind\": \"video\",\n" + + " \"publisher\": \"alice\"\n" + + "}"; + + RecordingRule r = fromJson(json, RecordingRule.class); + Assert.assertEquals(RecordingRule.Type.EXCLUDE, r.getType()); + Assert.assertEquals(RecordingRule.Kind.VIDEO, r.getKind()); + Assert.assertEquals("alice", r.getPublisher()); + Assert.assertNull(r.getAll()); + + Assert.assertTrue(convertsToAndFromJson(r, RecordingRule.class)); + } + + @Test + public void testUpdate() throws IOException { + final RecordingRule allAudio = RecordingRule.builder() + .withType(RecordingRule.Type.INCLUDE) + .withKind(RecordingRule.Kind.AUDIO) + .build(); + final RecordingRule presenterVideo = RecordingRule.builder() + .withType(RecordingRule.Type.INCLUDE) + .withKind(RecordingRule.Kind.VIDEO) + .withPublisher("presenter") + .build(); + + final RecordingRulesUpdate update = new RecordingRulesUpdate(Lists.newArrayList( + allAudio, presenterVideo + )); + + Assert.assertTrue(convertsToAndFromJson(update, RecordingRulesUpdate.class)); + } +} From 06f401e0a081fbc5d7042a42be62900ef251d998 Mon Sep 17 00:00:00 2001 From: Falguni Vadodaria Date: Mon, 12 Oct 2020 21:02:29 -0700 Subject: [PATCH 2/3] Description --- .../java/com/twilio/type/RecordingRule.java | 71 ++------ .../com/twilio/type/RecordingRulesUpdate.java | 7 + src/main/java/com/twilio/type/Rule.java | 94 ++++++++++ .../java/com/twilio/type/SubscribeRule.java | 164 +++++------------- 4 files changed, 158 insertions(+), 178 deletions(-) create mode 100644 src/main/java/com/twilio/type/Rule.java diff --git a/src/main/java/com/twilio/type/RecordingRule.java b/src/main/java/com/twilio/type/RecordingRule.java index 39dffa52ef..8d00150c3f 100644 --- a/src/main/java/com/twilio/type/RecordingRule.java +++ b/src/main/java/com/twilio/type/RecordingRule.java @@ -1,70 +1,20 @@ package com.twilio.type; -import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonValue; import com.google.common.base.MoreObjects; -import com.twilio.converter.Promoter; import java.util.Objects; +/** + * Recording Rule + *

+ * For more information see: + * Specifying Recording Rules + *

+ */ @JsonIgnoreProperties(ignoreUnknown = true) -public class RecordingRule { - - public enum Type { - INCLUDE("include"), - EXCLUDE("exclude"); - - private final String value; - - Type(final String value) { - this.value = value; - } - - @JsonCreator - public static Type forValue(final String value) { - return Promoter.enumFromString(value, Type.values()); - } - - @JsonValue - public String value() { - return this.value; - } - - @Override - public String toString() { - return value; - } - } - - public enum Kind { - AUDIO("audio"), - DATA("data"), - VIDEO("video"); - - private final String value; - - Kind(final String value) { - this.value = value; - } - - @JsonCreator - public static Kind forValue(final String value) { - return Promoter.enumFromString(value, Kind.values()); - } - - @JsonValue - public String value() { - return this.value; - } - - @Override - public String toString() { - return value; - } - } - +public class RecordingRule implements Rule { private static final RecordingRule recordAll = builder().withType(Type.INCLUDE).withAll().build(); private static final RecordingRule recordNone = builder().withType(Type.EXCLUDE).withAll().build(); @@ -191,22 +141,27 @@ public RecordingRule build() { } } + @Override public Type getType() { return type; } + @Override public Boolean getAll() { return all; } + @Override public String getPublisher() { return publisher; } + @Override public String getTrack() { return track; } + @Override public Kind getKind() { return kind; } diff --git a/src/main/java/com/twilio/type/RecordingRulesUpdate.java b/src/main/java/com/twilio/type/RecordingRulesUpdate.java index 3891ae5595..a1cf7d22b6 100644 --- a/src/main/java/com/twilio/type/RecordingRulesUpdate.java +++ b/src/main/java/com/twilio/type/RecordingRulesUpdate.java @@ -7,6 +7,13 @@ import java.util.List; import java.util.Objects; +/** + * Recording Rule Update - Used to update the list of Recording Rules + *

+ * For more information see: + * Specifying Recording Rules + *

+ */ @JsonIgnoreProperties(ignoreUnknown = true) public class RecordingRulesUpdate { diff --git a/src/main/java/com/twilio/type/Rule.java b/src/main/java/com/twilio/type/Rule.java new file mode 100644 index 0000000000..567917d131 --- /dev/null +++ b/src/main/java/com/twilio/type/Rule.java @@ -0,0 +1,94 @@ +package com.twilio.type; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import com.twilio.converter.Promoter; + +public interface Rule { + + Type getType(); + Boolean getAll(); + String getPublisher(); + String getTrack(); + Kind getKind(); + + enum Type { + INCLUDE("include"), + EXCLUDE("exclude"); + + private final String value; + + Type(final String value) { + this.value = value; + } + + @JsonCreator + public static Type forValue(final String value) { + return Promoter.enumFromString(value, Rule.Type.values()); + } + + @JsonValue + public String value() { + return this.value; + } + + @Override + public String toString() { + return value; + } + } + + enum Kind { + AUDIO("audio"), + DATA("data"), + VIDEO("video"); + + private final String value; + + Kind(final String value) { + this.value = value; + } + + @JsonCreator + public static Kind forValue(final String value) { + return Promoter.enumFromString(value, Rule.Kind.values()); + } + + @JsonValue + public String value() { + return this.value; + } + + @Override + public String toString() { + return value; + } + } + + enum Priority { + LOW("low"), + MEDIUM("medium"), + HIGH("high"); + + private final String value; + + Priority(final String value) { + this.value = value; + } + + @JsonCreator + public static Priority forValue(final String value) { + return Promoter.enumFromString(value, Priority.values()); + } + + @JsonValue + public String value() { + return this.value; + } + + @Override + public String toString() { + return value; + } + } +} diff --git a/src/main/java/com/twilio/type/SubscribeRule.java b/src/main/java/com/twilio/type/SubscribeRule.java index 5e4d7f1d18..4d37596b05 100644 --- a/src/main/java/com/twilio/type/SubscribeRule.java +++ b/src/main/java/com/twilio/type/SubscribeRule.java @@ -1,10 +1,7 @@ package com.twilio.type; -import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonValue; -import com.twilio.converter.Promoter; import com.google.common.base.MoreObjects; @@ -19,86 +16,7 @@ *

*/ @JsonIgnoreProperties(ignoreUnknown = true) -public class SubscribeRule { - public enum Type { - INCLUDE("include"), - EXCLUDE("exclude"); - - private final String value; - - Type(final String value) { - this.value = value; - } - - @JsonCreator - public static Type forValue(final String value) { - return Promoter.enumFromString(value, Type.values()); - } - - @JsonValue - public String value() { - return this.value; - } - - @Override - public String toString() { - return value; - } - } - - public enum Kind { - AUDIO("audio"), - DATA("data"), - VIDEO("video"); - - private final String value; - - Kind(final String value) { - this.value = value; - } - - @JsonCreator - public static Kind forValue(final String value) { - return Promoter.enumFromString(value, Kind.values()); - } - - @JsonValue - public String value() { - return this.value; - } - - @Override - public String toString() { - return value; - } - } - - public enum Priority { - LOW("low"), - STANDARD("standard"), - HIGH("high"); - - private final String value; - - Priority(final String value) { - this.value = value; - } - - @JsonCreator - public static Priority forValue(final String value) { - return Promoter.enumFromString(value, Priority.values()); - } - - @JsonValue - public String value() { - return this.value; - } - - @Override - public String toString() { - return value; - } - } +public class SubscribeRule implements Rule { private static final SubscribeRule subscribeAll = builder().withType(Type.INCLUDE).withAll().build(); private static final SubscribeRule subscribeNone = builder().withType(Type.EXCLUDE).withAll().build(); @@ -148,11 +66,48 @@ public static BuilderStart builder() { return new Builder(); } - public interface BuilderStart { + @Override + public Type getType() { + return type; + } + + @Override + public Boolean getAll() { + return all; + } + + @Override + public String getPublisher() { + return publisher; + } + + @Override + public String getTrack() { + return track; + } + + @Override + public Kind getKind() { + return kind; + } + + public Priority getPriority() { + return priority; + } + + public static SubscribeRule all() { + return subscribeAll; + } + + public static SubscribeRule none() { + return subscribeNone; + } + + interface BuilderStart { BuilderMiddle withType(final Type type); } - public interface BuilderMiddle { + interface BuilderMiddle { BuilderMiddleBuild withPublisher(final String publisher); BuilderMiddleBuild withKind(final Kind kind); BuilderMiddleBuild withTrack(final String track); @@ -160,7 +115,7 @@ public interface BuilderMiddle { BuilderBuild withAll(); } - public interface BuilderMiddleBuild { + interface BuilderMiddleBuild { BuilderMiddleBuild withPublisher(final String publisher); BuilderMiddleBuild withKind(final Kind kind); BuilderMiddleBuild withTrack(final String track); @@ -168,10 +123,11 @@ public interface BuilderMiddleBuild { SubscribeRule build(); } - public interface BuilderBuild { + interface BuilderBuild { SubscribeRule build(); } + public static class Builder implements BuilderStart, BuilderMiddle, @@ -208,7 +164,7 @@ public BuilderMiddleBuild withTrack(final String track) { this.track = track; return this; } - public BuilderMiddleBuild withPriority(final Priority priority) { + public BuilderMiddleBuild withPriority(final SubscribeRule.Priority priority) { this.priority = priority; return this; } @@ -239,38 +195,6 @@ public SubscribeRule build() { } } - public Type getType() { - return type; - } - - public Boolean getAll() { - return all; - } - - public String getPublisher() { - return publisher; - } - - public String getTrack() { - return track; - } - - public Kind getKind() { - return kind; - } - - public Priority getPriority() { - return priority; - } - - public static SubscribeRule all() { - return subscribeAll; - } - - public static SubscribeRule none() { - return subscribeNone; - } - @Override public boolean equals(Object o) { if (this == o) return true; From c29e2a2564cb5231a0368586a59991ebf756c14b Mon Sep 17 00:00:00 2001 From: Falguni Vadodaria Date: Tue, 13 Oct 2020 11:52:23 -0700 Subject: [PATCH 3/3] Solving test failure --- .../java/com/twilio/type/RecordingRule.java | 19 ++---- .../com/twilio/type/RecordingRulesUpdate.java | 15 ++--- src/main/java/com/twilio/type/Rule.java | 6 +- .../java/com/twilio/type/SubscribeRule.java | 64 ++++++++----------- .../com/twilio/type/RecordingRuleTest.java | 4 +- 5 files changed, 43 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/twilio/type/RecordingRule.java b/src/main/java/com/twilio/type/RecordingRule.java index 8d00150c3f..986398da08 100644 --- a/src/main/java/com/twilio/type/RecordingRule.java +++ b/src/main/java/com/twilio/type/RecordingRule.java @@ -2,18 +2,20 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; +import lombok.ToString; import java.util.Objects; /** * Recording Rule + * *

- * For more information see: - * Specifying Recording Rules + * For more information see: + * Specifying Recording Rules *

*/ @JsonIgnoreProperties(ignoreUnknown = true) +@ToString public class RecordingRule implements Rule { private static final RecordingRule recordAll = builder().withType(Type.INCLUDE).withAll().build(); @@ -190,15 +192,4 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(getType(), getAll(), getPublisher(), getTrack(), getKind()); } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", this.type) - .add("all", this.all) - .add("publisher", this.publisher) - .add("track", this.track) - .add("kind", this.kind) - .toString(); - } } diff --git a/src/main/java/com/twilio/type/RecordingRulesUpdate.java b/src/main/java/com/twilio/type/RecordingRulesUpdate.java index a1cf7d22b6..11c0da14d4 100644 --- a/src/main/java/com/twilio/type/RecordingRulesUpdate.java +++ b/src/main/java/com/twilio/type/RecordingRulesUpdate.java @@ -2,19 +2,21 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; +import lombok.ToString; import java.util.List; import java.util.Objects; /** * Recording Rule Update - Used to update the list of Recording Rules + * *

- * For more information see: - * Specifying Recording Rules + * For more information see: + * Specifying Recording Rules *

*/ @JsonIgnoreProperties(ignoreUnknown = true) +@ToString public class RecordingRulesUpdate { @JsonProperty("rules") @@ -40,11 +42,4 @@ public boolean equals(final Object o) { public int hashCode() { return Objects.hash(getRules()); } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("rules", this.rules) - .toString(); - } } diff --git a/src/main/java/com/twilio/type/Rule.java b/src/main/java/com/twilio/type/Rule.java index 567917d131..ea37f70786 100644 --- a/src/main/java/com/twilio/type/Rule.java +++ b/src/main/java/com/twilio/type/Rule.java @@ -7,9 +7,13 @@ public interface Rule { Type getType(); + Boolean getAll(); + String getPublisher(); + String getTrack(); + Kind getKind(); enum Type { @@ -67,7 +71,7 @@ public String toString() { enum Priority { LOW("low"), - MEDIUM("medium"), + STANDARD("standard"), HIGH("high"); private final String value; diff --git a/src/main/java/com/twilio/type/SubscribeRule.java b/src/main/java/com/twilio/type/SubscribeRule.java index 83164e1625..ee2b505596 100644 --- a/src/main/java/com/twilio/type/SubscribeRule.java +++ b/src/main/java/com/twilio/type/SubscribeRule.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.base.MoreObjects; +import lombok.ToString; import java.util.Objects; @@ -10,11 +10,12 @@ * Subscribe Rule * *

- * For more information see: - * Specifying Subscribe Rules + * For more information see: + * Specifying Subscribe Rules *

*/ @JsonIgnoreProperties(ignoreUnknown = true) +@ToString public class SubscribeRule implements Rule { private static final SubscribeRule subscribeAll = builder().withType(Type.INCLUDE).withAll().build(); @@ -39,11 +40,11 @@ public class SubscribeRule implements Rule { private final Priority priority; public SubscribeRule(@JsonProperty("type") final Type type, - @JsonProperty("all") final Boolean all, - @JsonProperty("publisher") final String publisher, - @JsonProperty("track") final String track, - @JsonProperty("kind") final Kind kind, - @JsonProperty("priority") final Priority priority) { + @JsonProperty("all") final Boolean all, + @JsonProperty("publisher") final String publisher, + @JsonProperty("track") final String track, + @JsonProperty("kind") final Kind kind, + @JsonProperty("priority") final Priority priority) { this.type = type; this.all = all; this.publisher = publisher; @@ -102,44 +103,35 @@ public static SubscribeRule none() { return subscribeNone; } - interface BuilderStart { + public interface BuilderStart { BuilderMiddle withType(final Type type); } - interface BuilderMiddle { + public interface BuilderMiddle { BuilderMiddleBuild withPublisher(final String publisher); - BuilderMiddleBuild withKind(final Kind kind); - BuilderMiddleBuild withTrack(final String track); - BuilderMiddleBuild withPriority(final Priority priority); - BuilderBuild withAll(); } - interface BuilderMiddleBuild { + public interface BuilderMiddleBuild { BuilderMiddleBuild withPublisher(final String publisher); - BuilderMiddleBuild withKind(final Kind kind); - BuilderMiddleBuild withTrack(final String track); - BuilderMiddleBuild withPriority(final Priority priority); - SubscribeRule build(); } - interface BuilderBuild { + public interface BuilderBuild { SubscribeRule build(); } - public static class Builder implements - BuilderStart, - BuilderMiddle, - BuilderMiddleBuild, - BuilderBuild { + BuilderStart, + BuilderMiddle, + BuilderMiddleBuild, + BuilderBuild { private Type type; private Boolean all; private String publisher; @@ -159,22 +151,18 @@ public BuilderBuild withAll() { this.all = true; return this; } - public BuilderMiddleBuild withPublisher(final String publisher) { this.publisher = publisher; return this; } - public BuilderMiddleBuild withKind(final Kind kind) { this.kind = kind; return this; } - public BuilderMiddleBuild withTrack(final String track) { this.track = track; return this; } - public BuilderMiddleBuild withPriority(final Priority priority) { this.priority = priority; return this; @@ -183,10 +171,10 @@ public BuilderMiddleBuild withPriority(final Priority priority) { private boolean hasOneFilter() { // at least one filter must be set return this.kind != null - || this.all != null - || this.track != null - || this.publisher != null - || this.priority != null; + || this.all != null + || this.track != null + || this.publisher != null + || this.priority != null; } private boolean hasType() { @@ -212,11 +200,11 @@ public boolean equals(Object o) { if (!(o instanceof SubscribeRule)) return false; SubscribeRule that = (SubscribeRule) o; return getType() == that.getType() && - Objects.equals(getAll(), that.getAll()) && - Objects.equals(getPublisher(), that.getPublisher()) && - Objects.equals(getTrack(), that.getTrack()) && - getKind() == that.getKind() && - getPriority() == that.getPriority(); + Objects.equals(getAll(), that.getAll()) && + Objects.equals(getPublisher(), that.getPublisher()) && + Objects.equals(getTrack(), that.getTrack()) && + getKind() == that.getKind() && + getPriority() == that.getPriority(); } @Override diff --git a/src/test/java/com/twilio/type/RecordingRuleTest.java b/src/test/java/com/twilio/type/RecordingRuleTest.java index 231793cfff..51865aa6ef 100644 --- a/src/test/java/com/twilio/type/RecordingRuleTest.java +++ b/src/test/java/com/twilio/type/RecordingRuleTest.java @@ -1,10 +1,10 @@ package com.twilio.type; -import com.google.common.collect.Lists; import org.junit.Assert; import org.junit.Test; import java.io.IOException; +import java.util.Arrays; import static org.junit.Assert.fail; @@ -73,7 +73,7 @@ public void testUpdate() throws IOException { .withPublisher("presenter") .build(); - final RecordingRulesUpdate update = new RecordingRulesUpdate(Lists.newArrayList( + final RecordingRulesUpdate update = new RecordingRulesUpdate(Arrays.asList( allAudio, presenterVideo ));