![JAR search and dependency download from the Maven repository](/logo.png)
io.legaldocml.akn.element.JudicialArguments Maven / Gradle / Ivy
package io.legaldocml.akn.element;
import com.google.common.collect.ImmutableMap;
import io.legaldocml.akn.AknObject;
import io.legaldocml.akn.util.AknList;
import io.legaldocml.akn.util.XmlReaderHelper;
import io.legaldocml.io.QName;
import io.legaldocml.io.XmlReader;
import io.legaldocml.io.XmlWriter;
import java.io.IOException;
import java.util.function.Supplier;
import static io.legaldocml.akn.AknElements.APPLIES;
import static io.legaldocml.akn.AknElements.CONTRASTS;
import static io.legaldocml.akn.AknElements.DEROGATES;
import static io.legaldocml.akn.AknElements.DISSENTS_FROM;
import static io.legaldocml.akn.AknElements.DISTINGUISHES;
import static io.legaldocml.akn.AknElements.EXTENDS;
import static io.legaldocml.akn.AknElements.IS_ANALOG_TO;
import static io.legaldocml.akn.AknElements.OVER_RULES;
import static io.legaldocml.akn.AknElements.PUTS_IN_QUESTION;
import static io.legaldocml.akn.AknElements.RESTRICTS;
import static io.legaldocml.akn.AknElements.RESULT;
import static io.legaldocml.akn.AknElements.SUPPORTS;
/**
* The complex type judicialArguments is a list of all the judicial analysis elements that can be used on the analysis
* of a judgment.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* @author Jacques Militello
*/
public abstract class JudicialArguments implements AknObject {
private static final ImmutableMap> ELEMS;
static {
ELEMS = ImmutableMap.>builder()
.put(SUPPORTS, Supports::new)
.put(IS_ANALOG_TO, IsAnalogTo::new)
.put(APPLIES, Applies::new)
.put(EXTENDS, Extends::new)
.put(RESTRICTS, Restricts::new)
.put(DEROGATES, Derogates::new)
.put(CONTRASTS, Contrasts::new)
.put(OVER_RULES, Overrules::new)
.put(DISSENTS_FROM, DissentsFrom::new)
.put(PUTS_IN_QUESTION, PutsInQuestion::new)
.put(DISTINGUISHES, Distinguishes::new)
.build();
}
private Result result;
private final AknList elems = new AknList<>(new JudicialArgumentsElement[2]);
/**
* {@inheritDoc}
*/
@Override
public void write(XmlWriter writer) throws IOException {
if (this.result != null) {
this.result.write(writer);
}
this.elems.write(writer);
}
/**
* {@inheritDoc}
*/
@Override
public void read(XmlReader reader) {
final QName parent = reader.getQName();
reader.nextStartOrEndElement();
if (reader.getQName().equalsLocalName(RESULT)) {
this.result = new Result();
this.result.read(reader);
reader.nextStartOrEndElement();
}
XmlReaderHelper.read(reader, this.elems, ELEMS, parent);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy