com.thaiopensource.relaxng.pattern.PossibleNamesFunction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of wicketstuff-jing Show documentation
Show all versions of wicketstuff-jing Show documentation
Jing is a validator for RELAX NG and other schema languages. This
project was taken from http://code.google.com/p/jing-trang and
mavenized for inclusion in the Wicket Stuff HTML Validator.
The code was taken from the 20091111 release.
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;
}
}