}
private ArgumentBuilder buildArgs( StringToStringMap values, boolean isWindows, Interface modelItem )
throws IOException
{
ArgumentBuilder builder = new ArgumentBuilder( values );
builder.startScript( "wscompile" );
values.put( OUTPUT, Tools.ensureDir( values.get( OUTPUT ), "" ) );
values.put( SOURCE, Tools.ensureDir( values.get( SOURCE ), values.get( OUTPUT ) ) );
values.put( NONCLASS, Tools.ensureDir( values.get( NONCLASS ), values.get( OUTPUT ) ) );
values.put( MAPPING, Tools.ensureFileDir( values.get( MAPPING ), values.get( OUTPUT ) ) );
values.put( MODEL, Tools.ensureFileDir( values.get( MODEL ), values.get( OUTPUT ) ) );
builder.addString( OUTPUT, "-d" );
builder.addBoolean( KEEP, "-keep" );
builder.addString( MAPPING, "-mapping" );
builder.addString( MODEL, "-model" );
builder.addString( SOURCE, "-s" );
builder.addString( NONCLASS, "-nd" );
builder.addBoolean( OPTIMIZE, "-O" );
builder.addBoolean( DEBUG, "-g" );
builder.addString( SOURCE_VERSION, "-source" );
builder.addString( SECURITY, "-security" );
builder.addString( PROXY, "httpproxy", ":" );
builder.addBoolean( DATAHANDLERONLY, "-f:datahandleronly" );
builder.addBoolean( DONOTUNWRAP, "-f:donotunwrap" );
builder.addBoolean( EXPLICITCONTEXT, "-f:explicitcontext" );
builder.addBoolean( JAXBENUMTYPE, "-f:jaxbenumtype" );
builder.addBoolean( NODATABINDING, "-f:nodatabinding" );
builder.addBoolean( NOENCODEDTYPES, "-f:noencodedtypes" );
builder.addBoolean( NOMULTIREFS, "-f:nomultirefs" );
builder.addBoolean( NORPCSTRUCTURES, "-f:norpcstructures" );
builder.addBoolean( NOVALIDATION, "-f:novalidation" );
builder.addBoolean( RESOLVEIDREF, "-f:resolveidref" );
builder.addBoolean( SEARCHSCHEMA, "-f:searchschema" );
builder.addBoolean( SERIALIZEINTERFACES, "-f:serializeinterfaces" );
builder.addBoolean( STRICT, "-f:strict" );
builder.addBoolean( UNWRAP, "-f:unwrap" );
builder.addBoolean( WSI, "-f:wsi" );
builder.addArgs( "-import" );
builder.addArgs( "-verbose" );
addToolArgs( values, builder );
builder.addArgs( buildConfigFile( values, modelItem ) );
return builder;
}