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 2015/11/02 21:38:36 UTC

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

Author: schor
Date: Mon Nov  2 20:38:36 2015
New Revision: 1712148

URL: http://svn.apache.org/viewvc?rev=1712148&view=rev
Log:
[UIMA-4663] fix list hierarchy - convert some superclasses to interfaces with default methods, fix the argument types for some methods.

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonArray.java
    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/EmptyFSList.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/EmptyIntegerList.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/FloatList.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/CommonArray.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonArray.java?rev=1712148&r1=1712147&r2=1712148&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonArray.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/CommonArray.java Mon Nov  2 20:38:36 2015
@@ -31,4 +31,6 @@ public interface CommonArray {
   int size();
   
   void copyValuesFrom(CommonArray v);
+  
+  int get_id();
 }

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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -23,40 +23,18 @@ import java.util.IdentityHashMap;
 import java.util.Set;
 
 import org.apache.uima.cas.CASRuntimeException;
-import org.apache.uima.cas.impl.CASImpl;
-import org.apache.uima.cas.impl.TypeImpl;
-import org.apache.uima.jcas.JCas;
 
 /**
  * This class is the super class of list nodes (both empty and non empty)
  */
-public abstract class CommonList extends TOP {
-
-	// Never called.
-	protected CommonList() { // Disable default constructor
-	}
-
-	public CommonList(JCas jcas) {
-		super(jcas);
-	}
-	
-  /**
-   * used by generator
-   * Make a new AnnotationBase
-   * @param c -
-   * @param t -
-   */
-
-  public CommonList(TypeImpl t, CASImpl c) {
-    super(t, c);
-  }
+public interface CommonList {
 
   /**
    * Get the nth node.
    * @param i -
    * @return the nth node, which may be an "empty" node
    */
-	public CommonList getNthNode(int i) {
+	default CommonList getNthNode(int i) {
 	  if (this instanceof EmptyList) {
 			throw new CASRuntimeException(CASRuntimeException.JCAS_GET_NTH_ON_EMPTY_LIST, "EmptyList");
 		}
@@ -77,25 +55,21 @@ public abstract class CommonList extends
 		}
 	}
 	
-	public CommonList getNonEmptyNthNode(int i) {
+	default CommonList getNonEmptyNthNode(int i) {
 	  CommonList node = getNthNode(i);
     if (node instanceof EmptyList) {
 	    throw new CASRuntimeException(CASRuntimeException.JCAS_GET_NTH_PAST_END, i);
     }
     return node;
 	}
-	
-	public abstract CommonList getTail();  // tail offset changes
-	
-	public abstract void setTail(CommonList v); // tail offset changes
-	
+		
 	/**
 	 * length of a list, handling list loops.
 	 * returns the number of unique nodes in the list
 	 * @param fs - a list element
 	 * @return the number of items in the list
 	 */
-	public int getLength() {
+	default int getLength() {
 	  // detect loops
 	  final Set<CommonList> visited = new IdentityHashMap<CommonList, Boolean>().keySet();
 	  
@@ -112,20 +86,20 @@ public abstract class CommonList extends
 	  return length;
 	}
 	 
-	public static  void setNewValueInExistingNode(CommonList node, String v) {
+	static void setNewValueInExistingNode(CommonList node, String v) {
 //	  node.setHead(null);
     throw new CASRuntimeException(); // not yet impl
 	}
 
-	public abstract CommonList createNonEmptyNode();
-	public abstract CommonList createNonEmptyNode(CommonList tail);
-	public abstract CommonList getEmptyNode();   // returns a shared constant empty node
-	public abstract String get_headAsString();
+	CommonList createNonEmptyNode();
+	CommonList createNonEmptyNode(CommonList tail);
+	CommonList getEmptyNode();   // returns a shared constant empty node
+	String get_headAsString();
 	/**
 	 * insert a new nonempty node following this node
 	 * @return the new node
 	 */
-	public CommonList insertNode() {
+	default CommonList insertNode() {
 	  assert(this instanceof NonEmptyList);
 	  CommonList newNode = createNonEmptyNode();
 	  CommonList tail = getTail();
@@ -134,4 +108,12 @@ public abstract class CommonList extends
 	  return newNode;	  
 	}
 
+  default CommonList getTail() {
+    throw new UnsupportedOperationException();
+  }
+
+  default void setTail(CommonList v) {
+    throw new UnsupportedOperationException();
+  }
+
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java?rev=1712148&r1=1712147&r2=1712148&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyFSList.java Mon Nov  2 20:38:36 2015
@@ -55,5 +55,4 @@ public class EmptyFSList extends FSList
     super(t, c);
   }
 
-
 }

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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -54,5 +54,5 @@ 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/EmptyIntegerList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java?rev=1712148&r1=1712147&r2=1712148&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/EmptyIntegerList.java Mon Nov  2 20:38:36 2015
@@ -54,5 +54,5 @@ public class EmptyIntegerList extends In
   public EmptyIntegerList(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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -24,7 +24,7 @@ import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
-public abstract class FSList extends CommonList {
+public abstract class FSList extends TOP implements CommonList {
 
 	// Never called.
 	protected FSList() {// Disable default constructor
@@ -70,20 +70,5 @@ public abstract class FSList extends Com
 //    return ((NonEmptyFSList)this).getHead().toString();
   }
 
-  /* (non-Javadoc)
-   * @see org.apache.uima.jcas.cas.CommonList#getTail()
-   */
-  @Override
-  public CommonList getTail() {
-    return ((NonEmptyFSList)this).getTail();
-  }
-
-  /* (non-Javadoc)
-   * @see org.apache.uima.jcas.cas.CommonList#setTail(org.apache.uima.jcas.cas.CommonList)
-   */
-  @Override
-  public void setTail(CommonList v) {
-    ((NonEmptyFSList)this).setTail(v);
-  }
   
 }

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java?rev=1712148&r1=1712147&r2=1712148&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatList.java Mon Nov  2 20:38:36 2015
@@ -23,7 +23,7 @@ import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
-public abstract class FloatList extends CommonList {
+public abstract class FloatList extends TOP implements CommonList {
 
 	// Never called.
 	protected FloatList() {// Disable default constructor
@@ -71,22 +71,5 @@ public abstract class FloatList extends
   public String get_headAsString() {
     return Float.toString(((NonEmptyFloatList)this).getHead());
   }
-
-  /* (non-Javadoc)
-   * @see org.apache.uima.jcas.cas.CommonList#getTail()
-   */
-  @Override
-  public CommonList getTail() {
-    return ((NonEmptyFloatList)this).getTail();
-  }
-
-  /* (non-Javadoc)
-   * @see org.apache.uima.jcas.cas.CommonList#setTail(org.apache.uima.jcas.cas.CommonList)
-   */
-  @Override
-  public void setTail(CommonList v) {
-    ((NonEmptyFloatList)this).setTail(v);  // value cast is for checking
-    
-  }
   
 }

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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -23,7 +23,7 @@ import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
-public abstract class IntegerList extends CommonList {
+public abstract class IntegerList extends TOP implements CommonList {
 
 	// Never called.
 	protected IntegerList() { // Disable default constructor
@@ -70,23 +70,6 @@ public abstract class IntegerList extend
   @Override
   public String get_headAsString() {
     return Integer.toString(((NonEmptyIntegerList)this).getHead());
-  }
-
-  /* (non-Javadoc)
-   * @see org.apache.uima.jcas.cas.CommonList#getTail()
-   */
-  @Override
-  public CommonList getTail() {
-    return ((NonEmptyIntegerList)this).getTail();
-  }
-
-  /* (non-Javadoc)
-   * @see org.apache.uima.jcas.cas.CommonList#setTail(org.apache.uima.jcas.cas.CommonList)
-   */
-  @Override
-  public void setTail(CommonList v) {
-    ((NonEmptyIntegerList)this).setTail(v);
-  }
-  
+  }  
   
 }

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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -92,12 +92,16 @@ public class NonEmptyFSList extends FSLi
   public FSList getTail() { return _F_tail; }
 
   /* setter for tail * */
-  public void setTail(CommonList v) {
-    _F_tail = (FSList) v;
+  public void setTail(FSList v) {
+    _F_tail = v;
     // no corruption check - can't be a key
     _casView.maybeLogUpdate(this, tail_featCode);
   }
   
+  public void setTail(CommonList v) {
+    setTail((FSList) v);
+  }
+  
   public TOP getNthElement(int i) {
     return ((NonEmptyFSList)getNonEmptyNthNode(i)).getHead();
   }

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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -92,11 +92,13 @@ public class NonEmptyFloatList extends F
   public FloatList getTail() { return _F_tail; }
 
   /* setter for tail * */
-  @Override
-  public void setTail(CommonList v) {
-    _F_tail = (FloatList) v;
+  public void setTail(FloatList v) {
+    _F_tail = v;
     // no corruption check - can't be a key
     _casView.maybeLogUpdate(this, tail_featCode);
   }
-  
+
+  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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -95,13 +95,16 @@ public class NonEmptyIntegerList extends
   public IntegerList getTail() { return _F_tail; }
 
   /* setter for tail * */
-  public void setTail(CommonList v) {
-    assert(v instanceof IntegerList);
-    _F_tail = (IntegerList) v;
+  public void setTail(IntegerList v) {
+    _F_tail = v;
     // no corruption check - can't be a key
     _casView.maybeLogUpdate(this, tail_featCode);
   }
   
+  public void setTail(CommonList v) {
+    setTail((IntegerList)v);
+  }
+  
   public void setHead(List<String> stringValues, int i) {
     setHead(Integer.parseInt(stringValues.get(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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -88,10 +88,14 @@ public class NonEmptyStringList extends
   public StringList getTail() { return _F_tail; }
 
   /* setter for tail * */
-  public void setTail(CommonList v) {
-    _F_tail = (StringList) v;
+  public void setTail(StringList v) {
+    _F_tail = v;
     // no corruption check - can't be a key
     _casView.maybeLogUpdate(this, tail_featCode);
   }
+  
+  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=1712148&r1=1712147&r2=1712148&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 Mon Nov  2 20:38:36 2015
@@ -23,7 +23,7 @@ import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.jcas.JCas;
 
-public abstract class StringList extends CommonList {
+public abstract class StringList extends TOP implements CommonList {
 
 	// Never called.
 	protected StringList() { // Disable default constructor