package org.geotools.maven.xmlcodegen.templates;
import org.geotools.maven.xmlcodegen.*;
import java.util.*;
import org.apache.xml.serialize.*;
import org.eclipse.xsd.*;
import java.io.*;
import org.geotools.xml.*;
public class BindingTestClass
{
protected static String nl;
public static synchronized BindingTestClass create(String lineSeparator)
{
nl = lineSeparator;
BindingTestClass result = new BindingTestClass();
nl = null;
return result;
}
public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
protected final String TEXT_1 = NL + "import org.geotools.xml.Binding;" + NL + "" + NL + "/**" + NL + " * Binding test case for ";
protected final String TEXT_2 = ":";
protected final String TEXT_3 = "." + NL + " *" + NL + " * <p>" + NL + " * <pre>" + NL + " * <code>";
protected final String TEXT_4 = NL + " * ";
protected final String TEXT_5 = " " + NL + " * " + NL + " * </code>" + NL + " * </pre>" + NL + " * </p>" + NL + " *" + NL + " * @generated" + NL + " */";
protected final String TEXT_6 = NL + "public class ";
protected final String TEXT_7 = " extends ";
protected final String TEXT_8 = " {" + NL + "" + NL + " public void testType() {" + NL + " assertEquals( Object.class, binding( ";
protected final String TEXT_9 = ".";
protected final String TEXT_10 = " ).getType() );" + NL + " }" + NL + " " + NL + " public void testExecutionMode() {" + NL + " assertEquals( Binding.OVERRIDE, binding( ";
protected final String TEXT_11 = ".";
protected final String TEXT_12 = " ).getExecutionMode() );" + NL + " }" + NL + " " + NL + " public void testParse() throws Exception {" + NL + " " + NL + " }" + NL + " " + NL + " public void testEncode() throws Exception {" + NL + " " + NL + " }" + NL + "}";
public String generate(Object argument)
{
final StringBuffer stringBuffer = new StringBuffer();
Object[] arguments = (Object[]) argument;
XSDNamedComponent named = (XSDNamedComponent)arguments[0];
XSDSchema schema = named.getSchema();
XSDTypeDefinition type = null;
String ns = schema.getTargetNamespace();
String prefix = Schemas.getTargetPrefix( schema );
stringBuffer.append(TEXT_1);
stringBuffer.append(named.getTargetNamespace());
stringBuffer.append(TEXT_2);
stringBuffer.append(named.getName());
stringBuffer.append(TEXT_3);
OutputFormat output = new OutputFormat();
output.setOmitXMLDeclaration(true);
output.setIndenting(true);
StringWriter writer = new StringWriter();
XMLSerializer serializer = new XMLSerializer(writer,output);
try {
serializer.serialize(named.getElement());
}
catch (IOException e) {
e.printStackTrace();
return null;
}
String[] lines = writer.getBuffer().toString().split("\n");
for (int i = 0; i < lines.length; i++) {
stringBuffer.append(TEXT_4);
stringBuffer.append(lines[i].replaceAll("<","<").replaceAll(">",">"));
}
stringBuffer.append(TEXT_5);
String className = named.getName().substring(0,1).toUpperCase() +
named.getName().substring(1) + "BindingTest";
String baseClassName = prefix.toUpperCase() + "TestSupport";
stringBuffer.append(TEXT_6);
stringBuffer.append(className);
stringBuffer.append(TEXT_7);
stringBuffer.append(baseClassName);
stringBuffer.append(TEXT_8);
stringBuffer.append(prefix.toUpperCase());
stringBuffer.append(TEXT_9);
stringBuffer.append(named.getName());
stringBuffer.append(TEXT_10);
stringBuffer.append(prefix.toUpperCase());
stringBuffer.append(TEXT_11);
stringBuffer.append(named.getName());
stringBuffer.append(TEXT_12);
return stringBuffer.toString();
}
}