blob: c7528f11a98209cd689239f3885f39e08b2e6e6b [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2007 IBM Corporation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.common.service.versioning;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.osgi.framework.Version;
/**
* This class stores all of the version information for the known EPF versions.
*
* @author Jeff Hardy
* @since 1.0
*/
public class EPFVersions {
public static final String TOOL_ID = "epf"; //$NON-NLS-1$
// the name space URI string for the TOOL_ID
private static String nsUri = "http://www.eclipse.org/epf"; //$NON-NLS-1$
// EPF 1.0
private static EPFVersion EPF_10 = new EPFVersion("1.0", //$NON-NLS-1$ tool version
"1.0.3.0", //$NON-NLS-1$ library version
"1.0.0"); //$NON-NLS-1$ xml schema version
// EPF 1.1 - This is EPF 1.2 Iteration 1
private static EPFVersion EPF_11 = new EPFVersion("1.1", //$NON-NLS-1$ tool version
"1.0.4.0", //$NON-NLS-1$ library version
"1.0.0"); //$NON-NLS-1$ xml schema version
// EPF 1.2 release
private static EPFVersion EPF_12 = new EPFVersion("1.2", //$NON-NLS-1$ tool version
"1.0.4.1", //$NON-NLS-1$ library version
"1.0.1"); //$NON-NLS-1$ xml schema version
// EPF 1.5 release
private static EPFVersion EPF_15 = new EPFVersion("1.5", //$NON-NLS-1$ tool version
"1.0.5.0", //$NON-NLS-1$ library version
"1.0.2"); //$NON-NLS-1$ xml schema version
// EPF 1.5 release
private static EPFVersion EPF_151 = new EPFVersion("1.5.1", //$NON-NLS-1$ tool version
"1.0.6.0", //$NON-NLS-1$ library version
"1.0.2"); //$NON-NLS-1$ xml schema version
private static EPFVersion currentVersion = EPF_151;
public EPFVersion getCurrentVersion() {
return currentVersion;
}
public EPFVersion getVersion(String toolVersion) {
if (toolVersion != null) {
for (Iterator iter = getAllVersions().iterator(); iter.hasNext();) {
EPFVersion ver = (EPFVersion) iter.next();
if (ver.getToolVersion().equals(new Version(toolVersion))) {
return ver;
}
}
}
return null;
}
public Collection getAllVersions() {
List<EPFVersion> versions = new ArrayList<EPFVersion>();
versions.add(EPF_10);
versions.add(EPF_11);
versions.add(EPF_12);
versions.add(EPF_15);
versions.add(EPF_151);
return versions;
}
/**
*
* @param libraryVersion
* @return the minimum tool version that uses the specified library version
*/
public EPFVersion getMinToolVersionForLibraryVersion(Version libraryVersion) {
for (Iterator iter = getAllVersions().iterator(); iter.hasNext();) {
EPFVersion versionInfo = (EPFVersion) iter.next();
if (versionInfo.getLibraryVersion().compareTo(libraryVersion) == 0) {
return versionInfo;
}
}
return null;
}
/**
*
* @return the minimum tool version that uses the current library version
*/
public EPFVersion getMinToolVersionForCurrentLibraryVersion() {
Version libraryVersion = getCurrentVersion().getLibraryVersion();
return getMinToolVersionForLibraryVersion(libraryVersion);
}
/**
*
* @param xmlSchemaVersion
* @return the minimum tool version that uses the specified XML Schema
* version
*/
public EPFVersion getMinToolVersionForXMLSchemaVersion(
Version xmlSchemaVersion) {
for (Iterator iter = getAllVersions().iterator(); iter.hasNext();) {
EPFVersion versionInfo = (EPFVersion) iter.next();
if (versionInfo.getXMLSchemaVersion().compareTo(xmlSchemaVersion) == 0) {
return versionInfo;
}
}
return null;
}
/**
*
* @return the minimum tool version that uses the current XML Schema version
*/
public EPFVersion getMinToolVersionForCurrentXMLSchemaVersion() {
Version xmlSchemaVersion = getCurrentVersion().getXMLSchemaVersion();
return getMinToolVersionForXMLSchemaVersion(xmlSchemaVersion);
}
/**
*
* @return the name space URI string for the TOOL_ID
*/
public String getNsURI() {
return nsUri;
}
}