001 /*
002 * $Id: JVM.java,v 1.2 2005/10/10 18:03:00 rbair Exp $
003 *
004 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
005 * Santa Clara, California 95054, U.S.A. All rights reserved.
006 *
007 * This library is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * This library is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * You should have received a copy of the GNU Lesser General Public
018 * License along with this library; if not, write to the Free Software
019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
020 */
021 package org.jdesktop.swingx.util;
022
023 /**
024 * Deals with the different version of the Java Virtual Machine. <br>
025 */
026 public class JVM {
027
028 public final static int JDK1_0 = 10;
029 public final static int JDK1_1 = 11;
030 public final static int JDK1_2 = 12;
031 public final static int JDK1_3 = 13;
032 public final static int JDK1_4 = 14;
033 public final static int JDK1_5 = 15;
034 public final static int JDK1_6 = 16;
035
036 private static JVM current;
037 static {
038 current = new JVM();
039 }
040
041 /**
042 * @return the current JVM object
043 */
044 public static JVM current() {
045 return current;
046 }
047
048 private int jdkVersion;
049
050 /**
051 * Creates a new JVM data from the <code>java.version</code>
052 * System property
053 *
054 */
055 public JVM() {
056 this(System.getProperty("java.version"));
057 }
058
059 /**
060 * Constructor for the OS object
061 */
062 public JVM(String p_JavaVersion) {
063 if (p_JavaVersion.startsWith("1.6.")) {
064 jdkVersion = JDK1_6;
065 } else if (p_JavaVersion.startsWith("1.5.")) {
066 jdkVersion = JDK1_5;
067 } else if (p_JavaVersion.startsWith("1.4.")) {
068 jdkVersion = JDK1_4;
069 } else if (p_JavaVersion.startsWith("1.3.")) {
070 jdkVersion = JDK1_3;
071 } else if (p_JavaVersion.startsWith("1.2.")) {
072 jdkVersion = JDK1_2;
073 } else if (p_JavaVersion.startsWith("1.1.")) {
074 jdkVersion = JDK1_1;
075 } else if (p_JavaVersion.startsWith("1.0.")) {
076 jdkVersion = JDK1_0;
077 } else {
078 // unknown version, assume 1.3
079 jdkVersion = JDK1_3;
080 }
081 }
082
083 public boolean isOrLater(int p_Version) {
084 return jdkVersion >= p_Version;
085 }
086
087 public boolean isOneDotOne() {
088 return jdkVersion == JDK1_1;
089 }
090
091 public boolean isOneDotTwo() {
092 return jdkVersion == JDK1_2;
093 }
094
095 public boolean isOneDotThree() {
096 return jdkVersion == JDK1_3;
097 }
098
099 public boolean isOneDotFour() {
100 return jdkVersion == JDK1_4;
101 }
102
103 public boolean isOneDotFive() {
104 return jdkVersion == JDK1_5;
105 }
106
107 public boolean isOneDotSix() {
108 return jdkVersion == JDK1_6;
109 }
110
111 }