All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nakedobjects.plugins.remoting.shared.data.EncodeableObjectDataImpl Maven / Gradle / Ivy

package org.nakedobjects.plugins.remoting.shared.data;

import java.io.Serializable;

import org.nakedobjects.metamodel.commons.encoding.ByteDecoder;
import org.nakedobjects.metamodel.commons.encoding.ByteEncoder;
import org.nakedobjects.metamodel.commons.encoding.Encodable;
import org.nakedobjects.metamodel.commons.lang.ToString;

public class EncodeableObjectDataImpl implements EncodeableObjectData, Encodable, Serializable {
    private static final long serialVersionUID = 1L;
    private final String type;
    private final String encodedObject;

    protected EncodeableObjectDataImpl(final String type, final String encodedObject) {
        this.type = type == null ? null : type.equals(String.class.getName()) ? "s" : type;
        this.encodedObject = encodedObject;
    }

    public EncodeableObjectDataImpl(final ByteDecoder decoder) {
        type = decoder.getString();
        encodedObject = decoder.getString();
    }

    public void encode(final ByteEncoder encoder) {
        encoder.add(type);
        encoder.add(encodedObject);
    }

    public String getEncodedObjectData() {
        return encodedObject;
    }

    public String getType() {
        return type.equals("s") ? String.class.getName() : type;
    }

    @Override
    public String toString() {
        final ToString str = new ToString(this);
        str.append("type", type);
        str.append("value", encodedObject);
        return str.toString();
    }

}
// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2025 Weber Informatics LLC | Privacy Policy