Search in sources :

Example 1 with IonClob

use of com.amazon.ion.IonClob in project ion-java by amzn.

the class IonReaderTextSystemX method getIonValue.

public IonValue getIonValue(IonSystem sys) {
    if (isNullValue()) {
        switch(_value_type) {
            case NULL:
                return sys.newNull();
            case BOOL:
                return sys.newNullBool();
            case INT:
                return sys.newNullInt();
            case FLOAT:
                return sys.newNullFloat();
            case DECIMAL:
                return sys.newNullDecimal();
            case TIMESTAMP:
                return sys.newNullTimestamp();
            case SYMBOL:
                return sys.newNullSymbol();
            case STRING:
                return sys.newNullString();
            case CLOB:
                return sys.newNullClob();
            case BLOB:
                return sys.newNullBlob();
            case LIST:
                return sys.newNullList();
            case SEXP:
                return sys.newNullSexp();
            case STRUCT:
                return sys.newNullString();
            default:
                throw new IonException("unrecognized type encountered");
        }
    }
    switch(_value_type) {
        case NULL:
            return sys.newNull();
        case BOOL:
            return sys.newBool(booleanValue());
        case INT:
            return sys.newInt(longValue());
        case FLOAT:
            return sys.newFloat(doubleValue());
        case DECIMAL:
            return sys.newDecimal(decimalValue());
        case TIMESTAMP:
            IonTimestamp t = sys.newNullTimestamp();
            Timestamp ti = timestampValue();
            t.setValue(ti);
            return t;
        case SYMBOL:
            return sys.newSymbol(stringValue());
        case STRING:
            return sys.newString(stringValue());
        case CLOB:
            IonClob clob = sys.newNullClob();
            // FIXME inefficient: both newBytes and setBytes copy the data
            clob.setBytes(newBytes());
            return clob;
        case BLOB:
            IonBlob blob = sys.newNullBlob();
            // FIXME inefficient: both newBytes and setBytes copy the data
            blob.setBytes(newBytes());
            return blob;
        case LIST:
            IonList list = sys.newNullList();
            fillContainerList(sys, list);
            return list;
        case SEXP:
            IonSexp sexp = sys.newNullSexp();
            fillContainerList(sys, sexp);
            return sexp;
        case STRUCT:
            IonStruct struct = sys.newNullStruct();
            fillContainerStruct(sys, struct);
            return struct;
        default:
            throw new IonException("unrecognized type encountered");
    }
}
Also used : IonStruct(com.amazon.ion.IonStruct) IonSexp(com.amazon.ion.IonSexp) IonException(com.amazon.ion.IonException) IonTimestamp(com.amazon.ion.IonTimestamp) IonList(com.amazon.ion.IonList) IonClob(com.amazon.ion.IonClob) IonBlob(com.amazon.ion.IonBlob) Timestamp(com.amazon.ion.Timestamp) IonTimestamp(com.amazon.ion.IonTimestamp)

Example 2 with IonClob

use of com.amazon.ion.IonClob in project ion-java by amzn.

the class IonWriterSystemTree method writeClob.

public void writeClob(byte[] value, int start, int len) throws IOException {
    IonClob v = _factory.newClob(value, start, len);
    append(v);
}
Also used : IonClob(com.amazon.ion.IonClob)

Example 3 with IonClob

use of com.amazon.ion.IonClob in project ion-java by amzn.

the class _Private_CurriedValueFactory method newClob.

public IonClob newClob(byte[] value) {
    IonClob v = myFactory.newClob(value);
    handle(v);
    return v;
}
Also used : IonClob(com.amazon.ion.IonClob)

Example 4 with IonClob

use of com.amazon.ion.IonClob in project ion-java by amzn.

the class PrinterTest method testPrintingClob.

@Test
public void testPrintingClob() throws Exception {
    IonClob value = system().newNullClob();
    checkNullRendering("null.clob", value);
    value.setBytes(ClobTest.SAMPLE_ASCII_AS_UTF8);
    checkRendering("{{\"" + ClobTest.SAMPLE_ASCII + "\"}}", value);
    // TODO test "real" UTF8 and other encodings.
    value = (IonClob) oneValue("{{\"\"}}");
    checkRendering("{{\"\"}}", value);
    value.addTypeAnnotation("an");
    checkRendering("an::{{\"\"}}", value);
    myPrinter.setPrintClobAsString(true);
    checkRendering("an::\"\"", value);
    value.clearTypeAnnotations();
    value.setBytes(ClobTest.SAMPLE_ASCII_AS_UTF8);
    checkRendering("\"" + ClobTest.SAMPLE_ASCII + "\"", value);
    value = (IonClob) oneValue("{{'''Ab\\0'''}}");
    myPrinter.setPrintClobAsString(false);
    checkRendering("{{\"Ab\\0\"}}", value);
    myPrinter.setPrintClobAsString(true);
    checkRendering("\"Ab\\0\"", value);
    myPrinter.setPrintStringAsJson(true);
    checkRendering("\"Ab\\u0000\"", value);
}
Also used : IonClob(com.amazon.ion.IonClob) Test(org.junit.Test) IntTest(com.amazon.ion.IntTest) BlobTest(com.amazon.ion.BlobTest) ClobTest(com.amazon.ion.ClobTest)

Example 5 with IonClob

use of com.amazon.ion.IonClob in project ion-java by amzn.

the class _Private_CurriedValueFactory method newNullClob.

// -------------------------------------------------------------------------
public IonClob newNullClob() {
    IonClob v = myFactory.newNullClob();
    handle(v);
    return v;
}
Also used : IonClob(com.amazon.ion.IonClob)

Aggregations

IonClob (com.amazon.ion.IonClob)7 IonBlob (com.amazon.ion.IonBlob)2 IonList (com.amazon.ion.IonList)2 IonSexp (com.amazon.ion.IonSexp)2 IonStruct (com.amazon.ion.IonStruct)2 IonTimestamp (com.amazon.ion.IonTimestamp)2 BlobTest (com.amazon.ion.BlobTest)1 ClobTest (com.amazon.ion.ClobTest)1 IntTest (com.amazon.ion.IntTest)1 IonBool (com.amazon.ion.IonBool)1 IonDecimal (com.amazon.ion.IonDecimal)1 IonException (com.amazon.ion.IonException)1 IonFloat (com.amazon.ion.IonFloat)1 IonInt (com.amazon.ion.IonInt)1 IonNull (com.amazon.ion.IonNull)1 IonString (com.amazon.ion.IonString)1 IonSymbol (com.amazon.ion.IonSymbol)1 Timestamp (com.amazon.ion.Timestamp)1 Test (org.junit.Test)1