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