You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/03/05 09:19:38 UTC

[isis] 01/02: ISIS-1897 _Exceptions: add 'not implemented' idiom

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 0eb38f4f8e0964196e05103ff211c7f5cd9c8bf3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Mar 5 09:33:38 2018 +0100

    ISIS-1897 _Exceptions: add 'not implemented' idiom
---
 .../applib/internal/exceptions/_Exceptions.java    | 22 ++++++++++++++++++++++
 .../java/org/apache/isis/applib/util/Invoice.java  |  4 ++--
 .../org/apache/isis/applib/util/InvoiceItem.java   |  2 +-
 .../applib/util/ObjectContractsTest_equals.java    |  1 +
 .../ObjectContractsTest_equals_and_hashCode.java   |  2 ++
 .../applib/util/ObjectContractsTest_toString.java  |  3 +++
 6 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/exceptions/_Exceptions.java b/core/applib/src/main/java/org/apache/isis/applib/internal/exceptions/_Exceptions.java
index 12e06ca..b4a7312 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/exceptions/_Exceptions.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/exceptions/_Exceptions.java
@@ -75,6 +75,28 @@ public final class _Exceptions {
 		return new IllegalStateException("internal error: code was reached, that is not implemented yet");
 	}
 	
+	/**
+	 * Used, to hide from the compiler the fact, that this call always throws.
+	 * 
+	 * <pre>{
+	 *    throw notImplemented();
+	 *    return 0; // won't compile: unreachable code
+	 *}</pre>
+	 *
+	 * hence ...
+	 * 
+	 * <pre>{
+	 *    throwNotImplemented();
+	 *    return 0;    
+	 *}</pre>
+	 * 
+	 * @return
+	 */
+	public static IllegalStateException throwNotImplemented() {
+		throw notImplemented();
+	}
+	
+	
 	// -- STACKTRACE UTILITITIES
 	
 	public static final Stream<String> streamStacktraceLines(@Nullable Throwable ex, int maxLines) {
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java b/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
index edcafc9..96139f8 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
@@ -16,7 +16,7 @@
  */
 package org.apache.isis.applib.util;
 
-
+@SuppressWarnings("deprecation")
 class Invoice implements Comparable<Invoice>{
     private static final String KEY_PROPERTIES = "number";
     
@@ -27,7 +27,7 @@ class Invoice implements Comparable<Invoice>{
     public void setNumber(String number) {
         this.number = number;
     }
-    @Override
+	@Override
     public String toString() {
         return ObjectContracts.toString(this, KEY_PROPERTIES);
     }
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java b/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
index ce981d1..372bef9 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
@@ -16,7 +16,7 @@
  */
 package org.apache.isis.applib.util;
 
-
+@SuppressWarnings("deprecation")
 class InvoiceItem implements Comparable<InvoiceItem> {
 
     static InvoiceItem newInvoiceItem(Invoice invoice, String productCode, Integer quantity, Boolean rush) {
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
index 5526e4f..ccab753 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
@@ -22,6 +22,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+@SuppressWarnings("deprecation")
 public class ObjectContractsTest_equals {
 
     static class Invoice4 {
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
index 89dee00..b40c630 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
@@ -56,6 +56,7 @@ public class ObjectContractsTest_equals_and_hashCode extends ValueTypeContractTe
     }
 }
 
+@SuppressWarnings("deprecation")
 class Invoice3 {
     private static final String KEY_PROPERTIES = "number";
     
@@ -77,6 +78,7 @@ class Invoice3 {
     
 }
 
+@SuppressWarnings("deprecation")
 class InvoiceItem3 {
 
     static InvoiceItem3 newInvoiceItem(Invoice3 invoice, String productCode, Integer quantity) {
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
index 19274bb..26ee357 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
@@ -57,6 +57,7 @@ public class ObjectContractsTest_toString {
 
 }
 
+@SuppressWarnings("deprecation")
 class Invoice2 implements Comparable<Invoice2>, Numbered {
     private static final String KEY_PROPERTIES = "number";
     
@@ -76,6 +77,8 @@ class Invoice2 implements Comparable<Invoice2>, Numbered {
         return ObjectContracts.compare(this, o, KEY_PROPERTIES);
     }
 }
+
+@SuppressWarnings("deprecation")
 class InvoiceItem2 implements Comparable<InvoiceItem2> {
 
     static InvoiceItem2 newInvoiceItem(Invoice2 invoice, String productCode, Integer quantity, Boolean rush) {

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.