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;
}
-
+
}