View Javadoc

1   /***
2    * Redistribution and use of this software and associated documentation
3    * ("Software"), with or without modification, are permitted provided
4    * that the following conditions are met:
5    *
6    * 1. Redistributions of source code must retain copyright
7    *    statements and notices.  Redistributions must also contain a
8    *    copy of this document.
9    *
10   * 2. Redistributions in binary form must reproduce the
11   *    above copyright notice, this list of conditions and the
12   *    following disclaimer in the documentation and/or other
13   *    materials provided with the distribution.
14   *
15   * 3. The name "Exolab" must not be used to endorse or promote
16   *    products derived from this Software without prior written
17   *    permission of Exoffice Technologies.  For written permission,
18   *    please contact info@exolab.org.
19   *
20   * 4. Products derived from this Software may not be called "Exolab"
21   *    nor may "Exolab" appear in their names without prior written
22   *    permission of Exoffice Technologies. Exolab is a registered
23   *    trademark of Exoffice Technologies.
24   *
25   * 5. Due credit should be given to the Exolab Project
26   *    (http://www.exolab.org/).
27   *
28   * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
29   * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30   * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
32   * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39   * OF THE POSSIBILITY OF SUCH DAMAGE.
40   *
41   * Copyright 2005 (C) Exoffice Technologies Inc. All Rights Reserved.
42   *
43   * $Id: VersionInfo.java,v 1.1 2005/10/20 14:07:03 tanderson Exp $
44   */
45  package org.exolab.jms.tools.migration.proxy;
46  
47  import org.exolab.jms.persistence.PersistenceException;
48  import org.exolab.jms.tools.migration.proxy.PropertyStore;
49  
50  
51  /***
52   * Migration version information.
53   *
54   * @author <a href="mailto:tma@netspace.net.au">Tim Anderson</a>
55   * @version $Revision: 1.1 $ $Date: 2005/10/20 14:07:03 $
56   */
57  public class VersionInfo {
58  
59      /***
60       * The property store.
61       */
62      private final PropertyStore _properties;
63  
64      /***
65       * OpenJMS version property.
66       */
67      private final String OPENJMS_VERSION = "openjmsVersion";
68  
69      /***
70       * Proxy database schema version property.
71       */
72      private final String PROXY_SCHEMA_VERSION = "proxySchemaVersion";
73  
74      /***
75       * Proxy database creation timestamp.
76       */
77      private final String CREATION_TIMESTAMP = "creationTimestamp";
78  
79  
80      /***
81       * Construct a new <code>VersionInfo</code>.
82       *
83       * @param properties the property store to access
84       */
85      public VersionInfo(PropertyStore properties) {
86          _properties = properties;
87      }
88  
89      /***
90       * Sets the OpenJMS version that the proxy database was created with.
91       *
92       * @param version the version
93       * @throws PersistenceException for any persistence error
94       */
95      public void setOpenJMSVersion(String version) throws PersistenceException {
96          _properties.add(OPENJMS_VERSION, version);
97      }
98  
99      /***
100      * Returns the OpenJMS version that the proxy database was created with.
101      *
102      * @return the OpenJMS version
103      * @throws PersistenceException for any persistence error
104      */
105     public String getOpenJMSVersion() throws PersistenceException {
106         return _properties.get(OPENJMS_VERSION);
107     }
108 
109     /***
110      * Sets the proxy schema version.
111      *
112      * @param version the version
113      * @throws PersistenceException for any persistence error
114      */
115     public void setProxySchemaVersion(String version)
116             throws PersistenceException {
117         _properties.add(PROXY_SCHEMA_VERSION, version);
118     }
119 
120     /***
121      * Returns the proxy schema version.
122      *
123      * @return the proxy schema version.
124      * @throws PersistenceException for any persistence error
125      */
126     public String getProxySchemaVersion() throws PersistenceException {
127         return _properties.get(PROXY_SCHEMA_VERSION);
128     }
129 
130     /***
131      * Sets the timestamp when the proxy database was created.
132      *
133      * @param timestamp the timestamp, in milliseconds
134      * @throws PersistenceException for any persistence error
135      */
136     public void setCreationTimestamp(long timestamp)
137             throws PersistenceException {
138         _properties.add(CREATION_TIMESTAMP, Long.toString(timestamp));
139     }
140 
141     /***
142      * Returns the timestamp when the proxy database was created.
143      *
144      * @return the proxy database creation timestamp
145      * @throws PersistenceException for any persistence error
146      */
147     public long getCreationTimestamp() throws PersistenceException {
148         String value = _properties.get(CREATION_TIMESTAMP);
149         return Long.valueOf(value).longValue();
150     }
151 }