/* ******************************************************************* * Copyright (c) 2018 Contributors * 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 * ******************************************************************/ package org.aspectj.weaver; /** * Captures important runtime versions. Typically new versions are added here if something * changes in the runtime and the code generation may be able to do something different * (more optimal) for a later runtime. * * @author Andy Clement */ public enum RuntimeVersion { V1_2("1.2"), V1_5("1.5"), V1_6_10("1.6.10"), V1_9("1.9"); private String[] aliases = null; RuntimeVersion(String... aliases) { this.aliases = aliases; } public static RuntimeVersion getVersionFor(String version) { for (RuntimeVersion candidateVersion: values()) { if (candidateVersion.name().equals(version)) { return candidateVersion; } if (candidateVersion.aliases != null) { for (String alias: candidateVersion.aliases) { if (alias.equals(version)) { return candidateVersion; } } } } return null; } public boolean isThisVersionOrLater(RuntimeVersion version) { return this.compareTo(version) >= 0; } }