krysalis-version/src/java/org/apache/depot/version/impl/data VersionDataIncrementor.java,NONE,1.1
Nick Chalko <[email protected]> Tue, 09 Nov 2004 07:14:02 +0000
| Newsgroups | gmane.comp.krysalis.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/krysalis/krysalis-version/src/java/org/apache/depot/version/impl/data In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27011/src/java/org/apache/depot/version/impl/data Added Files: VersionDataIncrementor.java Log Message: Almost compiles! --- NEW FILE: VersionDataIncrementor.java --- /* * Copyright 2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.depot.version.impl.data; import java.util.Date; import java.util.Iterator; /** * @author [email protected] */ public class VersionDataIncrementor { private VersionDataElement m_element = null; public static final VersionDataIncrementor BUILD_NUMBER = new VersionDataIncrementor(VersionDataElement.BUILD_NUMBER); public static final VersionDataIncrementor RELEASE_LEVEL = new VersionDataIncrementor(VersionDataElement.RELEASE_LEVEL); public static final VersionDataIncrementor POINT = new VersionDataIncrementor(VersionDataElement.POINT); public static final VersionDataIncrementor MINOR = new VersionDataIncrementor(VersionDataElement.MINOR); public static final VersionDataIncrementor MAJOR = new VersionDataIncrementor(VersionDataElement.MAJOR); public VersionDataIncrementor(VersionDataElement element) { m_element = element; } // :TODO: public VersionDataIncrementor getForElement(VersionDataElement element) public VersionData increment(final VersionData initial) { VersionData inc = null; // // Current settings // int buildNumber = initial.getBuildNumber(); int releaseQualifier = initial.getReleaseQualifier(); ReleaseLevel releaseLevel = initial.getReleaseLevel(); int point = initial.getPoint(); int minor = initial.getMinor(); int major = initial.getMajor(); if (m_element == VersionDataElement.BUILD_NUMBER) buildNumber++; if (buildNumber > VersionDataElement.MAX_BUILD_NUMBER) { buildNumber = VersionDataElement.MIN_BUILD_NUMBER; releaseQualifier++; } if (m_element == VersionDataElement.RELEASE_QUALIFIER) releaseQualifier++; ReleaseLevel incLevel = releaseLevel; if (releaseQualifier > VersionDataElement.MAX_RELEASE_QUALIFIER) { releaseQualifier = VersionDataElement.MIN_RELEASE_QUALIFIER; incLevel = releaseLevel.nextLevel(); } //:TODO: Increment? Date buildDate = initial.getBuildDate(); if (m_element == VersionDataElement.RELEASE_LEVEL) incLevel = releaseLevel.nextLevel(); if (null == incLevel) { releaseLevel = VersionDataElement.MIN_RELEASE_LEVEL; point++; } if (m_element == VersionDataElement.POINT) point++; if (point > VersionDataElement.MAX_POINT) { point = VersionDataElement.MIN_POINT; minor++; } if (m_element == VersionDataElement.MINOR) minor++; if (minor > VersionDataElement.MAX_MINOR) { minor = VersionDataElement.MIN_MINOR; major++; } if (m_element == VersionDataElement.MAJOR) major++; if (major <= VersionDataElement.MAX_MAJOR) inc = new VersionData( major, minor, releaseLevel, releaseQualifier, point, buildNumber, buildDate); return inc; } /** * @see java.lang.Object#toString() */ public String toString() { return super.toString() + m_element; } public static void main(String args[]) { for (Iterator elements = VersionDataElement.ELEMENTS.iterator(); elements.hasNext(); ) { VersionDataElement element = (VersionDataElement) elements.next(); System.out.println("Incrementing Element:" + element); VersionData data1 = new VersionData(); VersionData data2 = new VersionDataIncrementor(element).increment(data1); System.out.println("Version Data1: " + data1); System.out.println("Version Data2: " + data2); } } } ------------------------------------------------------- This SF.Net email is sponsored by: Sybase ASE Linux Express Edition - download now for FREE LinuxWorld Reader's Choice Award Winner for best database on Linux. http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click