![JAR search and dependency download from the Maven repository](/logo.png)
org.kohsuke.rngom.parse.host.SchemaBuilderHost Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rngom Show documentation
Show all versions of rngom Show documentation
RNGOM is an open-source Java library for parsing RELAX NG grammars.
The newest version!
package org.kohsuke.rngom.parse.host;
import org.kohsuke.rngom.ast.builder.Annotations;
import org.kohsuke.rngom.ast.builder.BuildException;
import org.kohsuke.rngom.ast.builder.CommentList;
import org.kohsuke.rngom.ast.builder.DataPatternBuilder;
import org.kohsuke.rngom.ast.builder.ElementAnnotationBuilder;
import org.kohsuke.rngom.ast.builder.Grammar;
import org.kohsuke.rngom.ast.builder.NameClassBuilder;
import org.kohsuke.rngom.ast.builder.SchemaBuilder;
import org.kohsuke.rngom.ast.builder.Scope;
import org.kohsuke.rngom.ast.om.Location;
import org.kohsuke.rngom.ast.om.ParsedElementAnnotation;
import org.kohsuke.rngom.ast.om.ParsedNameClass;
import org.kohsuke.rngom.ast.om.ParsedPattern;
import org.kohsuke.rngom.parse.Context;
import org.kohsuke.rngom.parse.IllegalSchemaException;
import org.kohsuke.rngom.parse.Parseable;
import java.util.List;
import java.util.ArrayList;
/**
*
* @author
* Kohsuke Kawaguchi ([email protected])
*/
public class SchemaBuilderHost extends Base implements SchemaBuilder {
final SchemaBuilder lhs;
final SchemaBuilder rhs;
public SchemaBuilderHost( SchemaBuilder lhs, SchemaBuilder rhs ) {
this.lhs = lhs;
this.rhs = rhs;
}
public ParsedPattern annotate(ParsedPattern _p, Annotations _anno)
throws BuildException {
ParsedPatternHost p = (ParsedPatternHost) _p;
AnnotationsHost a = cast(_anno);
return new ParsedPatternHost(
lhs.annotate(p.lhs, a.lhs),
rhs.annotate(p.lhs, a.lhs) );
}
public ParsedPattern annotateAfter(ParsedPattern _p,
ParsedElementAnnotation _e) throws BuildException {
ParsedPatternHost p = (ParsedPatternHost) _p;
ParsedElementAnnotationHost e = (ParsedElementAnnotationHost) _e;
return new ParsedPatternHost(
lhs.annotateAfter(p.lhs, e.lhs),
rhs.annotateAfter(p.rhs, e.rhs));
}
public ParsedPattern commentAfter(ParsedPattern _p, CommentList _comments)
throws BuildException {
ParsedPatternHost p = (ParsedPatternHost) _p;
CommentListHost comments = (CommentListHost) _comments;
return new ParsedPatternHost(
lhs.commentAfter(p.lhs, comments==null?null:comments.lhs),
rhs.commentAfter(p.rhs, comments==null?null:comments.rhs));
}
public ParsedPattern expandPattern(ParsedPattern _p) throws BuildException, IllegalSchemaException {
ParsedPatternHost p = (ParsedPatternHost) _p;
return new ParsedPatternHost(
lhs.expandPattern(p.lhs),
rhs.expandPattern(p.rhs));
}
public NameClassBuilder getNameClassBuilder() throws BuildException {
return new NameClassBuilderHost( lhs.getNameClassBuilder(), rhs.getNameClassBuilder() );
}
public Annotations makeAnnotations(CommentList _comments, Context context) {
CommentListHost comments = (CommentListHost) _comments;
Annotations l = lhs.makeAnnotations((comments!=null)?comments.lhs:null, context);
Annotations r = rhs.makeAnnotations((comments!=null)?comments.rhs:null, context);
if(l==null || r==null)
throw new IllegalArgumentException("annotations cannot be null");
return new AnnotationsHost(l,r);
}
public ParsedPattern makeAttribute(ParsedNameClass _nc, ParsedPattern _p,
Location _loc, Annotations _anno) throws BuildException {
ParsedNameClassHost nc = (ParsedNameClassHost) _nc;
ParsedPatternHost p = (ParsedPatternHost) _p;
LocationHost loc = cast(_loc);
AnnotationsHost anno = cast(_anno);
return new ParsedPatternHost(
lhs.makeAttribute(nc.lhs, p.lhs, loc.lhs, anno.lhs),
rhs.makeAttribute(nc.rhs, p.rhs, loc.rhs, anno.rhs));
}
public ParsedPattern makeChoice(List patterns,
Location _loc, Annotations _anno) throws BuildException {
List lp = new ArrayList();
List rp = new ArrayList();
for( int i=0; i lp = new ArrayList();
List rp = new ArrayList();
for( int i=0; i lp = new ArrayList();
List rp = new ArrayList();
for( int i=0; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy