All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.thaiopensource.relaxng.pattern.PossibleNamesFunction Maven / Gradle / Ivy

Go to download

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.

There is a newer version: 1.11
Show newest version
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 - 2024 Weber Informatics LLC | Privacy Policy