Package com.persistit.encoding

Examples of com.persistit.encoding.ValueCoder


     *            The class for which a <code>ValueCoder</code> is needed
     * @return The <code>ValueCoder</code>
     */
    @Override
    public ValueCoder getValueCoder(final Class<?> clazz) {
        ValueCoder coder = lookupValueCoder(clazz);
        if (coder == null) {
            final boolean serialOverride = isSerialOverride(clazz);
            if (serialOverride) {
                coder = new SerialValueCoder(clazz);
            } else if (ENUM_CLASS != null && ENUM_VALUE_CODER != null && ENUM_CLASS.isAssignableFrom(clazz)) {
View Full Code Here


     * collections classes in the Java API. These are somewhat faster and more
     * space-efficient than default java serialization of the same classes. This
     * method is called by Persistit during initialization.
     */
    private void registerDefaultCoveredClasses() {
        final ValueCoder coder = new CollectionValueCoder();
        for (int index = 0; index < COLLECTION_CLASSES.length; index++) {
            final Class<?> clazz = COLLECTION_CLASSES[index];
            if (!isSerialOverride(clazz)) {
                registerValueCoder(COLLECTION_CLASSES[index], coder);
            }
View Full Code Here

            throw new ConversionException("Not Serializable: " + clientClass.getName());
        }

        final Class superClass = clientClass.getSuperclass();
        if (superClass != null && Serializable.class.isAssignableFrom(superClass)) {
            ValueCoder coder = null;
            final CoderManager cm = _persistit.getCoderManager();
            if (cm != null) {
                coder = cm.lookupValueCoder(superClass);
            }
            if (!(coder instanceof DefaultValueCoder)) {
View Full Code Here

        default: {
            if (classHandle >= CLASS1) {
                try {
                    final Class<?> clazz = _persistit.classForHandle(classHandle);
                    ValueCoder coder = null;
                    _depth++;
                    getValueCache().store(currentItemCount, new DisplayMarker(sb.length()));

                    _serializedItemCount++;
View Full Code Here

        default: {
            final int saveDepth = _depth;
            try {
                _depth++;
                final Class<?> cl = _persistit.classForHandle(classHandle);
                final ValueCoder coder = getValueCoder(cl);

                if (coder != null) {
                    if (target == null) {
                        object = coder.get(this, cl, context);
                    }

                    else if (coder instanceof ValueRenderer) {
                        ((ValueRenderer) coder).render(this, target, cl, context);
                        object = target;
View Full Code Here

            try {
                if (_shared && _depth == 0) {
                    getValueCache().put(currentItemCount, object);
                }
                _depth++;
                ValueCoder coder = getValueCoder(cl);

                while (coder instanceof DefaultObjectCoder) {
                    final Object replacement = ((DefaultObjectCoder) coder).writeReplace(this, object);

                    if (replacement == object)
                        break;

                    replaced = true;

                    if (replacement != null) {
                        object = replacement;
                        cl = replacement.getClass();
                        coder = getValueCoder(cl);
                    } else {
                        break;
                    }
                }

                if (replaced) {
                    put(object, context);
                    end = _size;
                } else {
                    int handle;
                    if (cl == Object.class) {
                        handle = CLASS_OBJECT;
                    } else
                        handle = _persistit.getClassIndex().lookupByClass(cl).getHandle();

                    if (coder != null) {
                        _size += encodeVariableLengthInt(CLASS1, _size, handle - CLASS1);

                        coder.put(this, object, context);
                        end = _size;
                    } else {
                        _bytes[_size++] = CLASS_SERIALIZED;
                        final ObjectOutputStream oos = new OldValueOutputStream(this);
                        oos.writeObject(object);
View Full Code Here

            throw new ConversionException("Not Serializable: " + clientClass.getName());
        }

        final Class superClass = clientClass.getSuperclass();
        if (superClass != null && Serializable.class.isAssignableFrom(superClass)) {
            ValueCoder coder = null;
            final CoderManager cm = _persistit.getCoderManager();
            if (cm != null) {
                coder = cm.lookupValueCoder(superClass);
            }
            if (!(coder instanceof DefaultValueCoder)) {
View Full Code Here

        default: {
            if (classHandle >= CLASS1) {
                try {
                    final Class<?> clazz = classForHandle(classHandle);
                    ValueCoder coder = null;
                    _depth++;
                    getValueCache().store(currentItemCount, new DisplayMarker(sb.length()));

                    _serializedItemCount++;
View Full Code Here

        default: {
            final int saveDepth = _depth;
            try {
                _depth++;
                final Class<?> cl = classForHandle(classHandle);
                final ValueCoder coder = getValueCoder(cl);

                if (coder != null) {
                    if (target == null) {
                        object = coder.get(this, cl, context);
                    }

                    else if (coder instanceof ValueRenderer) {
                        ((ValueRenderer) coder).render(this, target, cl, context);
                        object = target;
View Full Code Here

            try {
                if (_shared && _depth == 0) {
                    getValueCache().put(currentItemCount, object);
                }
                _depth++;
                ValueCoder coder = getValueCoder(cl);

                while (coder instanceof DefaultObjectCoder) {
                    final Object replacement = ((DefaultObjectCoder) coder).writeReplace(this, object);

                    if (replacement == object)
                        break;

                    replaced = true;

                    if (replacement != null) {
                        object = replacement;
                        cl = replacement.getClass();
                        coder = getValueCoder(cl);
                    } else {
                        break;
                    }
                }

                if (replaced) {
                    put(object, context);
                    end = _size;
                } else {
                    int handle;
                    if (cl == Object.class) {
                        handle = CLASS_OBJECT;
                    } else
                        handle = handleForClass(cl);

                    if (coder != null) {
                        _size += encodeVariableLengthInt(CLASS1, _size, handle - CLASS1);
                        coder.put(this, object, context);
                        end = _size;
                    } else {
                        _bytes[_size++] = CLASS_SERIALIZED;
                        final ObjectOutputStream oos = new OldValueOutputStream(this);
                        oos.writeObject(object);
View Full Code Here

TOP

Related Classes of com.persistit.encoding.ValueCoder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.