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/05/06 21:11:59 UTC
svn commit: r1742632 - in
/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl:
XCASDeserializer.java XCASSerializer.java XmiCasDeserializer.java
XmiCasSerializer.java
Author: schor
Date: Fri May 6 21:11:59 2016
New Revision: 1742632
URL: http://svn.apache.org/viewvc?rev=1742632&view=rev
Log:
[UIMA-4673] Misc class move, support for array values for some type impl things.
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java?rev=1742632&r1=1742631&r2=1742632&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java Fri May 6 21:11:59 2016
@@ -32,13 +32,13 @@ import org.apache.uima.cas.FSIndexReposi
import org.apache.uima.cas.Type;
import org.apache.uima.cas.TypeSystem;
import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
import org.apache.uima.internal.util.StringUtils;
import org.apache.uima.internal.util.rb_trees.RedBlackTree;
import org.apache.uima.jcas.cas.CommonPrimitiveArray;
import org.apache.uima.jcas.cas.FSArray;
import org.apache.uima.jcas.cas.Sofa;
import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.util.Misc;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
@@ -886,6 +886,9 @@ public class XCASDeserializer {
}
return;
}
+
+ // handle case where feature is xyz[] (an array ref, not primitive) but the value of fs is FSArray
+ ts.fixupFSArrayTypes(fi.getRangeImpl(), fsInfo.fs);
fs.setFeatureValue(fi, fsInfo.fs);
}
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java?rev=1742632&r1=1742631&r2=1742632&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java Fri May 6 21:11:59 2016
@@ -508,12 +508,15 @@ public class XCASSerializer {
}
private void encodeFSArray(FSArray fs, AttributesImpl attrs) throws SAXException {
- final String typeName = fs._typeImpl.getName();
+ String typeName = fs._typeImpl.getName();
final int size = fs.size();
// int pos = cas.getArrayStartAddress(fs_id);
// xmlStack.addAttribute(ARRAY_SIZE_ATTR, Integer.toString(size));
// xmlStack.commitNode();
addAttribute(attrs, ARRAY_SIZE_ATTR, Integer.toString(size));
+ if (typeName.endsWith(TypeSystemImpl.ARRAY_TYPE_SUFFIX)) {
+ typeName = CASImpl.TYPE_NAME_FS_ARRAY;
+ }
startElement(typeName, attrs, size);
for (int i = 0; i < size; i++) {
String val = null;
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java?rev=1742632&r1=1742631&r2=1742632&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java Fri May 6 21:11:59 2016
@@ -49,6 +49,7 @@ import org.apache.uima.cas.impl.XmiSeria
import org.apache.uima.cas.impl.XmiSerializationSharedData.OotsElementData;
import org.apache.uima.internal.util.I18nUtil;
import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
import org.apache.uima.internal.util.XmlAttribute;
import org.apache.uima.internal.util.XmlElementName;
import org.apache.uima.internal.util.XmlElementNameAndContents;
@@ -64,7 +65,6 @@ import org.apache.uima.jcas.cas.NonEmpty
import org.apache.uima.jcas.cas.NonEmptyList;
import org.apache.uima.jcas.cas.Sofa;
import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.util.Misc;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
@@ -1075,7 +1075,7 @@ public class XmiCasDeserializer {
break;
}
default: {
- assert false; // this should be an exhaustive case block
+ Misc.internalError(); // this should be an exhaustive case block
}
}
}
@@ -1090,6 +1090,7 @@ public class XmiCasDeserializer {
fixupToDos.add( () -> finalizeRefValue(xmiId, fs, fi));
} else {
fs.setFeatureValue(fi, tgtFs);
+ ts.fixupFSArrayTypes(fi.getRangeImpl(), tgtFs);
}
}
}
@@ -1769,6 +1770,7 @@ public class XmiCasDeserializer {
}
} else {
fs.setFeatureValue(fi, tgtFs);
+ ts.fixupFSArrayTypes(fi.getRangeImpl(), tgtFs);
}
}
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java?rev=1742632&r1=1742631&r2=1742632&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java Fri May 6 21:11:59 2016
@@ -37,6 +37,7 @@ import org.apache.uima.cas.impl.CasSeria
import org.apache.uima.cas.impl.CasSerializerSupport.CasSerializerSupportSerialize;
import org.apache.uima.cas.impl.XmiSerializationSharedData.OotsElementData;
import org.apache.uima.cas.impl.XmiSerializationSharedData.XmiArrayElement;
+import org.apache.uima.internal.util.Misc;
import org.apache.uima.internal.util.XmlAttribute;
import org.apache.uima.internal.util.XmlElementName;
import org.apache.uima.internal.util.XmlElementNameAndContents;
@@ -818,7 +819,10 @@ public class XmiCasSerializer {
XmlAttribute attr = attrIt.next();
addAttribute(workAttrs, attr.name, attr.value);
}
-
+ // debug
+ if (oed.elementName.qName.endsWith("[]")) {
+ Misc.internalError(new Exception("XMI Cas Serialization: out of type system data has type name ending with []"));
+ }
// serialize element
startElement(oed.elementName, workAttrs, oed.childElements.size());
@@ -1253,6 +1257,11 @@ public class XmiCasSerializer {
*/
@Override
protected XmlElementName uimaTypeName2XmiElementName(String uimaTypeName) {
+ if (uimaTypeName.endsWith(TypeSystemImpl.ARRAY_TYPE_SUFFIX)) {
+ // can't write out xyz[] as the qname. Use FSArray instead
+ uimaTypeName = CASImpl.TYPE_NAME_FS_ARRAY;
+ }
+
// split uima type name into namespace and short name
String shortName, nsUri;
final int lastDotIndex = uimaTypeName.lastIndexOf('.');
@@ -1281,7 +1290,7 @@ public class XmiCasSerializer {
// determine what namespace prefix to use
String prefix = cds.getNameSpacePrefix(uimaTypeName, nsUri, lastDotIndex);
-
+ // debug
return new XmlElementName(nsUri, shortName, cds.getUniqueString(prefix + ':' + shortName));
}