
com.thaiopensource.relaxng.pattern.PossibleNamesFunction Maven / Gradle / Ivy
package com.thaiopensource.relaxng.pattern;
import com.thaiopensource.util.VoidValue;
/**
* Common base class for PossibleAttributeNamesFunction and PossibleStartTagNamesFunction.
* @see PossibleAttributeNamesFunction
* @see PossibleStartTagNamesFunction
*/
abstract class PossibleNamesFunction extends AbstractPatternFunction {
private final UnionNameClassNormalizer normalizer = new UnionNameClassNormalizer();
NormalizedNameClass applyTo(Pattern p) {
normalizer.setNameClass(new NullNameClass());
p.apply(this);
return normalizer.normalize();
}
void add(NameClass nc) {
normalizer.add(nc);
}
public VoidValue caseAfter(AfterPattern p) {
return p.getOperand1().apply(this);
}
public VoidValue caseBinary(BinaryPattern p) {
p.getOperand1().apply(this);
p.getOperand2().apply(this);
return VoidValue.VOID;
}
public VoidValue caseChoice(ChoicePattern p) {
return caseBinary(p);
}
public VoidValue caseInterleave(InterleavePattern p) {
return caseBinary(p);
}
public VoidValue caseOneOrMore(OneOrMorePattern p) {
return p.getOperand().apply(this);
}
public VoidValue caseOther(Pattern p) {
return VoidValue.VOID;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy