![JAR search and dependency download from the Maven repository](/logo.png)
io.legaldocml.akn.element.ExprProperties Maven / Gradle / Ivy
package io.legaldocml.akn.element;
import io.legaldocml.akn.util.AknList;
import io.legaldocml.akn.visitor.AknVisitor;
import io.legaldocml.io.XmlReader;
import io.legaldocml.io.XmlWriter;
import java.io.IOException;
import static io.legaldocml.akn.AknElements.FRBR_AUTHORITATIVE;
import static io.legaldocml.akn.AknElements.FRBR_LANGUAGE;
import static io.legaldocml.akn.AknElements.FRBR_MASTER_EXPRESSION;
import static io.legaldocml.akn.AknElements.FRBR_TRANSLATION;
import static io.legaldocml.akn.AknElements.FRBR_VERSION_NUMBER;
/**
* The group exprProperties lists the properties that are characteristics of the FRBR Expression level.
*
*
*
*
*
*
*
*
*
*
*
*
*
* @author Jacques Militello
*/
public abstract class ExprProperties extends CoreProperties {
// Optional
private FRBRversionNumber versionNumber;
// Optional
private FRBRauthoritative authoritative;
// Optional
private FRBRmasterExpression masterExpression;
// Mandatory
private final AknList languages = new AknList<>(new FRBRlanguage[2]);
// Optional
private AknList translations;
public final void add(FRBRlanguage language) {
this.languages.add(language);
}
public final AknList getLanguages() {
return this.languages;
}
public final void add(FRBRtranslation translation) {
if (this.translations == null) {
this.translations = new AknList<>(new FRBRtranslation[4]);
}
this.translations.add(translation);
}
/**
* {@inheritDoc}
*/
@Override
public void write(XmlWriter writer) throws IOException {
super.write(writer);
if (this.versionNumber != null) {
this.versionNumber.write(writer);
}
if (this.authoritative != null) {
this.authoritative.write(writer);
}
if (this.masterExpression != null) {
this.masterExpression.write(writer);
}
this.languages.write(writer);
if (this.translations != null) {
this.translations.write(writer);
}
}
/**
* {@inheritDoc}
*/
@Override
public void read(XmlReader reader) {
super.read(reader);
if (reader.getQName().equalsLocalName(FRBR_VERSION_NUMBER)) {
this.versionNumber = new FRBRversionNumber();
this.versionNumber.read(reader);
reader.nextStartOrEndElement();
}
if (reader.getQName().equalsLocalName(FRBR_AUTHORITATIVE)) {
this.authoritative = new FRBRauthoritative();
this.authoritative.read(reader);
reader.nextStartOrEndElement();
}
if (reader.getQName().equalsLocalName(FRBR_MASTER_EXPRESSION)) {
this.masterExpression = new FRBRmasterExpression();
this.masterExpression.read(reader);
reader.nextStartOrEndElement();
}
if (reader.getQName().equalsLocalName(FRBR_LANGUAGE)) {
FRBRlanguage language;
do {
language = new FRBRlanguage();
language.read(reader);
this.languages.add(language);
reader.nextStartOrEndElement();
} while (reader.getQName().equalsLocalName(FRBR_LANGUAGE));
}
if (reader.getQName().equalsLocalName(FRBR_TRANSLATION)) {
FRBRtranslation translation;
this.translations = new AknList<>(new FRBRtranslation[4]);
do {
translation = new FRBRtranslation();
translation.read(reader);
this.translations.add(translation);
reader.nextStartOrEndElement();
} while (reader.getQName().equalsLocalName(FRBR_TRANSLATION));
}
}
/**
* {@inheritDoc}
*/
@Override
public void accept(AknVisitor visitor) {
super.accept(visitor);
if (this.versionNumber != null) {
this.versionNumber.accept(visitor);
}
if (this.authoritative != null) {
this.authoritative.accept(visitor);
}
if (this.masterExpression != null) {
this.masterExpression.accept(visitor);
}
this.languages.accept(visitor);
if (this.translations != null) {
this.translations.accept(visitor);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy