Search in sources :

Example 1 with FloatArrayInputStream

use of de.fhg.igd.mongomvcc.helper.FloatArrayInputStream in project mongomvcc by igd-geo.

the class DefaultConvertStrategy method convert.

@Override
public long convert(Object data) {
    GridFSInputFile file;
    if (data instanceof byte[]) {
        file = _gridFS.createFile((byte[]) data);
        file.put(BINARY_TYPE, BYTEARRAY);
    } else if (data instanceof float[]) {
        file = _gridFS.createFile(new FloatArrayInputStream((float[]) data));
        file.put(BINARY_TYPE, FLOATARRAY);
    } else if (data instanceof InputStream) {
        file = _gridFS.createFile((InputStream) data);
        file.put(BINARY_TYPE, INPUTSTREAM);
    } else if (data instanceof ByteBuffer) {
        ByteBuffer bb = (ByteBuffer) data;
        byte[] buf;
        if (bb.hasArray()) {
            buf = bb.array();
        } else {
            bb.rewind();
            buf = new byte[bb.remaining()];
            bb.get(buf);
        }
        file = _gridFS.createFile(buf);
        file.put(BINARY_TYPE, BYTEBUFFER);
    } else if (data instanceof FloatBuffer) {
        FloatBuffer bb = (FloatBuffer) data;
        float[] buf;
        if (bb.hasArray()) {
            buf = bb.array();
        } else {
            bb.rewind();
            buf = new float[bb.remaining()];
            bb.get(buf);
        }
        file = _gridFS.createFile(new FloatArrayInputStream(buf));
        file.put(BINARY_TYPE, FLOATBUFFER);
    } else {
        return 0;
    }
    long oid = _counter.getNextId();
    file.put(MongoDBVLargeCollection.OID, oid);
    _convertedFiles.add(file);
    return oid;
}
Also used : GridFSInputFile(com.mongodb.gridfs.GridFSInputFile) DataInputStream(java.io.DataInputStream) BufferedInputStream(java.io.BufferedInputStream) FloatArrayInputStream(de.fhg.igd.mongomvcc.helper.FloatArrayInputStream) InputStream(java.io.InputStream) FloatArrayInputStream(de.fhg.igd.mongomvcc.helper.FloatArrayInputStream) FloatBuffer(java.nio.FloatBuffer) ByteBuffer(java.nio.ByteBuffer)

Aggregations

GridFSInputFile (com.mongodb.gridfs.GridFSInputFile)1 FloatArrayInputStream (de.fhg.igd.mongomvcc.helper.FloatArrayInputStream)1 BufferedInputStream (java.io.BufferedInputStream)1 DataInputStream (java.io.DataInputStream)1 InputStream (java.io.InputStream)1 ByteBuffer (java.nio.ByteBuffer)1 FloatBuffer (java.nio.FloatBuffer)1