You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2016/03/29 22:48:51 UTC

svn commit: r1737048 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/

Author: schor
Date: Tue Mar 29 20:48:51 2016
New Revision: 1737048

URL: http://svn.apache.org/viewvc?rev=1737048&view=rev
Log:
[UIMA-4674] complete the rationalization of JCas impls of built-in lists

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringList.java

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonList.java Tue Mar 29 20:48:51 2016
@@ -64,7 +64,7 @@ public interface CommonList extends Feat
 			if (i == 0) {
 				return node;
 			}
-			node = node.getTail();
+			node = node.getCommonTail();
       if (node instanceof EmptyList) {
         throw new CASRuntimeException(CASRuntimeException.JCAS_GET_NTH_PAST_END, originali);
       }
@@ -100,7 +100,7 @@ public interface CommonList extends Feat
 	  CommonList node = this;
 	  while (node instanceof NonEmptyList) {
 	    consumer.accept((NonEmptyList) node);
-	    node = node.getTail();
+	    node = node.getCommonTail();
 	    if (node == null) {
 	      break;
 	    }
@@ -139,23 +139,43 @@ public interface CommonList extends Feat
 	default CommonList insertNode() {
 	  assert(this instanceof NonEmptyList);
 	  CommonList newNode = createNonEmptyNode();
-	  CommonList tail = getTail();
+	  CommonList tail = getCommonTail();
 	  setTail(newNode);
 	  newNode.setTail(tail);
 	  return newNode;	  
 	}
 
 	/**
-	 * default impl for empty lists
-	 * @return -
+	 * default impl for empty and nonempty lists
+	 * @return - instance of CommonList
+	 * 
+	 * This has to be named differently from getTail, otherwise the 
+	 * "default" method in the interface appears as declared method in reflection named getTail which conflicts
+	 * with the one returning a specific typed value
 	 */
-  default CommonList getTail() {
+  default CommonList getCommonTail() {
+    if (this instanceof NonEmptyFloatList) {
+      return ((NonEmptyFloatList)this).getTail();
+    }
+    if (this instanceof NonEmptyIntegerList) {
+      return ((NonEmptyIntegerList)this).getTail();
+    }
+    if (this instanceof NonEmptyStringList) {
+      return ((NonEmptyStringList)this).getTail();
+    }
+    if (this instanceof NonEmptyFSList) {
+      return ((NonEmptyFSList)this).getTail();
+    }
     throw new UnsupportedOperationException();
-  };
+  }
 
+  // there is no common getTail, because each one has a different return type
+  // the impl of setTail(CommonList v) is split:
+  //   the default impl throws UnsupportedOperationException;
+  //   each kind of non-empty list class has its own impl
   /**
-   * default impl for empty lists
-   * @return -
+   * default 
+   * @param v -
    */
   default void setTail(CommonList v) {
     throw new UnsupportedOperationException();
@@ -219,7 +239,7 @@ public interface CommonList extends Feat
       
 
       
-      curNode = curNode.getTail();
+      curNode = curNode.getCommonTail();
     } // end of while loop
   } 
   

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFloatList.java Tue Mar 29 20:48:51 2016
@@ -56,8 +56,6 @@ public class EmptyFloatList extends Floa
 
   public EmptyFloatList(TypeImpl t, CASImpl c) {
     super(t, c);
-  }
+  }  
   
-  
-  
- }
+}

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyStringList.java Tue Mar 29 20:48:51 2016
@@ -57,5 +57,5 @@ public class EmptyStringList extends Str
   public EmptyStringList(TypeImpl t, CASImpl c) {
     super(t, c);
   }
-
+  
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSList.java Tue Mar 29 20:48:51 2016
@@ -48,5 +48,5 @@ public abstract class FSList extends TOP
     NonEmptyFSList node = new NonEmptyFSList(this._casView.getTypeSystemImpl().fsNeListType, this._casView);
     return node;
   }
-       
+         
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerList.java Tue Mar 29 20:48:51 2016
@@ -52,5 +52,5 @@ public abstract class IntegerList extend
     NonEmptyIntegerList node = new NonEmptyIntegerList(this._casView.getTypeSystemImpl().intNeListType, this._casView);
     return node;
   }
