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

com.lyncode.xoai.dataprovider.xml.xoaiconfig.ConditionConfiguration Maven / Gradle / Ivy

package com.lyncode.xoai.dataprovider.xml.xoaiconfig;

import com.lyncode.xoai.dataprovider.exceptions.WritingXmlException;
import com.lyncode.xoai.dataprovider.xml.XMLWritable;
import com.lyncode.xoai.dataprovider.xml.XmlOutputContext;
import com.lyncode.xoai.dataprovider.xml.xoaiconfig.parameters.RootParameterMap;

import javax.xml.stream.XMLStreamException;

public class ConditionConfiguration implements Referable, XMLWritable {
    private String clazz;
    private RootParameterMap configuration;
    private String id;

    public ConditionConfiguration(String id) {
        this.id = id;
    }

    @Override
    public String getId() {
        return id;
    }

    @Override
    public void write(XmlOutputContext writer) throws WritingXmlException {
        if (clazz == null) throw new WritingXmlException("Filter class field is mandatory");
        try {
            writer.getWriter().writeStartElement("CustomCondition");
            writer.getWriter().writeAttribute("id", id);

            writer.getWriter().writeStartElement("Class");
            writer.getWriter().writeCharacters(clazz);
            writer.getWriter().writeEndElement();

            if (hasConfiguration()) {
                writer.getWriter().writeStartElement("Configuration");
                configuration.write(writer);
                writer.getWriter().writeEndElement();
            }

            writer.getWriter().writeEndElement();
        } catch (XMLStreamException e) {
            throw new WritingXmlException(e);
        }


    }

    public boolean hasConfiguration() {
        return configuration != null;
    }

    public RootParameterMap getConfiguration() {
        return configuration;
    }

    public ConditionConfiguration withConfiguration(RootParameterMap configuration) {
        this.configuration = configuration;
        return this;
    }

    public String getClazz() {
        return clazz;
    }

    public ConditionConfiguration withClazz(String clazz) {
        this.clazz = clazz;
        return this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy