KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jnlp > sample > util > VersionString


1 /*
2  * @(#)VersionString.java 1.6 05/11/17
3  *
4  * Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * -Redistribution of source code must retain the above copyright notice, this
10  * list of conditions and the following disclaimer.
11  *
12  * -Redistribution in binary form must reproduce the above copyright notice,
13  * this list of conditions and the following disclaimer in the documentation
14  * and/or other materials provided with the distribution.
15  *
16  * Neither the name of Sun Microsystems, Inc. or the names of contributors may
17  * be used to endorse or promote products derived from this software without
18  * specific prior written permission.
19  *
20  * This software is provided "AS IS," without a warranty of any kind. ALL
21  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
22  * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
23  * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN")
24  * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
25  * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
26  * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
27  * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
28  * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY
29  * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
30  * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
31  *
32  * You acknowledge that this software is not designed, licensed or intended
33  * for use in the design, construction, operation or maintenance of any
34  * nuclear facility.
35  */

36
37 package jnlp.sample.util;
38 import java.util.ArrayList JavaDoc;
39 import java.util.StringTokenizer JavaDoc;
40
41 /*
42  * Utility class that knows to handle version strings
43  * A version string is of the form:
44  *
45  * (version-id ('+'?) ' ') *
46  *
47  */

48 public class VersionString {
49     private ArrayList JavaDoc _versionIds;
50     
51     /** Constructs a VersionString object from string */
52     public VersionString(String JavaDoc vs) {
53     _versionIds = new ArrayList JavaDoc();
54     if (vs != null) {
55         StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(vs, " ", false);
56         while(st.hasMoreElements()) {
57         // Note: The VersionID class takes care of a postfixed '+'
58
_versionIds.add(new VersionID(st.nextToken()));
59         }
60     }
61     }
62     
63     /** Check if this VersionString object contains the VersionID m */
64     public boolean contains(VersionID m) {
65     for(int i = 0; i < _versionIds.size(); i++) {
66         VersionID vi = (VersionID)_versionIds.get(i);
67         boolean check = vi.match(m);
68         if (check) return true;
69     }
70     return false;
71     }
72        
73     /** Check if this VersionString object contains the VersionID m, given as a string */
74     public boolean contains(String JavaDoc versionid) {
75     return contains(new VersionID(versionid));
76     }
77     
78     /** Check if this VersionString object contains anything greater than m */
79     public boolean containsGreaterThan(VersionID m) {
80         for(int i = 0; i < _versionIds.size(); i++) {
81             VersionID vi = (VersionID)_versionIds.get(i);
82             boolean check = vi.isGreaterThan(m);
83             if (check) return true;
84         }
85         return false;
86     }
87   
88     /** Check if this VersionString object contains anything greater than the VersionID m, given as a string */
89     public boolean containsGreaterThan(String JavaDoc versionid) {
90     return containsGreaterThan(new VersionID(versionid));
91     }
92     
93     /** Check if the versionString 'vs' contains the VersionID 'vi' */
94     static public boolean contains(String JavaDoc vs, String JavaDoc vi) {
95     return (new VersionString(vs)).contains(vi);
96     }
97
98     /** Pretty-print object */
99     public String JavaDoc toString() {
100     StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
101     for(int i = 0; i < _versionIds.size(); i++) {
102         sb.append(_versionIds.get(i).toString());
103         sb.append(' ');
104     }
105     return sb.toString();
106     }
107 }
108
109
110
111
Popular Tags