xsddoc/src/net/sf/xframe/xsddoc Task.java,1.21,1.22 Main.java,1.24,1.25 Processor.java,1.37,1.38

Kurt Riede <[email protected]> Fri, 22 Apr 2005 14:46:10 +0000
Newsgroups gmane.text.xml.xframe.xsddoc.devel
Message-ID <[email protected]>
Update of /cvsroot/xframe/xsddoc/src/net/sf/xframe/xsddoc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14473/src/net/sf/xframe/xsddoc

Modified Files:
	Task.java Main.java Processor.java 
Log Message:
support for new paramters -launch and -cf

Index: Task.java
===================================================================
RCS file: /cvsroot/xframe/xsddoc/src/net/sf/xframe/xsddoc/Task.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** Task.java	26 Feb 2005 14:03:38 -0000	1.21
--- Task.java	22 Apr 2005 14:46:08 -0000	1.22
***************
*** 292,304 ****
      /**
       * Adds a schema defined by a file name to a mediator schema.
       *
       * @param mediatorSchema the meditator schema
       * @param base base file to resolve relative paths
!      * @param schemaLocation the schema to add
       */
      private void addSchema(final Document mediatorSchema, final String base, final String schemaLocation) {
-         if (verbose) {
-             System.out.println("found schema " + schemaLocation);
-         }
          String namespace = null;
          namespace = getNamespace(base, schemaLocation);
--- 292,303 ----
      /**
       * Adds a schema defined by a file name to a mediator schema.
+      * If the document at the given schema location is not a schema file,
+      * the document is not added.
       *
       * @param mediatorSchema the meditator schema
       * @param base base file to resolve relative paths
!      * @param schemaLocation location of the schema to add
       */
      private void addSchema(final Document mediatorSchema, final String base, final String schemaLocation) {
          String namespace = null;
          namespace = getNamespace(base, schemaLocation);
***************
*** 309,312 ****
--- 308,314 ----
              return;
          }
+         if (verbose) {
+             System.out.println("found schema " + schemaLocation);
+         }
          final Element importNode = mediatorSchema.createElementNS(SCHEMA_NS, "import");
          final String projectDir = getProject().getBaseDir().getAbsolutePath() + File.separator;
***************
*** 317,320 ****
--- 319,323 ----
          final String schemaLoc;
          //Does the base have additional information?
+         // TODO check the following against mail from Gianluca Chiozzi
          if (base.length() > projectDir.length() && base.startsWith(projectDir)) {
              String relativePath = base.substring(projectDir.length());
***************
*** 330,337 ****
      /**
       * Extracts and returns the target namespace from a schema file.
       *
       * @param base base file name to resolve relative paths
       * @param filename file name of schema file
!      * @return target namespace of schema
       */
      private String getNamespace(final String base, final String filename) {
--- 333,343 ----
      /**
       * Extracts and returns the target namespace from a schema file.
+      * The target namespace can be the empty string if the schema has no
+      * target namespace. If the document is not a XML Schema, the returned value
+      * is <tt>null</tt>.
       *
       * @param base base file name to resolve relative paths
       * @param filename file name of schema file
!      * @return target namespace of schema or <tt>null</tt> if the document is not a schema
       */
      private String getNamespace(final String base, final String filename) {
***************
*** 339,342 ****
--- 345,351 ----
              final Document schema = getDocumentBuilder().parse(new File(base, filename));
              final Element root = schema.getDocumentElement();
+             if (!root.getLocalName().equals("schema") || !root.getNamespaceURI().equals(Task.SCHEMA_NS)) {
+                 return null;
+             }
              return root.getAttribute("targetNamespace");
          } catch (Exception e) {
***************
*** 595,598 ****
--- 604,625 ----
  
      /**
+      * Setter method for createFolder attribute.
+      *
+      * @param createFolder if out folder should be created
+      */
+     protected void setCreateFolder(final boolean createFolder) {
+         processor.setCreateFolder(createFolder);
+     }
+ 
+     /**
+      * Setter method for lauch attribute.
+      *
+      * @param launch if documentation should be launched in browser
+      */
+     protected void setLauch(final boolean launch) {
+         processor.setLaunch(launch);
+     }
+ 
+     /**
       * An HTML fragment in a nested element of the xsddoc task.
       *

Index: Processor.java
===================================================================
RCS file: /cvsroot/xframe/xsddoc/src/net/sf/xframe/xsddoc/Processor.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** Processor.java	3 Mar 2005 17:10:13 -0000	1.37
--- Processor.java	22 Apr 2005 14:46:08 -0000	1.38
***************
*** 49,52 ****
--- 49,53 ----
  
  import net.sf.xframe.ex.ExceptionUtil;
+ import net.sf.xframe.xsddoc.util.BrowserLauncher;
  import net.sf.xframe.xsddoc.util.DomUtil;
  import net.sf.xframe.xsddoc.util.FileUtil;
***************
*** 197,200 ****
--- 198,207 ----
      private boolean debug = false;
  
+     /** if generated documentation should be launched after creation. */
+     private boolean launch = false;
+ 
+     /** if output folder should be created. */
+     private boolean createFolder = false;
+ 
      /** if xml mode or not. */
      private boolean xml = false;
***************
*** 348,351 ****
--- 355,394 ----
  
      /**
+      * Getter method for createFolder property.
+      *
+      * @return if output folder should be created
+      */
+     protected boolean isCreateFolder() {
+         return createFolder;
+     }
+ 
+     /**
+      * Setter method for createFolder property.
+      *
+      * @param theCreateFolder if output folder should be created
+      */
+     protected void setCreateFolder(final boolean theCreateFolder) {
+         this.createFolder = theCreateFolder;
+     }
+ 
+     /**
+      * Getter method for launch property.
+      *
+      * @return if generated documentation should be launched after creation
+      */
+     protected boolean isLaunch() {
+         return launch;
+     }
+ 
+     /**
+      * Setter method for launch property.
+      *
+      * @param theLaunch if generated documentation should be launched after creation
+      */
+     protected void setLaunch(final boolean theLaunch) {
+         this.launch = theLaunch;
+     }
+ 
+     /**
       * Setter method for xml property.
       *
***************
*** 460,463 ****
--- 503,514 ----
          }
          final File outFile = new File(this.out);
+ 
+         if (!outFile.exists()) {
+             if (createFolder) {
+                 outFile.mkdirs();
+             } else {
+                 throw new ProcessorException("output folder doesn't exist: " + outFile);
+             }
+         }
          if (!outFile.exists()) {
              throw new ProcessorException("output folder doesn't exist: " + outFile);
***************
*** 473,476 ****
--- 524,530 ----
              }
              process();
+             if (launch) {
+                 BrowserLauncher.openURL(out + FILE_SEP + "index" + getExtension());
+             }
          } catch (Exception e) {
              throw new ProcessorException(e.getLocalizedMessage(), e);

Index: Main.java
===================================================================
RCS file: /cvsroot/xframe/xsddoc/src/net/sf/xframe/xsddoc/Main.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** Main.java	26 Feb 2005 14:03:38 -0000	1.24
--- Main.java	22 Apr 2005 14:46:08 -0000	1.25
***************
*** 44,47 ****
--- 44,49 ----
   *    -css &lt;css-file>    provide external CSS file
   *    -version              Only output version of xsddoc
+  *    -launch               Launch documentation after creation
+  *    -cf                   Create output folder if not exists
   *    -d -debug             Output debug messages
   *    -? -help              Print this help message
***************
*** 108,111 ****
--- 110,117 ----
                      } else if ("x".equals(option) || "xml".equals(option)) {
                          processor.setXml(true);
+                     } else if ("cf".equals(option)) {
+                         processor.setCreateFolder(true);
+                     } else if ("launch".equals(option)) {
+                         processor.setLaunch(true);
                      } else if ("version".equals(option)) {
                          System.out.println("xframe - xsddoc version " + VERSION);
***************
*** 161,169 ****
          System.out.println("    -g -hideGroups        hide groups in overview pages");
          System.out.println("    -a -hideAttributes    hide attributes in overview pages");
          System.out.println("    -xml                  output as XML instead of HTML");
          System.out.println("    -version              Only output version of xsddoc");
          System.out.println("    -d -debug             Output debug messages");
          System.out.println("    -? -help              Print this help message");
      }
- 
  }
--- 167,177 ----
          System.out.println("    -g -hideGroups        hide groups in overview pages");
          System.out.println("    -a -hideAttributes    hide attributes in overview pages");
+         System.out.println("    -css &lt;css-file>    provide external CSS file");
          System.out.println("    -xml                  output as XML instead of HTML");
+         System.out.println("    -launch               Launch documentation after creation");
+         System.out.println("    -cf                   Create output folder if not exists");
          System.out.println("    -version              Only output version of xsddoc");
          System.out.println("    -d -debug             Output debug messages");
          System.out.println("    -? -help              Print this help message");
      }
  }



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click