Update of /cvsroot/xdoclet/xdoclet/core/src/xdoclet/tagshandler
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27017/core/src/xdoclet/tagshandler

Modified Files:
        PackageTagsHandler.java 
Log Message:
support for unqualifed classes added (XDT-688)

Index: PackageTagsHandler.java
===================================================================
RCS file: 
/cvsroot/xdoclet/xdoclet/core/src/xdoclet/tagshandler/PackageTagsHandler.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** PackageTagsHandler.java     1 Sep 2004 22:43:50 -0000       1.14
--- PackageTagsHandler.java     26 Mar 2005 10:25:32 -0000      1.15
***************
*** 220,230 ****
      public void packageOf(String template) throws XDocletException
      {
!         try {
!             String fullClassName = getEngine().outputOf(template);
  
!             getEngine().print(getPackageNameFor(fullClassName.substring(0, 
fullClassName.lastIndexOf('.')), true));
!         }
!         catch (TemplateException ex) {
!             throw new XDocletException(ex, 
Translator.getString(XDocletMessages.class, XDocletMessages.METHOD_FAILED, new 
String[]{"packageOf"}));
          }
      }
--- 220,240 ----
      public void packageOf(String template) throws XDocletException
      {
!         getEngine().print(getPackageNameFrom(template));
!     }
  
!     /**
!      * Writes the package declaration for the package name of the 
full-qualified class name specified in the body 
!      * of this tag. No package declaration is written if the full-qualified 
class name has no package.
!      *
!      * @param template              The body of the block tag
!      * @exception XDocletException  Description of Exception
!      * @doc.tag                     type="block"
!      */
!     public void packageDeclarationOf(String template) throws XDocletException
!     {
!         String packageName = getPackageNameFrom(template);
! 
!         if (packageName != null && packageName.length() > 0) {
!             getEngine().print("package " + packageName + ";");
          }
      }
***************
*** 281,284 ****
--- 291,321 ----
      }
  
+    /**
+     * Returns the package name for the full-qualified class name specified in 
the body 
+     * of the passed tag.
+     *
+     * @param template              The body of the block tag
+     * @return the package name or an empty string if the full-qualified class 
name has no package
+     * @exception XDocletException  Description of Exception
+     */
+     private String getPackageNameFrom(String template) throws XDocletException
+     {
+         try {
+             String fullClassName = getEngine().outputOf(template);
+             int pos = fullClassName.lastIndexOf('.');
+ 
+             if (pos < 0) {
+                 return "";
+             }
+             else {
+                 return getPackageNameFor(fullClassName.substring(0, pos), 
true);
+             }
+         }
+         catch (TemplateException ex) {
+             throw new XDocletException(ex, 
Translator.getString(XDocletMessages.class, XDocletMessages.METHOD_FAILED, new 
String[]{"packageOf"}));
+         }
+ 
+     }
+ 
      /**
       * It's good practice to put interfaces (such as remote/local interfaces, 
data objects and home interfaces) in a



-------------------------------------------------------
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
_______________________________________________
xdoclet-devel mailing list
xdoclet-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to