1 5 package org.enhydra.ant.taskdefs; 6 7 import java.io.File ; 8 import java.util.ArrayList ; 9 10 import org.apache.tools.ant.BuildException; 11 import org.apache.tools.ant.types.EnumeratedAttribute; 12 13 30 public class DODS_DOClassFinder extends org.apache.tools.ant.Task { 31 protected File domlFile = null; 32 public static class BooleanAttribute extends EnumeratedAttribute { 33 34 37 public String [] getValues() { 38 return (new String [] {"yes", "no", "true", "false" }); 39 } 40 41 public BooleanAttribute() {} 42 } 43 public DODS_DOClassFinder() { 44 domlFile = null; 45 } 46 47 51 public void execute() throws org.apache.tools.ant.BuildException { 52 53 if (domlFile == null) { 54 throw new BuildException("doml attribute must be set!"); 55 } 56 boolean regen = true; 57 if (regen) { 58 (this).project.log("Regenerating ClassList files from " + domlFile 59 + "... "); 60 } else { 61 (this).project.log(String.valueOf(((java.lang.Object ) (domlFile))) 62 + " up to date.", 63 2); 64 } 65 if (regen) { 66 67 java.util.ArrayList argsList = new ArrayList (); 68 69 argsList.add("ClassList"); 70 try { 71 String dodsClassName = "org.enhydra.dods.trans.TransientXMLBuilderFactory"; 72 java.lang.reflect.Method m = null; 73 java.lang.Class c = null; 74 75 try { 76 c = java.lang.Class.forName(dodsClassName); 77 m = c.getMethod("main", new java.lang.Class [] { 78 String [].class 79 }); 80 } catch (java.lang.Exception e) { 81 ((java.lang.Throwable ) (e)).printStackTrace(); 82 throw new BuildException(((java.lang.Throwable ) (e))); 83 } 84 String args[] = (String []) argsList.toArray(((java.lang.Object []) ( 85 new String [argsList.size()]))); 86 87 if (m != null) { 88 m.invoke(((java.lang.Object ) (null)), 89 new java.lang.Object [] { 90 args 91 }); 92 } 93 } catch (java.lang.reflect.InvocationTargetException ite) { 94 ite.printStackTrace(); 95 throw new BuildException(((java.lang.Throwable ) (ite))); 96 } catch (java.lang.Exception e) { 97 ((java.lang.Throwable ) (e)).printStackTrace(); 98 throw new BuildException(((java.lang.Throwable ) (e))); 99 } 100 } 101 } 102 103 107 public void setDoml(File domlFile) { 108 this.domlFile = domlFile; 109 } 110 111 112 113 114 } 115 | Popular Tags |