jaxp/src/com/sun/org/apache/xalan/internal/Version.java
changeset 12457 c348e06f0e82
parent 12005 a754d69d5e60
equal deleted inserted replaced
12324:1d7e6da6adc8 12457:c348e06f0e82
       
     1 /*
       
     2  * reserved comment block
       
     3  * DO NOT REMOVE OR ALTER!
       
     4  */
       
     5 /*
       
     6  * Copyright 2003-2004 The Apache Software Foundation.
       
     7  *
       
     8  * Licensed under the Apache License, Version 2.0 (the "License");
       
     9  * you may not use this file except in compliance with the License.
       
    10  * You may obtain a copy of the License at
       
    11  *
       
    12  *     http://www.apache.org/licenses/LICENSE-2.0
       
    13  *
       
    14  * Unless required by applicable law or agreed to in writing, software
       
    15  * distributed under the License is distributed on an "AS IS" BASIS,
       
    16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       
    17  * See the License for the specific language governing permissions and
       
    18  * limitations under the License.
       
    19  */
       
    20 /*
       
    21  * $Id: Version.java,v 1.1.2.1 2005/08/01 02:11:19 jeffsuttor Exp $
       
    22  */
       
    23 package com.sun.org.apache.xalan.internal;
       
    24 
       
    25 /**
       
    26  * Administrative class to keep track of the version number of
       
    27  * the Xalan release.
       
    28  * <P>This class implements the upcoming standard of having
       
    29  * org.apache.project-name.Version.getVersion() be a standard way
       
    30  * to get version information.  This class will replace the older
       
    31  * com.sun.org.apache.xalan.internal.processor.Version class.</P>
       
    32  * <P>See also: com/sun/org/apache/xalan/internal/res/XSLTInfo.properties for
       
    33  * information about the version of the XSLT spec we support.</P>
       
    34  * @xsl.usage general
       
    35  */
       
    36 public class Version
       
    37 {
       
    38 
       
    39   /**
       
    40    * Get the basic version string for the current Xalan release.
       
    41    * Version String formatted like
       
    42    * <CODE>"<B>Xalan</B> <B>Java</B> v.r[.dd| <B>D</B>nn]"</CODE>.
       
    43    *
       
    44    * Futurework: have this read version info from jar manifest.
       
    45    *
       
    46    * @return String denoting our current version
       
    47    */
       
    48   public static String getVersion()
       
    49   {
       
    50      return getProduct()+" "+getImplementationLanguage()+" "
       
    51            +getMajorVersionNum()+"."+getReleaseVersionNum()+"."
       
    52            +( (getDevelopmentVersionNum() > 0) ?
       
    53                ("D"+getDevelopmentVersionNum()) : (""+getMaintenanceVersionNum()));
       
    54   }
       
    55 
       
    56   /**
       
    57    * Print the processor version to the command line.
       
    58    *
       
    59    * @param argv command line arguments, unused.
       
    60    */
       
    61   public static void _main(String argv[])
       
    62   {
       
    63     System.out.println(getVersion());
       
    64   }
       
    65 
       
    66   /**
       
    67    * Name of product: Xalan.
       
    68    */
       
    69   public static String getProduct()
       
    70   {
       
    71     return "Xalan";
       
    72   }
       
    73 
       
    74   /**
       
    75    * Implementation Language: Java.
       
    76    */
       
    77   public static String getImplementationLanguage()
       
    78   {
       
    79     return "Java";
       
    80   }
       
    81 
       
    82 
       
    83   /**
       
    84    * Major version number.
       
    85    * Version number. This changes only when there is a
       
    86    *          significant, externally apparent enhancement from
       
    87    *          the previous release. 'n' represents the n'th
       
    88    *          version.
       
    89    *
       
    90    *          Clients should carefully consider the implications
       
    91    *          of new versions as external interfaces and behaviour
       
    92    *          may have changed.
       
    93    */
       
    94   public static int getMajorVersionNum()
       
    95   {
       
    96     return 2;
       
    97 
       
    98   }
       
    99 
       
   100   /**
       
   101    * Release Number.
       
   102    * Release number. This changes when:
       
   103    *            -  a new set of functionality is to be added, eg,
       
   104    *               implementation of a new W3C specification.
       
   105    *            -  API or behaviour change.
       
   106    *            -  its designated as a reference release.
       
   107    */
       
   108   public static int getReleaseVersionNum()
       
   109   {
       
   110     return 7;
       
   111   }
       
   112 
       
   113   /**
       
   114    * Maintenance Drop Number.
       
   115    * Optional identifier used to designate maintenance
       
   116    *          drop applied to a specific release and contains
       
   117    *          fixes for defects reported. It maintains compatibility
       
   118    *          with the release and contains no API changes.
       
   119    *          When missing, it designates the final and complete
       
   120    *          development drop for a release.
       
   121    */
       
   122   public static int getMaintenanceVersionNum()
       
   123   {
       
   124     return 0;
       
   125   }
       
   126 
       
   127   /**
       
   128    * Development Drop Number.
       
   129    * Optional identifier designates development drop of
       
   130    *          a specific release. D01 is the first development drop
       
   131    *          of a new release.
       
   132    *
       
   133    *          Development drops are works in progress towards a
       
   134    *          compeleted, final release. A specific development drop
       
   135    *          may not completely implement all aspects of a new
       
   136    *          feature, which may take several development drops to
       
   137    *          complete. At the point of the final drop for the
       
   138    *          release, the D suffix will be omitted.
       
   139    *
       
   140    *          Each 'D' drops can contain functional enhancements as
       
   141    *          well as defect fixes. 'D' drops may not be as stable as
       
   142    *          the final releases.
       
   143    */
       
   144   public static int getDevelopmentVersionNum()
       
   145   {
       
   146     try {
       
   147         if ((new String("")).length() == 0)
       
   148           return 0;
       
   149         else
       
   150           return Integer.parseInt("");
       
   151     } catch (NumberFormatException nfe) {
       
   152            return 0;
       
   153     }
       
   154   }
       
   155 }