blob: ed7d0260100ee586949cbbe3ed37df21d4eaae15 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 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.serviceability;
import org.osgi.framework.Version;
/**
* This class represents a single version of EPF Composer.
* It contains all the versions of the sub-components of EPF.
*
* @author Jeff Hardy
* @sicne 1.0
*/
public class EPFVersion {
// the tool version
protected Version toolVersion;
// the library version
protected Version libraryVersion;
// the schema version
protected Version xmlSchemaVersion;
public EPFVersion() {
this.toolVersion = Version.emptyVersion;
this.libraryVersion = Version.emptyVersion;
this.xmlSchemaVersion = Version.emptyVersion;
};
public EPFVersion(String toolVersion, String libraryVersion, String xmlSchemaVersion) {
this.toolVersion = new Version(toolVersion);
this.libraryVersion = new Version(libraryVersion);
this.xmlSchemaVersion = new Version(xmlSchemaVersion);
}
/**
* @return the tool version
*/
public Version getToolVersion() {
return toolVersion;
}
/**
* @return the library version
*/
public Version getLibraryVersion() {
return libraryVersion;
}
/**
* @return the XML schema version
*/
public Version getXMLSchemaVersion() {
return xmlSchemaVersion;
}
/**
* Compares the given tool version to this one
*
* @see org.osgi.framework.Version#compareTo()
*
* @param schemaVersion The schema version to be compared.
* @return A negative integer if this tool version is less than the given one<br />
* Zero if the this tool version is the same as the given one<br />
* A positive integer if this tool version is greater than the given one<br />
*
*/
public int compareToolVersionTo(Version toolVersion) {
if (!VersionUtil.isVersionCheckingDisabled())
return getToolVersion().compareTo(toolVersion);
else
return 0;
}
/**
* Compares the given library version to this one
*
* @see org.osgi.framework.Version#compareTo()
*
* @param schemaVersion The schema version to be compared.
* @return A negative integer if this library version is less than the given one<br />
* Zero if the this library version is the same as the given one<br />
* A positive integer if this library version is greater than the given one<br />
*
*/
public int compareLibraryVersionTo(Version libraryVersion) {
if (!VersionUtil.isVersionCheckingDisabled())
return getLibraryVersion().compareTo(libraryVersion);
else
return 0;
}
/**
* Compares the given XML Schema version to this one
*
* @see org.osgi.framework.Version#compareTo()
*
* @param schemaVersion The schema version to be compared.
* @return A negative integer if this XML Schema version is less than the given one<br />
* Zero if the this XML Schema version is the same as the given one<br />
* A positive integer if this XML Schema version is greater than the given one<br />
*
*/
public int compareXMLSchemaVersionTo(Version XMLSchemaVersion) {
if (!VersionUtil.isVersionCheckingDisabled())
return getXMLSchemaVersion().compareTo(XMLSchemaVersion);
else
return 0;
}
public String toString() {
return getToolVersion().toString() + "," + //$NON-NLS-1$
getLibraryVersion().toString() + "," + //$NON-NLS-1$
getXMLSchemaVersion().toString();
}
public boolean equals(Object object) {
if (object == this) { // quicktest
return true;
}
if (!(object instanceof EPFVersion)) {
return false;
}
EPFVersion other = (EPFVersion) object;
return (getToolVersion().equals(other.getToolVersion())) && (getLibraryVersion().equals(other.getLibraryVersion()))
&& (getXMLSchemaVersion().equals(other.getXMLSchemaVersion()));
}
}