/******************************************************************************* * Copyright (c) 2007 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.seam.core.project.facet; import org.eclipse.osgi.util.NLS; import org.jboss.tools.seam.core.SeamUtil; /** * Seam Versions enumeration * * @author eskimo */ public enum SeamVersion { /** * Seam versions 1.2.X */ SEAM_1_2("1.2"), /** * Seam versions 2.0.X */ SEAM_2_0("2.0"), //$NON-NLS-1$ //$NON-NLS-2$ /** * Seam versions 2.1.X */ SEAM_2_1("2.1"), //$NON-NLS-1$ /** * Seam versions 2.2.X */ SEAM_2_2("2.2"), //$NON-NLS-1$ /** * Seam versions 2.3.X */ SEAM_2_3("2.3"); //$NON-NLS-1$ String version = ""; //$NON-NLS-1$ SeamVersion(String version) { this.version = version; } /** * Return string representation of version * * @return * version number as string */ public String toString() { return version; } public static SeamVersion[] ALL_VERSIONS = new SeamVersion[]{SEAM_1_2, SEAM_2_0, SEAM_2_1, SEAM_2_2, SEAM_2_3}; /** * Get enumeration by string * TODO support for compatible version? should 1.2.1 return SEAM_1_2? * * @param version * string representation of version * @return * version enumeration corresponding to version string */ public static SeamVersion parseFromString(String version) { if (SEAM_1_2.toString().equals(version)) { return SEAM_1_2; } else if (SEAM_2_0.toString().equals(version)) { return SEAM_2_0; } else if (SEAM_2_1.toString().equals(version)) { return SEAM_2_1; } else if (SEAM_2_2.toString().equals(version)) { return SEAM_2_2; } else if (SEAM_2_3.toString().equals(version)) { return SEAM_2_3; } throw new IllegalArgumentException(NLS.bind( "Seam version ''{0}'' is not supported", version)); //$NON-NLS-1$ //$NON-NLS-2$ } public static SeamVersion getLatestDefaultVersion() { return SEAM_2_2; } /** * Get enumeration by string * If can't find any version then return null. * * @param version * string representation of version * @return * version enumeration corresponding to version string */ public static SeamVersion findByString(String version) { if (SEAM_1_2.toString().equals(version)) { return SEAM_1_2; } else if (SEAM_2_0.toString().equals(version)) { return SEAM_2_0; } else if (SEAM_2_1.toString().equals(version)) { return SEAM_2_1; } else if (SEAM_2_2.toString().equals(version)) { return SEAM_2_2; } else if (SEAM_2_3.toString().equals(version)) { return SEAM_2_3; } return null; } /** * Find matching version * @param vs * @return */ public static SeamVersion findMatchingVersion(String vs) { if(vs == null) { return null; } if(SeamUtil.areSeamVersionsMatched(SeamVersion.SEAM_1_2.toString(), vs)) { return SeamVersion.SEAM_1_2; } if(SeamUtil.areSeamVersionsMatched(SeamVersion.SEAM_2_0.toString(), vs)) { return SeamVersion.SEAM_2_0; } if(SeamUtil.areSeamVersionsMatched(SeamVersion.SEAM_2_1.toString(), vs)) { return SeamVersion.SEAM_2_1; } if(SeamUtil.areSeamVersionsMatched(SeamVersion.SEAM_2_2.toString(), vs)) { return SeamVersion.SEAM_2_2; } if(SeamUtil.areSeamVersionsMatched(SeamVersion.SEAM_2_3.toString(), vs)) { return SeamVersion.SEAM_2_3; } return null; } }