/******************************************************************************* * Copyright (c) 2013 VMware, Inc. * 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: * VMware, Inc. - initial API and implementation *******************************************************************************/ package org.springframework.ide.eclipse.wizard.template; import java.util.ArrayList; import java.util.List; /** * Represents a released Spring version. A Default value also exists which * indicates that the default spring version as defined in a template should be * used. * */ public class SpringVersion { private final String fullVersion; private final String display; public static final SpringVersion DEFAULT = new SpringVersion("Default"); public SpringVersion(String display) { this.display = display; this.fullVersion = display + ".RELEASE"; } public String getDisplay() { return display; } public String getVersion() { return fullVersion; } /** * Returns RELEASE versions of Spring only. * @return */ public static List<SpringVersion> getVersions() { List<SpringVersion> versions = new ArrayList<SpringVersion>(); // FIXNS: Hardcoded for now. Externalise, or find a way to read // supported // release versions. Right now only showing the latest releases of each // major release // E.g., for 3.1 -> 3.1.4, for 3.2 -> 3.2.3 versions.add(DEFAULT); versions.add(new SpringVersion("3.2.3")); versions.add(new SpringVersion("3.1.4")); versions.add(new SpringVersion("3.0.7")); return versions; } public static SpringVersion resolveSpringVersion(String springVersion) { if (springVersion == null) { return null; } List<SpringVersion> existingVersions = getVersions(); springVersion = springVersion.trim(); for (SpringVersion version : existingVersions) { if (version.getVersion().equals(springVersion)) { return version; } } return null; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((display == null) ? 0 : display.hashCode()); result = prime * result + ((fullVersion == null) ? 0 : fullVersion.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } SpringVersion other = (SpringVersion) obj; if (display == null) { if (other.display != null) { return false; } } else if (!display.equals(other.display)) { return false; } if (fullVersion == null) { if (other.fullVersion != null) { return false; } } else if (!fullVersion.equals(other.fullVersion)) { return false; } return true; } }