From c0ffee82c8005d5efb10d98bdae24a60f7800cd2 Mon Sep 17 00:00:00 2001 From: Thomas Richner Date: Fri, 24 May 2024 11:52:34 +0200 Subject: [PATCH] ARC-1700: Pull impls into internal records. --- .../com/oviva/spicegen/api/ObjectRef.java | 32 +-------------- .../com/oviva/spicegen/api/SubjectRef.java | 39 +++---------------- .../spicegen/api/internal/ObjectRefImpl.java | 11 ++++++ .../spicegen/api/internal/SubjectRefImpl.java | 10 +++++ 4 files changed, 28 insertions(+), 64 deletions(-) create mode 100644 api/src/main/java/com/oviva/spicegen/api/internal/ObjectRefImpl.java create mode 100644 api/src/main/java/com/oviva/spicegen/api/internal/SubjectRefImpl.java diff --git a/api/src/main/java/com/oviva/spicegen/api/ObjectRef.java b/api/src/main/java/com/oviva/spicegen/api/ObjectRef.java index 0a22fb2..42d7d39 100644 --- a/api/src/main/java/com/oviva/spicegen/api/ObjectRef.java +++ b/api/src/main/java/com/oviva/spicegen/api/ObjectRef.java @@ -1,6 +1,6 @@ package com.oviva.spicegen.api; -import java.util.Objects; +import com.oviva.spicegen.api.internal.ObjectRefImpl; public interface ObjectRef { String kind(); @@ -14,35 +14,7 @@ static ObjectRef of(String kind, String id) { if (id == null) { throw new IllegalArgumentException("id must not be null"); } - return new ObjectRef() { - @Override - public String kind() { - return kind; - } - @Override - public String id() { - return id; - } - - @Override - public String toString() { - return "%s:%s".formatted(kind, id); - } - - @Override - public int hashCode() { - return Objects.hash(kind, id); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof ObjectRef ref)) { - return false; - } - - return Objects.equals(this.kind(), ref.kind()) && Objects.equals(this.id(), ref.id()); - } - }; + return new ObjectRefImpl(kind, id); } } diff --git a/api/src/main/java/com/oviva/spicegen/api/SubjectRef.java b/api/src/main/java/com/oviva/spicegen/api/SubjectRef.java index 43b1e0c..e8b9c87 100644 --- a/api/src/main/java/com/oviva/spicegen/api/SubjectRef.java +++ b/api/src/main/java/com/oviva/spicegen/api/SubjectRef.java @@ -1,6 +1,6 @@ package com.oviva.spicegen.api; -import java.util.Objects; +import com.oviva.spicegen.api.internal.SubjectRefImpl; public interface SubjectRef { String kind(); @@ -8,38 +8,9 @@ public interface SubjectRef { String id(); static SubjectRef ofObject(ObjectRef o) { - return new SubjectRef() { - @Override - public String kind() { - return o.kind(); - } - - @Override - public String id() { - return o.id(); - } - - @Override - public int hashCode() { - return Objects.hash(o); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof SubjectRef that)) { - return false; - } - return Objects.equals(this.kind(), that.kind()) && Objects.equals(this.id(), that.id()); - } - - @Override - public String toString() { - if (o == null) { - return ""; - } - - return o.toString(); - } - }; + if (o == null) { + return null; + } + return new SubjectRefImpl(o.kind(), o.id()); } } diff --git a/api/src/main/java/com/oviva/spicegen/api/internal/ObjectRefImpl.java b/api/src/main/java/com/oviva/spicegen/api/internal/ObjectRefImpl.java new file mode 100644 index 0000000..3305703 --- /dev/null +++ b/api/src/main/java/com/oviva/spicegen/api/internal/ObjectRefImpl.java @@ -0,0 +1,11 @@ +package com.oviva.spicegen.api.internal; + +import com.oviva.spicegen.api.ObjectRef; + +public record ObjectRefImpl(String kind, String id) implements ObjectRef { + + @Override + public String toString() { + return "%s:%s".formatted(kind, id); + } +} diff --git a/api/src/main/java/com/oviva/spicegen/api/internal/SubjectRefImpl.java b/api/src/main/java/com/oviva/spicegen/api/internal/SubjectRefImpl.java new file mode 100644 index 0000000..6f17f8b --- /dev/null +++ b/api/src/main/java/com/oviva/spicegen/api/internal/SubjectRefImpl.java @@ -0,0 +1,10 @@ +package com.oviva.spicegen.api.internal; + +import com.oviva.spicegen.api.SubjectRef; + +public record SubjectRefImpl(String kind, String id) implements SubjectRef { + @Override + public String toString() { + return "%s:%s".formatted(kind, id); + } +}