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

de.undercouch.citeproc.csl.internal.locale.LDate Maven / Gradle / Ivy

package de.undercouch.citeproc.csl.internal.locale;

import de.undercouch.citeproc.csl.internal.rendering.SDatePart;
import de.undercouch.citeproc.helper.NodeHelper;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import java.util.ArrayList;
import java.util.List;

/**
 * A localized date format
 * @author Michel Kraemer
 */
public class LDate {
    private final String form;
    private final String delimiter;
    private final List dateParts = new ArrayList<>();

    /**
     * Construct the date format from an XML node
     * @param node the XML node
     */
    public LDate(Node node) {
        this.form = NodeHelper.getAttrValue(node, "form");
        this.delimiter = NodeHelper.getAttrValue(node, "delimiter");

        NodeList children = node.getChildNodes();
        for (int j = 0; j < children.getLength(); ++j) {
            Node c = children.item(j);
            if ("date-part".equals(c.getNodeName())) {
                dateParts.add(new SDatePart(c));
            }
        }
    }

    /**
     * Get the date form (text or numerical)
     * @return the form
     */
    public String getForm() {
        return form;
    }

    /**
     * An optional delimiter for the elements returned by {@link #getDateParts()}
     * @return a delimiter or {@code null} if no delimiter should be used
     */
    public String getDelimiter() {
        return delimiter;
    }

    /**
     * Get the date-part elements to render
     * @return the elements
     */
    public List getDateParts() {
        return dateParts;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy