1 19 20 import java.io.File ; 21 import java.io.FileInputStream ; 22 import java.util.Iterator ; 23 import java.util.List ; 24 25 import org.enhydra.zeus.Binder; 27 import org.enhydra.zeus.Binding; 28 import org.enhydra.zeus.Generator; 29 import org.enhydra.zeus.Result; 30 import org.enhydra.zeus.Transformer; 31 import org.enhydra.zeus.binder.DTDBinder; 32 import org.enhydra.zeus.binding.Container; 33 import org.enhydra.zeus.binding.Property; 34 import org.enhydra.zeus.generator.SimpleGenerator; 35 import org.enhydra.zeus.result.StreamResult; 36 import org.enhydra.zeus.source.DTDSource; 37 import org.enhydra.zeus.source.StreamDTDSource; 38 import org.enhydra.zeus.transform.DefaultsTransformer; 39 import org.enhydra.zeus.util.Arguments; 40 41 public class TestDTDBinder { 42 43 public static void main(String [] args) { 44 Arguments theArguments = new Arguments(args); 45 46 if (!theArguments.hasValue("file")) { 48 System.out.println( 49 "Usage: java samples.TestDTDBinder -file=<file name> " + 50 "[-package=<package>] [-quiet=true/false] " + 51 "[-generateAsSerializable=true/false]"); 52 return; 53 } 54 55 try { 56 boolean isQuiet = false; 58 if (theArguments.hasValue("quiet")) { 59 isQuiet = theArguments.getValue("quiet") 60 .trim() 61 .equalsIgnoreCase("true"); 62 } 63 64 String javaPackage; 66 if (theArguments.hasValue("package")) { 67 javaPackage = theArguments.getValue("package"); 68 } else { 69 70 javaPackage = ""; 72 } 73 if (!isQuiet) { 74 System.out.println("+ Set Java package to '" + javaPackage + "'"); 75 } 76 77 File dtd = new File (theArguments.getValue("file")); 79 DTDSource source = new StreamDTDSource(new FileInputStream (dtd)); 80 if (!isQuiet) { 81 System.out.println("+ Reading DTD from '" + dtd.getAbsolutePath() + "'"); 82 } 83 84 Binder dtdBinder = new DTDBinder(source); 86 List bindings = dtdBinder.getBindings(); 87 if (!isQuiet) { 88 System.out.println("+ Loaded bindings using the DTDBinder"); 89 } 90 91 Transformer transformer = new DefaultsTransformer(); 93 transformer.getTransformerOptions().setDefaultPackage(javaPackage); 94 List transformedBindings = transformer.transform(bindings); 95 if (!isQuiet) { 96 System.out.println("+ Transformed the bindings using the DefaultsTransformer"); 97 } 98 99 if (!isQuiet) { 101 for (Iterator i = transformedBindings.iterator(); i.hasNext();) { 102 Binding binding = (Binding) i.next(); 103 System.out.println("+ --> Binding Type: " + binding.getClass().getName()); 104 System.out.println("+ --> Binding Name: " + binding.getJavaName()); 105 System.out.println("+ --> Properties"); 106 107 try { 108 Container container = (Container)binding; 109 List properties = container.getProperties(); 110 if (properties.size() > 0) { 111 for (Iterator j = properties.iterator(); j.hasNext();) { 112 Property property = (Property) j.next(); 113 System.out.println("+ -----> Property Name: " + 114 property.getJavaName()); 115 System.out.println("+ -----> Property Type: " + 116 property.getJavaType()); 117 } 118 } else { 119 System.out.println(" (None)"); 120 } 121 } catch (ClassCastException e) { 122 System.out.println("+ -----> (None)"); 123 } 124 System.out.println("+"); 125 } 126 } 127 128 Generator generator = new SimpleGenerator(); 130 generator.setOutputDirectory(new File ("output")); 131 if (!isQuiet) { 132 System.out.println("+ Set Output Directory to '" + 133 new File ("output").getAbsolutePath() + "'"); 134 } 135 136 137 String generateAsSerializable = 138 (String )theArguments.getValue("generateAsSerializable"); 139 if ((generateAsSerializable != null) && 140 (generateAsSerializable.equalsIgnoreCase("true"))) { 141 142 } 144 145 146 for (Iterator i = transformedBindings.iterator(); i.hasNext();) { 147 Binding binding = (Binding) i.next(); 148 generator.generate(binding); 149 } 150 151 } catch (Exception e) { 152 e.printStackTrace(); 153 } 154 } 155 } 156 | Popular Tags |