com.thaiopensource.relaxng.pattern.DataExceptPattern Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jing Show documentation
Show all versions of jing Show documentation
Jing - tool for validating RelaxNG - (OSGi-compatible version)
package com.thaiopensource.relaxng.pattern;
import com.thaiopensource.xml.util.Name;
import org.relaxng.datatype.Datatype;
import org.xml.sax.Locator;
import java.util.List;
class DataExceptPattern extends DataPattern {
private final Pattern except;
private final Locator loc;
DataExceptPattern(Datatype dt, Name dtName, List params, Pattern except, Locator loc) {
super(dt, dtName, params);
this.except = except;
this.loc = loc;
}
boolean samePattern(Pattern other) {
if (!super.samePattern(other))
return false;
return except.samePattern(((DataExceptPattern)other).except);
}
T apply(PatternFunction f) {
return f.caseDataExcept(this);
}
void checkRestrictions(int context, DuplicateAttributeDetector dad, Alphabet alpha)
throws RestrictionViolationException {
super.checkRestrictions(context, dad, alpha);
try {
except.checkRestrictions(DATA_EXCEPT_CONTEXT, null, null);
}
catch (RestrictionViolationException e) {
e.maybeSetLocator(loc);
throw e;
}
}
Pattern getExcept() {
return except;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy