You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by pb...@apache.org on 2002/05/30 19:54:29 UTC

cvs commit: xml-fop/src/org/apache/fop/apps Version.java

pbwest      02/05/30 10:54:29

  Modified:    src/org/apache/fop/apps Tag: FOP_0-20-0_Alt-Design
                        Version.java
  Log:
  Converted Version.java to Name keyword handling.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.16.4.1  +112 -4    xml-fop/src/org/apache/fop/apps/Version.java
  
  Index: Version.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/Version.java,v
  retrieving revision 1.16
  retrieving revision 1.16.4.1
  diff -u -r1.16 -r1.16.4.1
  --- Version.java	30 Jul 2001 20:29:18 -0000	1.16
  +++ Version.java	30 May 2002 17:54:29 -0000	1.16.4.1
  @@ -1,5 +1,5 @@
   /*
  - * $Id: Version.java,v 1.16 2001/07/30 20:29:18 tore Exp $
  + * $Id: Version.java,v 1.16.4.1 2002/05/30 17:54:29 pbwest Exp $
    * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
    * For details on use and redistribution please refer to the
    * LICENSE file included with these sources."
  @@ -7,20 +7,128 @@
   
   package org.apache.fop.apps;
   
  -import org.apache.fop.configuration.Configuration;
  +import java.lang.Character;
  +import java.util.StringTokenizer;
   
   /**
    * class representing the version of FOP.
    */
   public class Version {
   
  +    private static final String tag = "$Name:  $";
  +    private static final String revision = "$Revision: 1.16.4.1 $";
  +    private static final int tagPrefixLen = new String("$Name: ").length();
  +    private static final int revPrefixLen = new String("$Revision: ").length();
  +    private static final String unassigned = "FOP Developers Build";
  +    private static final int NONE = 0;
  +    private static final int DIGIT = 1;
  +    private static final int DIGITDASH = 2;
  +    private static final int DIGITDASHDASH = 3;
  +    
       /**
  -     * get the version of FOP
  +     * get the build version of FOP
  +     *
  +     * <p>Assumes that the CVS tag in the <em>Name</em> keyword is the tag
  +     * under which the source code for the build was checked out from
  +     * CVS.
  +     * <p>Conforms to the following conventions, assuming that the Name
  +     * keyword can only contain alphanumerics, hyphens and underlines.<br>
  +     * `_' Underline is always replaced by a space.<br>
  +     * `-' Hyphen is unchanged, <em>except</em> that<br>
  +     * a single hyphen occurring between digits is replaced by a dot `.'<br>
  +     * a pair of hyphens occurring between digits is replaced by a single
  +     * hyphen `-'.<br>
  +     * All other characters are unchanged.
        *
        * @return the version string
        */
       public static String getVersion() {
  -        return Configuration.getStringValue("version");
  +        String name = getName();
  +        if (name.equals("")) return unassigned;
  +        StringTokenizer strtok = new StringTokenizer(name, "_-", true);
  +        // return delimiters as tokens
  +        StringBuffer buf = new StringBuffer(name.length());
  +        int state = NONE;
  +        while (strtok.hasMoreTokens()) {
  +            String tok = strtok.nextToken();
  +            System.out.println(tok);
  +            char firstchar = tok.charAt(0);
  +            switch (firstchar) {
  +            case '-':
  +                switch (state) {
  +                case DIGIT:
  +                    state = DIGITDASH;
  +                    break;
  +                    
  +                case DIGITDASH:
  +                    state = DIGITDASHDASH;
  +                    break;
  +
  +                case DIGITDASHDASH:
  +                    buf.append("--");
  +                    
  +                default:  // DIGITDASHDASH falls through here
  +                    buf.append('-');
  +                    state = NONE;
  +                    break;
  +                } // end of switch (state)
  +                
  +                break;
  +
  +            case '_':
  +                tok = " ";  // Change underscore to space unconditionally
  +                // Fall through to default processing
  +
  +            default:
  +                switch (state) {
  +                case DIGITDASHDASH:
  +                    if (Character.isDigit(firstchar)) {
  +                        buf.append('-');
  +                        break;
  +                    }
  +                    buf.append("--");
  +                    break;
  +                    
  +                case DIGITDASH:
  +                    if (Character.isDigit(firstchar)) {
  +                        buf.append('.');
  +                        break;
  +                    }
  +                    buf.append('-');
  +                    break;
  +
  +                } // end of switch (state)
  +                
  +                buf.append(tok);  // Append the (non-dash) token
  +                //  Check the last character of the (non-dash) token
  +                if (Character.isDigit(tok.charAt(tok.length() - 1))) {
  +                    state = DIGIT;
  +                } else {
  +                    state = NONE;
  +                }
  +                
  +            } // end of switch (firstchar)
  +            
  +        }
  +        return buf.toString();
  +    }
  +
  +    /**
  +     * @return String containing the data contents of the Revision keyword
  +     */
  +    public static String getRevision() {
  +        if (revision.equals("$Revision" + "$")) return "";
  +        // 2 is the length of the suffix - " $"
  +        return revision.substring(revPrefixLen, revision.length() - 2);
  +    }
  +
  +    /**
  +     * @return String containing the data contents of the Name keyword
  +     */
  +    public static String getName() {
  +        if (tag.equals("$Name" + "$")) return "";
  +        // 2 is the length of the suffix - " $"
  +        return tag.substring(tagPrefixLen, tag.length() - 2);
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org