// intarraySofaFS.setLocalSofaData(intArrayFS);
JCas intArrayView = jcas.createView("intArraySofaData");
intArrayView.setSofaDataArray(intArrayFS, "integers");
// create a float array fs
FloatArray floatArrayFS = new FloatArray(jcas, 5);
floatArrayFS.set(0, (float) 0.1);
floatArrayFS.set(1, (float) 0.2);
floatArrayFS.set(2, (float) 0.3);
floatArrayFS.set(3, (float) 0.4);
floatArrayFS.set(4, (float) 0.5);
// create a sofa and set the SofaArray feature to the float array
// id = new SofaID_impl();
// id.setSofaID("floatArraySofaData");
// SofaFS floatarraySofaFS = new Sofa(jcas, id, "text");
// floatarraySofaFS.setLocalSofaData(floatArrayFS);
JCas floatArrayView = jcas.createView("floatArraySofaData");
floatArrayView.setSofaDataArray(floatArrayFS, "floats");
// create a short array fs
ShortArray shortArrayFS = new ShortArray(jcas, 5);
shortArrayFS.set(0, (short) 128);
shortArrayFS.set(1, (short) 127);
shortArrayFS.set(2, (short) 126);
shortArrayFS.set(3, (short) 125);
shortArrayFS.set(4, (short) 124);
// create a Sofa and set the SofaArray feature to an int array FS.
JCas shortArrayView = jcas.createView("shortArraySofaData");
shortArrayView.setSofaDataArray(shortArrayFS, "shorts");
// create a byte array fs
ByteArray byteArrayFS = new ByteArray(jcas, 5);
byteArrayFS.set(0, (byte) 8);
byteArrayFS.set(1, (byte) 16);
byteArrayFS.set(2, (byte) 64);
byteArrayFS.set(3, (byte) 128);
byteArrayFS.set(4, (byte) 255);
// create a Sofa and set the SofaArray feature.
JCas byteArrayView = jcas.createView("byteArraySofaData");
byteArrayView.setSofaDataArray(byteArrayFS, "bytes");
// create a long array fs
LongArray longArrayFS = new LongArray(jcas, 5);
longArrayFS.set(0, Long.MAX_VALUE);
longArrayFS.set(1, Long.MAX_VALUE - 1);
longArrayFS.set(2, Long.MAX_VALUE - 2);
longArrayFS.set(3, Long.MAX_VALUE - 3);
longArrayFS.set(4, Long.MAX_VALUE - 4);
// create a Sofa and set the SofaArray feature.
JCas longArrayView = jcas.createView("longArraySofaData");
longArrayView.setSofaDataArray(longArrayFS, "longs");
DoubleArray doubleArrayFS = new DoubleArray(jcas, 5);
doubleArrayFS.set(0, Double.MAX_VALUE);
doubleArrayFS.set(1, Double.MIN_VALUE);
doubleArrayFS.set(2, Double.parseDouble("1.5555"));
doubleArrayFS.set(3, Double.parseDouble("99.000000005"));
doubleArrayFS.set(4, Double.parseDouble("4.44444444444444444"));
// create a Sofa and set the SofaArray feature.
JCas doubleArrayView = jcas.createView("doubleArraySofaData");
doubleArrayView.setSofaDataArray(doubleArrayFS, "doubles");
// create remote sofa and set the SofaURI feature
JCas remoteView = jcas.createView("remoteSofaData");
String sofaFileName = "./Sofa.xcas";
remoteView.setSofaDataURI("file:" + sofaFileName, "text");
PrintWriter out = new PrintWriter(sofaFileName);
out.print("this beer is good");
out.close();
// read sofa data
InputStream is = stringView.getSofaDataStream();
assertTrue(is != null);
byte[] dest = new byte[1];
StringBuffer buf = new StringBuffer();
while (is.read(dest) != -1) {
buf.append((char) dest[0]);
}
assertTrue(buf.toString().equals("this beer is good"));
dest = new byte[4];
is.close();
is = intArrayView.getSofaDataStream();
assertTrue(is != null);
BufferedInputStream bis = new BufferedInputStream(is);
int i = 0;
while (bis.read(dest) != -1) {
assertTrue(ByteBuffer.wrap(dest).getInt() == intArrayFS.get(i++));
}
bis.close();
is = floatArrayView.getSofaDataStream();
assertTrue(is != null);
bis = new BufferedInputStream(is);
i = 0;
while (bis.read(dest) != -1) {
assertTrue(ByteBuffer.wrap(dest).getFloat() == floatArrayFS.get(i++));
}
dest = new byte[2];
bis.close();
is = shortArrayView.getSofaDataStream();