This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v4
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/v4 by this push:
new 63f5845f10c CAUSEWAY-3892: work on deprecations (2)
63f5845f10c is described below
commit 63f5845f10c4f9ae0a880ad58ba05e7e9ab2da04
Author: Andi Huber <[email protected]>
AuthorDate: Fri Jun 13 09:02:49 2025 +0200
CAUSEWAY-3892: work on deprecations (2)
---
.../causeway/applib/util/ObjectContracts.java | 45 -------------------
.../org/apache/causeway/applib/util/Invoice.java | 10 +++--
.../apache/causeway/applib/util/InvoiceItem.java | 8 ++--
.../applib/util/ObjectContractsTest_equals.java | 36 +++++++--------
.../ObjectContractsTest_equals_and_hashCode.java | 52 +++++++---------------
.../applib/util/ObjectContractsTest_toString.java | 16 +++----
6 files changed, 51 insertions(+), 116 deletions(-)
diff --git
a/api/applib/src/main/java/org/apache/causeway/applib/util/ObjectContracts.java
b/api/applib/src/main/java/org/apache/causeway/applib/util/ObjectContracts.java
index 5401d93451c..358f7cc5597 100644
---
a/api/applib/src/main/java/org/apache/causeway/applib/util/ObjectContracts.java
+++
b/api/applib/src/main/java/org/apache/causeway/applib/util/ObjectContracts.java
@@ -19,10 +19,8 @@
package org.apache.causeway.applib.util;
import java.util.Comparator;
-import java.util.Objects;
import java.util.function.Function;
-import org.apache.causeway.commons.internal.base._Casts;
import org.apache.causeway.commons.internal.base._NullSafe;
import lombok.extern.slf4j.Slf4j;
@@ -142,47 +140,4 @@ public static Function<Object, String>
combineToFunction(final ToStringEvaluator
}
}
- // -- BACKWARDS COMPATIBILITY
-
- @Deprecated // uses reflection on each call
- public static <T> String toString(final T obj, final String propertyNames)
{
- Objects.requireNonNull(obj, "obj required, otherwise undecidable");
-
- return parse(_Casts.uncheckedCast(obj.getClass()), propertyNames)
- .toString(obj);
- }
-
- @Deprecated // uses reflection on each call
- public static <T> boolean equals(final T obj, final Object other, final
String propertyNames) {
-
- if(obj==null && other==null) {
- if(log.isWarnEnabled()) {
- log.warn("potential misuse of <T> ObjectContracts::equals(T
obj, Object other, "
- + "String propertyNames). First argument is not
expected to be null!");
- }
- return true;
- }
-
- Objects.requireNonNull(obj, "obj required, otherwise undecidable");
-
- return parse(_Casts.uncheckedCast(obj.getClass()), propertyNames)
- .equals(obj, other);
- }
-
- @Deprecated // uses reflection on each call
- public static int hashCode(final Object obj, final String propertyNames) {
- Objects.requireNonNull(obj, "obj required, otherwise undecidable");
-
- return parse(_Casts.uncheckedCast(obj.getClass()), propertyNames)
- .hashCode(obj);
- }
-
- @Deprecated // uses reflection on each call
- public static <T> int compare(final T obj, final T other, final String
propertyNames) {
- Objects.requireNonNull(obj, "obj required, otherwise undecidable");
-
- return parse(_Casts.uncheckedCast(obj.getClass()), propertyNames)
- .compare(obj, other);
- }
-
}
diff --git
a/api/applib/src/test/java/org/apache/causeway/applib/util/Invoice.java
b/api/applib/src/test/java/org/apache/causeway/applib/util/Invoice.java
index 7c13729c405..4cdb0ebf2ed 100644
--- a/api/applib/src/test/java/org/apache/causeway/applib/util/Invoice.java
+++ b/api/applib/src/test/java/org/apache/causeway/applib/util/Invoice.java
@@ -18,9 +18,11 @@
*/
package org.apache.causeway.applib.util;
-@SuppressWarnings("deprecation")
+import org.apache.causeway.applib.util.ObjectContracts.ObjectContract;
+
class Invoice implements Comparable<Invoice>{
- private static final String KEY_PROPERTIES = "number";
+
+ private static final ObjectContract<Invoice> objContract =
ObjectContracts.parse(Invoice.class, "number");
private String number;
public String getNumber() {
@@ -31,10 +33,10 @@ public void setNumber(String number) {
}
@Override
public String toString() {
- return ObjectContracts.toString(this, KEY_PROPERTIES);
+ return objContract.toString(this);
}
@Override
public int compareTo(Invoice o) {
- return ObjectContracts.compare(this, o, KEY_PROPERTIES);
+ return objContract.compare(this, o);
}
}
\ No newline at end of file
diff --git
a/api/applib/src/test/java/org/apache/causeway/applib/util/InvoiceItem.java
b/api/applib/src/test/java/org/apache/causeway/applib/util/InvoiceItem.java
index 2e3e49fd2bf..3ad70f54ffa 100644
--- a/api/applib/src/test/java/org/apache/causeway/applib/util/InvoiceItem.java
+++ b/api/applib/src/test/java/org/apache/causeway/applib/util/InvoiceItem.java
@@ -18,7 +18,8 @@
*/
package org.apache.causeway.applib.util;
-@SuppressWarnings("deprecation")
+import org.apache.causeway.applib.util.ObjectContracts.ObjectContract;
+
class InvoiceItem implements Comparable<InvoiceItem> {
static InvoiceItem newInvoiceItem(Invoice invoice, String productCode,
Integer quantity, Boolean rush) {
@@ -63,13 +64,14 @@ public void setRush(Boolean rush) {
}
private static final String KEY_PROPERTIES = "invoice desc, productCode
asc, quantity asc nullsLast, rush desc nullsLast";
+ private static final ObjectContract<InvoiceItem> objContract =
ObjectContracts.parse(InvoiceItem.class, KEY_PROPERTIES);
@Override
public String toString() {
- return ObjectContracts.toString(this, KEY_PROPERTIES);
+ return objContract.toString(this);
}
@Override
public int compareTo(InvoiceItem o) {
- return ObjectContracts.compare(this, o, KEY_PROPERTIES);
+ return objContract.compare(this, o);
}
}
\ No newline at end of file
diff --git
a/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals.java
b/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals.java
index 647f06ae62a..0050c0495b1 100644
---
a/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals.java
+++
b/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals.java
@@ -22,32 +22,28 @@
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.apache.causeway.applib.util.ObjectContracts.ObjectContract;
+
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import lombok.Setter;
-@SuppressWarnings("deprecation")
class ObjectContractsTest_equals {
static class Invoice4 {
- private static final String KEY_PROPERTIES = "number";
+ private static final ObjectContract<Invoice4> objContract =
ObjectContracts.parse(Invoice4.class, "number");
- private String number;
- public String getNumber() {
- return number;
- }
- public void setNumber(final String number) {
- this.number = number;
- }
+ @Getter @Setter private String number;
@Override
public int hashCode() {
- return ObjectContracts.hashCode(this, KEY_PROPERTIES);
+ return objContract.hashCode(this);
}
@Override
public boolean equals(final Object obj) {
- return ObjectContracts.equals(this, obj, KEY_PROPERTIES);
+ return objContract.equals(this, obj);
}
}
@@ -71,31 +67,35 @@ public void setUp() throws Exception {
@Test
public void happyCase() throws Exception {
- assertTrue(ObjectContracts.equals(p, q, "number"));
+ assertEquals(p, q);
}
@Test
public void nullsAreEqual() throws Exception {
- assertTrue(ObjectContracts.equals(null, null, "number"));
+ var objContract = ObjectContracts.parse(Invoice4.class, "number");
+ assertTrue(objContract.equals(null, null));
}
@Test
public void notEqualDifferentValues() throws Exception {
- assertFalse(ObjectContracts.equals(p, r, "number"));
+ assertNotEquals(p, r);
+ assertNotEquals(r, p);
}
@Test
public void notEqualDifferentTypes() throws Exception {
- assertFalse(ObjectContracts.equals(p, x, "number"));
+ assertNotEquals(p, x);
+ assertNotEquals(x, p);
}
@Test
public void notEqualNull() throws Exception {
- assertFalse(ObjectContracts.equals(p, null, "number"));
+ assertNotEquals(p, null);
+ assertNotEquals(null, p);
}
@RequiredArgsConstructor(staticName = "of")
- public static class ComplexNumber implements Comparable<ComplexNumber> {
+ static class ComplexNumber implements Comparable<ComplexNumber> {
@Getter private final int real;
@Getter private final int imaginary;
diff --git
a/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals_and_hashCode.java
b/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals_and_hashCode.java
index b7c7771084c..3d53d2d83f1 100644
---
a/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals_and_hashCode.java
+++
b/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_equals_and_hashCode.java
@@ -22,8 +22,12 @@
import org.junit.jupiter.api.BeforeEach;
+import org.apache.causeway.applib.util.ObjectContracts.ObjectContract;
import
org.apache.causeway.core.internaltestsupport.contract.ValueTypeContractTestAbstract;
+import lombok.Getter;
+import lombok.Setter;
+
class ObjectContractsTest_equals_and_hashCode extends
ValueTypeContractTestAbstract<InvoiceItem3> {
private Invoice3 inv123;
@@ -59,29 +63,23 @@ protected List<InvoiceItem3> getObjectsWithDifferentValue()
{
}
}
-@SuppressWarnings("deprecation")
class Invoice3 {
- private static final String KEY_PROPERTIES = "number";
+ private static final ObjectContract<Invoice3> objContract =
ObjectContracts.parse(Invoice3.class, "number");
+ @Getter @Setter
private String number;
- public String getNumber() {
- return number;
- }
- public void setNumber(final String number) {
- this.number = number;
- }
+
@Override
public int hashCode() {
- return ObjectContracts.hashCode(this, KEY_PROPERTIES);
+ return objContract.hashCode(this);
}
@Override
public boolean equals(final Object obj) {
- return ObjectContracts.equals(this, obj, KEY_PROPERTIES);
+ return objContract.equals(this, obj);
}
}
-@SuppressWarnings("deprecation")
class InvoiceItem3 {
static InvoiceItem3 newInvoiceItem(final Invoice3 invoice, final String
productCode, final Integer quantity) {
@@ -92,37 +90,19 @@ static InvoiceItem3 newInvoiceItem(final Invoice3 invoice,
final String productC
return invoiceItem;
}
- private Invoice3 invoice;
- public Invoice3 getInvoice() {
- return invoice;
- }
- public void setInvoice(final Invoice3 invoice) {
- this.invoice = invoice;
- }
-
- private String productCode;
- public String getProductCode() {
- return productCode;
- }
- public void setProductCode(final String productCode) {
- this.productCode = productCode;
- }
-
- private Integer quantity;
- public Integer getQuantity() {
- return quantity;
- }
- public void setQuantity(final Integer quantity) {
- this.quantity = quantity;
- }
+ @Getter @Setter private Invoice3 invoice;
+ @Getter @Setter private String productCode;
+ @Getter @Setter private Integer quantity;
private static final String KEY_PROPERTIES = "invoice desc, productCode,
quantity";
+ private static final ObjectContract<InvoiceItem3> objContract =
ObjectContracts.parse(InvoiceItem3.class, KEY_PROPERTIES);
+
@Override
public int hashCode() {
- return ObjectContracts.hashCode(this, KEY_PROPERTIES);
+ return objContract.hashCode(this);
}
@Override
public boolean equals(final Object obj) {
- return ObjectContracts.equals(this, obj, KEY_PROPERTIES);
+ return objContract.equals(this, obj);
}
}
diff --git
a/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_toString.java
b/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_toString.java
index 770597addab..d2448ed0753 100644
---
a/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_toString.java
+++
b/api/applib/src/test/java/org/apache/causeway/applib/util/ObjectContractsTest_toString.java
@@ -61,9 +61,9 @@ public void customized() {
}
-@SuppressWarnings("deprecation")
class Invoice2 implements Comparable<Invoice2>, Numbered {
private static final String KEY_PROPERTIES = "number";
+ private static final ObjectContract<Invoice2> objContract =
ObjectContracts.parse(Invoice2.class, KEY_PROPERTIES);
private String number;
@Override
@@ -75,15 +75,14 @@ public void setNumber(final String number) {
}
@Override
public String toString() {
- return ObjectContracts.toString(this, KEY_PROPERTIES);
+ return objContract.toString(this);
}
@Override
public int compareTo(final Invoice2 o) {
- return ObjectContracts.compare(this, o, KEY_PROPERTIES);
+ return objContract.compare(this, o);
}
}
-@SuppressWarnings("deprecation")
class InvoiceItem2 implements Comparable<InvoiceItem2> {
static InvoiceItem2 newInvoiceItem(final Invoice2 invoice, final String
productCode, final Integer quantity, final Boolean rush) {
@@ -128,19 +127,16 @@ public void setRush(final Boolean rush) {
}
private static final String KEY_PROPERTIES = "invoice desc, productCode,
quantity, rush desc";
-
- private static final ObjectContract<InvoiceItem2> contract =
+ private static final ObjectContract<InvoiceItem2> objContract =
ObjectContracts.parse(InvoiceItem2.class, KEY_PROPERTIES)
.withValueToStringFunction(ToStringEvaluator.combineToFunction(new
NumberedEvaluator()));
@Override
public String toString() {
- return contract.toString(this);
- //legacy of ...
- //return new ObjectContracts().with(new
NumberedEvaluator()).toStringOf(this, KEY_PROPERTIES);
+ return objContract.toString(this);
}
@Override
public int compareTo(final InvoiceItem2 o) {
- return ObjectContracts.compare(this, o, KEY_PROPERTIES);
+ return objContract.compare(this, o);
}
}
\ No newline at end of file