-  
+   
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java Tue Mar 29 20:48:51 2016
@@ -68,7 +68,7 @@ public class NonEmptyFSList extends FSLi
   public TOP getHead() { return _getFeatureValueNc(_FI_head); }
 
   /* setter for head * */
-  public void setHead(TOP v) { _setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_head, false), v); }
+  public void setHead(TOP v) { _setFeatureValueNcWj(_FI_head, v); }
 
 //  public void _setHeadNcNj(TOP v) { _F_head = v; }
   
@@ -78,8 +78,9 @@ public class NonEmptyFSList extends FSLi
   public FSList getTail() { return (FSList) _getFeatureValueNc(_FI_tail); }
 
   /* setter for tail * */
-  public void setTail(FSList v) { _setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_tail, false), v); }
-    
+  public void setTail(FSList v) { _setFeatureValueNcWj(_FI_tail, v); }
+   
+  @Override
   public void setTail(CommonList v) {
     setTail((FSList) v);
   }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java Tue Mar 29 20:48:51 2016
@@ -68,7 +68,7 @@ public class NonEmptyFloatList extends F
 
   /* setter for head * */
   public void setHead(float v) {
-    this._setFloatValueNfc(_getFeatFromAdjOffset(_FI_head, true), v);
+    this._setFloatValueNfc(_FI_head, v);
   }
 
 //  public void _setHeadNcNj(float v) { setFloatValueNcNj(_getFeat(_FI_head), v); }
@@ -79,7 +79,7 @@ public class NonEmptyFloatList extends F
   public FloatList getTail() { return (FloatList) _getFeatureValueNc(_FI_tail); }
 
   /* setter for tail * */
-  public void setTail(FloatList v) { _setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_tail, false), v); }
+  public void setTail(FloatList v) { _setFeatureValueNcWj(_FI_tail, v); }
 
   public void setTail(CommonList v) { setTail((FloatList) v); }
   

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java Tue Mar 29 20:48:51 2016
@@ -71,7 +71,7 @@ public class NonEmptyIntegerList extends
 
   /* setter for head * */
   public void setHead(int v) {
-    _setIntValueNfc(_getFeatFromAdjOffset(_FI_head, true), v);
+    _setIntValueNfc(_FI_head, v);
   }
 
 //  public void _setHeadNcNj(int v) { _FI_head = v;}
@@ -82,8 +82,9 @@ public class NonEmptyIntegerList extends
   public IntegerList getTail() { return (IntegerList) _getFeatureValueNc(_FI_tail); }
 
   /* setter for tail * */
-  public void setTail(IntegerList v) { _setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_tail, false), v); }
+  public void setTail(IntegerList v) { _setFeatureValueNcWj(_FI_tail, v); }
   
+  @Override
   public void setTail(CommonList v) { setTail((IntegerList)v); }
     
   public void setHead(List<String> stringValues, int i) {

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java Tue Mar 29 20:48:51 2016
@@ -68,7 +68,7 @@ public class NonEmptyStringList extends
 
   /* setter for head * */
   public void setHead(String v) {
-    _setStringValueNfc(_getFeatFromAdjOffset(_FI_head, false), v);
+    _setStringValueNfc(_FI_head, v);
   }
   
 //  public void _setHeadNcNj(String v) {_FI_head = v;};
@@ -79,8 +79,9 @@ public class NonEmptyStringList extends
   public StringList getTail() { return (StringList) _getFeatureValueNc(_FI_tail); }
 
   /* setter for tail * */
-  public void setTail(StringList v) { _setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_tail, false), v); }
+  public void setTail(StringList v) { _setFeatureValueNcWj(_FI_tail, v); }
   
+  @Override
   public void setTail(CommonList v) {
     setTail((StringList)v);
   }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringList.java?rev=1737048&r1=1737047&r2=1737048&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringList.java Tue Mar 29 20:48:51 2016
@@ -52,5 +52,5 @@ public abstract class StringList extends
     NonEmptyStringList node = new NonEmptyStringList(this._casView.getTypeSystemImpl().stringNeListType, this._casView);
     return node;
   }  
-
+  
 }