8067337: Remove Whitebox API from hotspot repository
Summary: Remove Whitebox API from hotspot repository after it was moved to top level repository.
Reviewed-by: iignatyev
--- a/hotspot/test/testlibrary/whitebox/Makefile Fri Dec 12 09:58:37 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#
-# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-#
-
-ifneq "x$(ALT_BOOTDIR)" "x"
- BOOTDIR := $(ALT_BOOTDIR)
-endif
-
-ifeq "x$(BOOTDIR)" "x"
- JDK_HOME := $(shell dirname $(shell which java))/..
-else
- JDK_HOME := $(BOOTDIR)
-endif
-
-SRC_DIR = ./
-BUILD_DIR = build
-OUTPUT_DIR = $(BUILD_DIR)/classes
-
-JAVAC = $(JDK_HOME)/bin/javac
-JAR = $(JDK_HOME)/bin/jar
-
-SRC_FILES = $(shell find $(SRC_DIR) -name '*.java')
-
-.PHONY: filelist clean cleantmp
-
-all: wb.jar cleantmp
-
-wb.jar: filelist
- @mkdir -p $(OUTPUT_DIR)
- $(JAVAC) -sourcepath $(SRC_DIR) -d $(OUTPUT_DIR) -cp $(OUTPUT_DIR) @filelist
- $(JAR) cf wb.jar -C $(OUTPUT_DIR) .
- @rm -rf $(OUTPUT_DIR)
-
-filelist: $(SRC_FILES)
- @rm -f $@
- @echo $(SRC_FILES) > $@
-
-clean: cleantmp
- @rm -rf wb.jar
-
-cleantmp:
- @rm -rf filelist
- @rm -rf $(BUILD_DIR)
--- a/hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java Fri Dec 12 09:58:37 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-/*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-package sun.hotspot;
-
-import java.lang.reflect.Executable;
-import java.util.Arrays;
-import java.util.List;
-import java.util.function.Function;
-import java.util.stream.Stream;
-import java.security.BasicPermission;
-
-import sun.hotspot.parser.DiagnosticCommand;
-
-public class WhiteBox {
-
- @SuppressWarnings("serial")
- public static class WhiteBoxPermission extends BasicPermission {
- public WhiteBoxPermission(String s) {
- super(s);
- }
- }
-
- private WhiteBox() {}
- private static final WhiteBox instance = new WhiteBox();
- private static native void registerNatives();
-
- /**
- * Returns the singleton WhiteBox instance.
- *
- * The returned WhiteBox object should be carefully guarded
- * by the caller, since it can be used to read and write data
- * at arbitrary memory addresses. It must never be passed to
- * untrusted code.
- */
- public synchronized static WhiteBox getWhiteBox() {
- SecurityManager sm = System.getSecurityManager();
- if (sm != null) {
- sm.checkPermission(new WhiteBoxPermission("getInstance"));
- }
- return instance;
- }
-
- static {
- registerNatives();
- }
-
- // Get the maximum heap size supporting COOPs
- public native long getCompressedOopsMaxHeapSize();
- // Arguments
- public native void printHeapSizes();
-
- // Memory
- public native long getObjectAddress(Object o);
- public native int getHeapOopSize();
- public native int getVMPageSize();
- public native boolean isObjectInOldGen(Object o);
- public native long getObjectSize(Object o);
-
- // Runtime
- // Make sure class name is in the correct format
- public boolean isClassAlive(String name) {
- return isClassAlive0(name.replace('.', '/'));
- }
- private native boolean isClassAlive0(String name);
-
- // JVMTI
- public native void addToBootstrapClassLoaderSearch(String segment);
- public native void addToSystemClassLoaderSearch(String segment);
-
- // G1
- public native boolean g1InConcurrentMark();
- public native boolean g1IsHumongous(Object o);
- public native long g1NumFreeRegions();
- public native int g1RegionSize();
- public native Object[] parseCommandLine(String commandline, char delim, DiagnosticCommand[] args);
-
- // NMT
- public native long NMTMalloc(long size);
- public native void NMTFree(long mem);
- public native long NMTReserveMemory(long size);
- public native void NMTCommitMemory(long addr, long size);
- public native void NMTUncommitMemory(long addr, long size);
- public native void NMTReleaseMemory(long addr, long size);
- public native long NMTMallocWithPseudoStack(long size, int index);
- public native boolean NMTIsDetailSupported();
- public native boolean NMTChangeTrackingLevel();
- public native int NMTGetHashSize();
-
- // Compiler
- public native void deoptimizeAll();
- public boolean isMethodCompiled(Executable method) {
- return isMethodCompiled(method, false /*not osr*/);
- }
- public native boolean isMethodCompiled(Executable method, boolean isOsr);
- public boolean isMethodCompilable(Executable method) {
- return isMethodCompilable(method, -1 /*any*/);
- }
- public boolean isMethodCompilable(Executable method, int compLevel) {
- return isMethodCompilable(method, compLevel, false /*not osr*/);
- }
- public native boolean isMethodCompilable(Executable method, int compLevel, boolean isOsr);
- public native boolean isMethodQueuedForCompilation(Executable method);
- public int deoptimizeMethod(Executable method) {
- return deoptimizeMethod(method, false /*not osr*/);
- }
- public native int deoptimizeMethod(Executable method, boolean isOsr);
- public void makeMethodNotCompilable(Executable method) {
- makeMethodNotCompilable(method, -1 /*any*/);
- }
- public void makeMethodNotCompilable(Executable method, int compLevel) {
- makeMethodNotCompilable(method, compLevel, false /*not osr*/);
- }
- public native void makeMethodNotCompilable(Executable method, int compLevel, boolean isOsr);
- public int getMethodCompilationLevel(Executable method) {
- return getMethodCompilationLevel(method, false /*not ost*/);
- }
- public native int getMethodCompilationLevel(Executable method, boolean isOsr);
- public native boolean testSetDontInlineMethod(Executable method, boolean value);
- public int getCompileQueuesSize() {
- return getCompileQueueSize(-1 /*any*/);
- }
- public native int getCompileQueueSize(int compLevel);
- public native boolean testSetForceInlineMethod(Executable method, boolean value);
- public boolean enqueueMethodForCompilation(Executable method, int compLevel) {
- return enqueueMethodForCompilation(method, compLevel, -1 /*InvocationEntryBci*/);
- }
- public native boolean enqueueMethodForCompilation(Executable method, int compLevel, int entry_bci);
- public native void clearMethodState(Executable method);
- public native void lockCompilation();
- public native void unlockCompilation();
- public native int getMethodEntryBci(Executable method);
- public native Object[] getNMethod(Executable method, boolean isOsr);
- public native long allocateCodeBlob(int size, int type);
- public long allocateCodeBlob(long size, int type) {
- int intSize = (int) size;
- if ((long) intSize != size || size < 0) {
- throw new IllegalArgumentException(
- "size argument has illegal value " + size);
- }
- return allocateCodeBlob( intSize, type);
- }
- public native void freeCodeBlob(long addr);
- public void forceNMethodSweep() {
- try {
- forceNMethodSweep0().join();
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- public native Thread forceNMethodSweep0();
- public native Object[] getCodeHeapEntries(int type);
- public native int getCompilationActivityMode();
- public native Object[] getCodeBlob(long addr);
-
- // Intered strings
- public native boolean isInStringTable(String str);
-
- // Memory
- public native void readReservedMemory();
- public native long allocateMetaspace(ClassLoader classLoader, long size);
- public native void freeMetaspace(ClassLoader classLoader, long addr, long size);
- public native long incMetaspaceCapacityUntilGC(long increment);
- public native long metaspaceCapacityUntilGC();
-
- // Force Young GC
- public native void youngGC();
-
- // Force Full GC
- public native void fullGC();
-
- // Method tries to start concurrent mark cycle.
- // It returns false if CM Thread is always in concurrent cycle.
- public native boolean g1StartConcMarkCycle();
-
- // Tests on ReservedSpace/VirtualSpace classes
- public native int stressVirtualSpaceResize(long reservedSpaceSize, long magnitude, long iterations);
- public native void runMemoryUnitTests();
- public native void readFromNoaccessArea();
- public native long getThreadStackSize();
- public native long getThreadRemainingStackSize();
-
- // CPU features
- public native String getCPUFeatures();
-
- // Native extensions
- public native long getHeapUsageForContext(int context);
- public native long getHeapRegionCountForContext(int context);
- public native int getContextForObject(Object obj);
- public native void printRegionInfo(int context);
-
- // VM flags
- public native boolean isConstantVMFlag(String name);
- public native boolean isLockedVMFlag(String name);
- public native void setBooleanVMFlag(String name, boolean value);
- public native void setIntxVMFlag(String name, long value);
- public native void setUintxVMFlag(String name, long value);
- public native void setUint64VMFlag(String name, long value);
- public native void setSizeTVMFlag(String name, long value);
- public native void setStringVMFlag(String name, String value);
- public native void setDoubleVMFlag(String name, double value);
- public native Boolean getBooleanVMFlag(String name);
- public native Long getIntxVMFlag(String name);
- public native Long getUintxVMFlag(String name);
- public native Long getUint64VMFlag(String name);
- public native Long getSizeTVMFlag(String name);
- public native String getStringVMFlag(String name);
- public native Double getDoubleVMFlag(String name);
- private final List<Function<String,Object>> flagsGetters = Arrays.asList(
- this::getBooleanVMFlag, this::getIntxVMFlag, this::getUintxVMFlag,
- this::getUint64VMFlag, this::getSizeTVMFlag, this::getStringVMFlag,
- this::getDoubleVMFlag);
-
- public Object getVMFlag(String name) {
- return flagsGetters.stream()
- .map(f -> f.apply(name))
- .filter(x -> x != null)
- .findAny()
- .orElse(null);
- }
- public native int getOffsetForName0(String name);
- public int getOffsetForName(String name) throws Exception {
- int offset = getOffsetForName0(name);
- if (offset == -1) {
- throw new RuntimeException(name + " not found");
- }
- return offset;
- }
-
-}
--- a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/BlobType.java Fri Dec 12 09:58:37 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-package sun.hotspot.code;
-
-import java.lang.management.ManagementFactory;
-import java.lang.management.MemoryPoolMXBean;
-import java.util.EnumSet;
-
-import sun.hotspot.WhiteBox;
-
-public enum BlobType {
- // Execution level 1 and 4 (non-profiled) nmethods (including native nmethods)
- MethodNonProfiled(0, "CodeHeap 'non-profiled nmethods'"),
- // Execution level 2 and 3 (profiled) nmethods
- MethodProfiled(1, "CodeHeap 'profiled nmethods'"),
- // Non-nmethods like Buffers, Adapters and Runtime Stubs
- NonNMethod(2, "CodeHeap 'non-nmethods'") {
- @Override
- public boolean allowTypeWhenOverflow(BlobType type) {
- return super.allowTypeWhenOverflow(type)
- || type == BlobType.MethodNonProfiled;
- }
- },
- // All types (No code cache segmentation)
- All(3, "CodeCache");
-
- public final int id;
- private final String beanName;
-
- private BlobType(int id, String beanName) {
- this.id = id;
- this.beanName = beanName;
- }
-
- public MemoryPoolMXBean getMemoryPool() {
- for (MemoryPoolMXBean bean : ManagementFactory.getMemoryPoolMXBeans()) {
- String name = bean.getName();
- if (beanName.equals(name)) {
- return bean;
- }
- }
- return null;
- }
-
- public boolean allowTypeWhenOverflow(BlobType type) {
- return type == this;
- }
-
- public static EnumSet<BlobType> getAvailable() {
- WhiteBox whiteBox = WhiteBox.getWhiteBox();
- if (!whiteBox.getBooleanVMFlag("SegmentedCodeCache")) {
- // only All for non segmented world
- return EnumSet.of(All);
- }
- if (System.getProperty("java.vm.info").startsWith("interpreted ")) {
- // only NonNMethod for -Xint
- return EnumSet.of(NonNMethod);
- }
-
- EnumSet<BlobType> result = EnumSet.complementOf(EnumSet.of(All));
- if (!whiteBox.getBooleanVMFlag("TieredCompilation")
- || whiteBox.getIntxVMFlag("TieredStopAtLevel") <= 1) {
- // there is no MethodProfiled in non tiered world or pure C1
- result.remove(MethodProfiled);
- }
- return result;
- }
-}
--- a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/CodeBlob.java Fri Dec 12 09:58:37 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-package sun.hotspot.code;
-
-import sun.hotspot.WhiteBox;
-
-public class CodeBlob {
- private static final WhiteBox WB = WhiteBox.getWhiteBox();
- public static CodeBlob[] getCodeBlobs(BlobType type) {
- Object[] obj = WB.getCodeHeapEntries(type.id);
- if (obj == null) {
- return null;
- }
- CodeBlob[] result = new CodeBlob[obj.length];
- for (int i = 0, n = result.length; i < n; ++i) {
- result[i] = new CodeBlob((Object[]) obj[i]);
- }
- return result;
- }
- public static CodeBlob getCodeBlob(long addr) {
- Object[] obj = WB.getCodeBlob(addr);
- if (obj == null) {
- return null;
- }
- return new CodeBlob(obj);
- }
- protected CodeBlob(Object[] obj) {
- assert obj.length == 3;
- name = (String) obj[0];
- size = (Integer) obj[1];
- code_blob_type = BlobType.values()[(Integer) obj[2]];
- assert code_blob_type.id == (Integer) obj[2];
- }
- public final String name;
- public final int size;
- public final BlobType code_blob_type;
-
- @Override
- public String toString() {
- return "CodeBlob{"
- + "name=" + name
- + ", size=" + size
- + ", code_blob_type=" + code_blob_type
- + '}';
- }
-}
--- a/hotspot/test/testlibrary/whitebox/sun/hotspot/code/NMethod.java Fri Dec 12 09:58:37 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-package sun.hotspot.code;
-
-import java.lang.reflect.Executable;
-import sun.hotspot.WhiteBox;
-
-public class NMethod extends CodeBlob {
- private static final WhiteBox wb = WhiteBox.getWhiteBox();
- public static NMethod get(Executable method, boolean isOsr) {
- Object[] obj = wb.getNMethod(method, isOsr);
- return obj == null ? null : new NMethod(obj);
- }
- private NMethod(Object[] obj) {
- super((Object[])obj[0]);
- assert obj.length == 4;
- comp_level = (Integer) obj[1];
- insts = (byte[]) obj[2];
- compile_id = (Integer) obj[3];
- }
- public final byte[] insts;
- public final int comp_level;
- public final int compile_id;
-
- @Override
- public String toString() {
- return "NMethod{"
- + super.toString()
- + ", insts=" + insts
- + ", comp_level=" + comp_level
- + ", compile_id=" + compile_id
- + '}';
- }
-}
--- a/hotspot/test/testlibrary/whitebox/sun/hotspot/cpuinfo/CPUInfo.java Fri Dec 12 09:58:37 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-package sun.hotspot.cpuinfo;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
-
-import sun.hotspot.WhiteBox;
-
-/**
- * Information about CPU on test box.
- *
- * CPUInfo uses WhiteBox to gather information,
- * so WhiteBox class should be added to bootclasspath
- * and option -XX:+WhiteBoxAPI should expclicetly
- * specified on command line.
- */
-public class CPUInfo {
-
- private static final List<String> features;
- private static final String additionalCPUInfo;
-
- static {
- WhiteBox wb = WhiteBox.getWhiteBox();
-
- Pattern additionalCPUInfoRE =
- Pattern.compile("([^(]*\\([^)]*\\)[^,]*),\\s*");
-
- String cpuFeaturesString = wb.getCPUFeatures();
- Matcher matcher = additionalCPUInfoRE.matcher(cpuFeaturesString);
- if (matcher.find()) {
- additionalCPUInfo = matcher.group(1);
- } else {
- additionalCPUInfo = "";
- }
- String splittedFeatures[] = matcher.replaceAll("").split("(, )| ");
-
- features = Collections.unmodifiableList(Arrays.
- asList(splittedFeatures));
- }
-
- /**
- * Get additional information about CPU.
- * For example, on X86 in will be family/model/stepping
- * and number of cores.
- *
- * @return additional CPU info
- */
- public static String getAdditionalCPUInfo() {
- return additionalCPUInfo;
- }
-
- /**
- * Get all known features supported by CPU.
- *
- * @return unmodifiable list with names of all known features
- * supported by CPU.
- */
- public static List<String> getFeatures() {
- return features;
- }
-
- /**
- * Check if some feature is supported by CPU.
- *
- * @param feature Name of feature to be tested.
- * @return <b>true</b> if tested feature is supported by CPU.
- */
- public static boolean hasFeature(String feature) {
- return features.contains(feature.toLowerCase());
- }
-}
--- a/hotspot/test/testlibrary/whitebox/sun/hotspot/parser/DiagnosticCommand.java Fri Dec 12 09:58:37 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.hotspot.parser;
-
-public class DiagnosticCommand {
-
- public enum DiagnosticArgumentType {
- JLONG, BOOLEAN, STRING, NANOTIME, STRINGARRAY, MEMORYSIZE
- }
-
- private String name;
- private String desc;
- private DiagnosticArgumentType type;
- private boolean mandatory;
- private String defaultValue;
- private boolean argument;
-
- public DiagnosticCommand(String name, String desc, DiagnosticArgumentType type,
- boolean mandatory, String defaultValue) {
- this(name, desc, type, false, mandatory, defaultValue);
- }
-
- public DiagnosticCommand(String name, String desc, DiagnosticArgumentType type,
- boolean argument, boolean mandatory, String defaultValue) {
- this.name = name;
- this.desc = desc;
- this.type = type;
- this.mandatory = mandatory;
- this.defaultValue = defaultValue;
- this.argument = argument;
- }
-
- public String getName() {
- return name;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public DiagnosticArgumentType getType() {
- return type;
- }
-
- public boolean isMandatory() {
- return mandatory;
- }
-
- public boolean isArgument() {
- return argument;
- }
-
- public String getDefaultValue() {
- return defaultValue;
- }
-}