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

org.openfast.template.serializer.ComposedDecimalSerializer Maven / Gradle / Ivy

package org.openfast.template.serializer;

import org.openfast.template.ComposedScalar;
import org.openfast.template.Field;
import org.openfast.template.Scalar;
import org.openfast.template.operator.Operator;
import org.openfast.template.type.Type;
import org.openfast.util.XmlWriter;

public class ComposedDecimalSerializer implements FieldSerializer {
    public boolean canSerialize(Field field) {
        return field instanceof ComposedScalar && Type.DECIMAL.equals(((ComposedScalar) field).getType());
    }

    public void serialize(XmlWriter writer, Field field, SerializingContext context) {
        ComposedScalar decimal = (ComposedScalar) field;
        Scalar exponent = decimal.getFields()[0];
        Scalar mantissa = decimal.getFields()[1];
        writer.start("decimal");
        AbstractFieldSerializer.writeCommonAttributes(writer, decimal, context);
        if (!Operator.NONE.equals(exponent.getOperator())) {
            writer.start("exponent");
            AbstractFieldSerializer.writeOperator(writer, exponent, context);
            writer.end();
        }
        if (!Operator.NONE.equals(mantissa.getOperator())) {
            writer.start("mantissa");
            AbstractFieldSerializer.writeOperator(writer, mantissa, context);
            writer.end();
        }
        writer.end();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy