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/08/24 14:44:37 UTC
svn commit: r1757533 - in
/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima:
cas/impl/BinaryCasSerDes6.java cas/impl/CASImpl.java util/CasIOUtils.java
Author: schor
Date: Wed Aug 24 14:44:37 2016
New Revision: 1757533
URL: http://svn.apache.org/viewvc?rev=1757533&view=rev
Log:
[UIMA-4685] add load method with passed in type system for form 6
Modified:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/CasIOUtils.java
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java?rev=1757533&r1=1757532&r2=1757533&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java Wed Aug 24 14:44:37 2016
@@ -1706,7 +1706,7 @@ public class BinaryCasSerDes6 {
cas.resetNoQuestions();
}
- cas.reinit(h, deserIn, null, CasLoadMode.DEFAULT, this, AllowPreexistingFS.allow);
+ cas.reinit(h, deserIn, null, CasLoadMode.DEFAULT, this, AllowPreexistingFS.allow, null);
// deserializeAfterVersion(deserIn, isReadingDelta, AllowPreexistingFS.allow);
}
@@ -1727,7 +1727,7 @@ public class BinaryCasSerDes6 {
throw new UnsupportedOperationException("Delta CAS required for this call");
}
- cas.reinit(h, deserIn, null, CasLoadMode.DEFAULT, this, allowPreexistingFS);
+ cas.reinit(h, deserIn, null, CasLoadMode.DEFAULT, this, allowPreexistingFS, null);
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java?rev=1757533&r1=1757532&r2=1757533&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java Wed Aug 24 14:44:37 2016
@@ -1390,7 +1390,7 @@ public class CASImpl extends AbstractCas
try {
Header h = CommonSerDes.readHeader(dis);
- return reinit(h, istream, null, CasLoadMode.DEFAULT, null, AllowPreexistingFS.allow);
+ return reinit(h, istream, null, CasLoadMode.DEFAULT, null, AllowPreexistingFS.allow, null);
} catch (IOException e) {
String msg = e.getMessage();
if (msg == null) {
@@ -1431,9 +1431,10 @@ public class CASImpl extends AbstractCas
CASMgrSerializer casMgrSerializer,
CasLoadMode casLoadMode,
BinaryCasSerDes6 f6,
- AllowPreexistingFS allowPreexistingFS) throws CASRuntimeException {
+ AllowPreexistingFS allowPreexistingFS,
+ TypeSystemImpl ts) throws CASRuntimeException {
if (this != this.svd.baseCAS) {
- return this.svd.baseCAS.reinit(h, istream, casMgrSerializer, casLoadMode, f6, allowPreexistingFS);
+ return this.svd.baseCAS.reinit(h, istream, casMgrSerializer, casLoadMode, f6, allowPreexistingFS, ts);
}
final DataInputStream dis = CommonSerDes.maybeWrapToDataInputStream(istream);
@@ -1473,10 +1474,18 @@ public class CASImpl extends AbstractCas
tsRead.commit(); // no generators set up
}
+ TypeSystemImpl ts_for_decoding = (ts != null)
+ ? ts
+ : (f6 == null)
+ ? tsRead
+ : (f6.getTgtTs() == null)
+ ? tsRead
+ : f6.getTgtTs();
+
try {
BinaryCasSerDes6 bcsd = (f6 != null)
- ? new BinaryCasSerDes6(f6, (f6.getTgtTs() == null) ? tsRead : f6.getTgtTs())
- : new BinaryCasSerDes6(this, tsRead);
+ ? new BinaryCasSerDes6(f6, ts_for_decoding)
+ : new BinaryCasSerDes6(this, ts_for_decoding);
bcsd.deserializeAfterVersion(dis, delta, AllowPreexistingFS.allow);
return h.typeSystemIndexDefIncluded
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/CasIOUtils.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/CasIOUtils.java?rev=1757533&r1=1757532&r2=1757533&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/CasIOUtils.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/CasIOUtils.java Wed Aug 24 14:44:37 2016
@@ -36,6 +36,7 @@ import org.apache.uima.UIMARuntimeExcept
import org.apache.uima.cas.CAS;
import org.apache.uima.cas.CASRuntimeException;
import org.apache.uima.cas.SerialFormat;
+import org.apache.uima.cas.TypeSystem;
import org.apache.uima.cas.admin.CASMgr;
import org.apache.uima.cas.impl.AllowPreexistingFS;
import org.apache.uima.cas.impl.BinaryCasSerDes4;
@@ -306,6 +307,29 @@ public class CasIOUtils {
*/
public static SerialFormat load(InputStream casInputStream, InputStream tsiInputStream, CAS aCAS,
CasLoadMode casLoadMode) throws IOException {
+ return load(casInputStream, tsiInputStream, aCAS, casLoadMode, null);
+ }
+
+ /**
+ * This is used for loading Form 6 compressed CASes where the type system to use to deserialize is provided as an argument.
+ *
+ * @param casInputStream
+ * The input stream containing the CAS, appropriately buffered.
+ * @param aCAS
+ * The CAS that should be filled
+ * @param typeSystem the type system to use for decoding the serialized form, must be non-null
+ * @return the SerialFormat of the loaded CAS
+ * @throws IOException Problem loading from given InputStream
+ */
+ public static SerialFormat load(InputStream casInputStream, CAS aCAS, TypeSystem typeSystem) throws IOException {
+ if (null == typeSystem) {
+ throw new IllegalArgumentException("typeSystem argument cannot be null");
+ }
+ return load(casInputStream, null, aCAS, CasLoadMode.DEFAULT, (TypeSystemImpl) typeSystem);
+ }
+
+ private static SerialFormat load(InputStream casInputStream, InputStream tsiInputStream, CAS aCAS,
+ CasLoadMode casLoadMode, TypeSystemImpl typeSystem) throws IOException {
if (!casInputStream.markSupported()) {
casInputStream = new BufferedInputStream(casInputStream);
@@ -338,7 +362,7 @@ public class CasIOUtils {
* Binary, Compressed Binary (form 4 or 6)
******************************************/
Header h = CommonSerDes.readHeader(deserIn);
- return casImpl.reinit(h, casInputStream, readCasManager(tsiInputStream), casLoadMode, null, AllowPreexistingFS.allow);
+ return casImpl.reinit(h, casInputStream, readCasManager(tsiInputStream), casLoadMode, null, AllowPreexistingFS.allow, typeSystem);
} else {