package org.kohsuke.bali.writer; import java.io.IOException; import org.kohsuke.bali.datatype.DatatypeImpl; import org.kohsuke.bali.datatype.Value; import org.relaxng.datatype.Datatype; import org.relaxng.datatype.DatatypeException; import runtime.Schema; import runtime.ValidateletImpl; /** * Creates an instance of Schema object in the * current Java VM. * * @author Kohsuke Kawaguchi (kk@kohsuke.org) */ public class Interpreter extends StringBasedEncoder { protected void write( String encNameCodes, int defaultNameCode, String encStates, String encATr, String encDTr, String encETr, String encITr, String encLTr, String encNTr, String encVTr, DatatypeImpl[] datatypes, Value[] values) throws IOException { Datatype[] realDatatypes = new Datatype[datatypes.length]; for( int i=0; i<datatypes.length; i++ ) realDatatypes[i] = datatypes[i].realDatatype; Object[] valueParams = new Object[values.length*2]; for( int i=0; i<values.length; i++ ) { valueParams[i*2+0] = values[i].value; valueParams[i*2+1] = values[i].context.getQueriedNamespaces(); } schema = new Schema( encNameCodes, defaultNameCode, encStates, encATr, encDTr, encETr, encITr, encLTr, encNTr, encVTr, realDatatypes, valueParams ); } private Schema schema; /** * Creates a new instance of Validatelet. */ public ValidateletImpl createValidatelet() { return new ValidateletImpl(schema); } protected String escape(String str) { return Util.toJavaString(str); } }