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

se.ugli.durian.j.fpd.Field Maven / Gradle / Ivy

package se.ugli.durian.j.fpd;

import se.ugli.durian.j.dom.mutable.MutableAttribute;
import se.ugli.durian.j.dom.mutable.MutableNodeFactory;
import se.ugli.durian.j.dom.node.Element;
import se.ugli.durian.j.dom.node.Node;

class Field implements Definition {

    private final String name;
    private final int length;
    private final String targetNamespace;
    private final boolean includeEmptyValues;

    Field(final Element element, final String targetNamespace, final boolean includeEmptyValues) {
        name = element.attributeValue("name").get();
        length = Integer.parseInt(element.attributeValue("length").get());
        this.targetNamespace = targetNamespace;
        this.includeEmptyValues = includeEmptyValues;
    }

    @Override
    public Node createNode(final String data) {
        final String value = data.trim();
        if (!value.isEmpty() || includeEmptyValues)
            return new MutableAttribute(name, targetNamespace, value, new MutableNodeFactory());
        return null;
    }

    @Override
    public String name() {
        return name;
    }

    @Override
    public int numOfChars() {
        return length;
    }

    @Override
    public String toString() {
        return "Field [name=" + name + ", length=" + length + ", targetNamespace=" + targetNamespace
                + ", includeEmptyValues=" + includeEmptyValues + "]";
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy