- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 22 Sep 2009 12:36:11 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn
In directory hutz:/tmp/cvs-serv19830/src/org/w3c/unicorn
Added Files:
UnicornClient.java
Log Message:
moved from tests package
--- NEW FILE: UnicornClient.java ---
package org.w3c.unicorn;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.LinkedHashMap;
import java.util.Map;
import org.w3c.unicorn.Framework;
import org.w3c.unicorn.UnicornCall;
import org.w3c.unicorn.input.DirectInputParameter;
import org.w3c.unicorn.input.URIInputParameter;
import org.w3c.unicorn.output.OutputFactory;
import org.w3c.unicorn.output.OutputFormater;
import org.w3c.unicorn.output.OutputModule;
public class UnicornClient {
/**
* Prints help contents on the standard output.
*
*/
public static void print_help() {
System.out
.println("[Usage] UnicornClient task inputType=[mimetype=]pageToValid templateLanguage outputTemplate [otherParameters]");
System.out.println("");
System.out
.println("* tasks = one of task in tasklist.xml (eg: markup, css...)");
System.out.println("* inputType : uri|file");
System.out
.println("* mimetype : text/html|text/css|... (required only if inputType='file')");
System.out
.println("* pageToValid : an uri or a path to a file (depend on inputType)");
System.out.println("* otherParameters : param1=val1,param2=val2...");
System.out.println("");
System.out
.println("[Example] UnicornClient markup uri=http://w3.org en xhtml10");
System.out
.println("[Example] UnicornClient calculator uri=http://flyingman.sophia.w3.org/test en text10 x2=on,ptoto=titi");
System.out
.println("[Example] UnicornClient css file=text/css=./style/base.css fr text10 profile=css2,usermedium=screen,warning=2,lang=en");
}
/**
* Tests Unicorn client.
*
* @param args
*/
public static void main(String[] args) {
if (args.length == 0) {
print_help();
} else if (args.length == 1 && args[0].equals("help")) {
print_help();
} else {
// read parameters
String task = args[0];
String pageToValid = args[1];
String language = args[2];
String outputTemplate = args[3];
String pParams = "";
if (args.length > 4) { // this argument is optional
pParams = args[4];
}
Framework.init();
if (!Framework.isUcnInitialized) {
System.err.println(">> Unicorn is not properly initialized.");
return;
}
UnicornCall aUnicornCall = new UnicornCall();
// parse other parameters: "x2=on,toto=titi" to a
// map<String,String[]>
if (pParams.length() != 0) {
Map<String, String[]> mapOfParameter = new LinkedHashMap<String, String[]>();
String[] couples = pParams.split(",");
for (int i = 0; i < couples.length; i++) {
String[] couple = couples[i].split("=");
if (couple.length == 2) {
String[] tmp = { couple[1] };
mapOfParameter.put(couple[0], tmp);
} else {
System.err.println("Error parameter!");
}
}
aUnicornCall.setMapOfStringParameter(mapOfParameter);
}
// parse input type: "uri=http://flyingman.sophia.w3.org/test" or
// "file=text/css=./style/base.css"
String[] pInput = pageToValid.split("=");
if (pInput[0].equals("uri")) {
//aUnicornCall.setEnumInputMethod(EnumInputMethod.URI);
//aUnicornCall.setDocumentName(pInput[1]);
aUnicornCall.setInputParameter(new URIInputParameter(pInput[1]));
} else { // direct input
try {
//aUnicornCall.setEnumInputMethod(EnumInputMethod.DIRECT);
// read content in the file pInput[2], example:
// pInput[2]=base.css alors content=".h1{color:#FA0012}";
BufferedReader bfr = new BufferedReader(new FileReader(pInput[2]));
String content = "";
String line;
while ((line = bfr.readLine()) != null) {
content = content + line + "\n";
}
bfr.close();
// Ajouter mime type dans map of parameter
// TODO check if this is necessary (mime-type is added to DirectInputParameter object)
/*Map<String, String[]> mapOfParameter = aUnicornCall
.getMapOfStringParameter();
if (mapOfParameter == null) {
mapOfParameter = new LinkedHashMap<String, String[]>();
aUnicornCall.setMapOfStringParameter(mapOfParameter);
}
String[] tmp = { pInput[1] };
mapOfParameter.put(Property.get("UNICORN_PARAMETER_PREFIX")
+ "mime", tmp);*/
//aUnicornCall.setInputParameterValue(content);
aUnicornCall.setInputParameter(new DirectInputParameter(content, pInput[1]));
} catch (IOException e) {
e.printStackTrace();
}
}
aUnicornCall.setTask(task); // task id
aUnicornCall.setLang(language);
long before = System.currentTimeMillis();
try {
aUnicornCall.doTask();
Map<String, Object> mapOfStringObject = new LinkedHashMap<String, Object>();
mapOfStringObject.put("unicorncall", aUnicornCall);
OutputFormater aOutputFormater = OutputFactory
.createOutputFormater(outputTemplate, // text or xhtml10,
// see
// unicorn.properties
language, "text/html"); // MIME Type
OutputModule aOutputModule = OutputFactory
.createOutputModule("simple");
PrintWriter pw = new PrintWriter(System.out);
aOutputModule.produceOutput(aOutputFormater, mapOfStringObject,
null, pw);
pw.flush();
} catch (Exception e) {
e.printStackTrace();
}
long after = System.currentTimeMillis();
System.out.println("Elapsed time (s): " + (double) (after - before)
/ 1000);
}
}
}
Received on Tuesday, 22 September 2009 12:36:20 UTC