/* * 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. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * 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.management; import java.util.List; /** * Diagnostic command information. It contains the description of a * diagnostic command. * * @since 8 */ class DiagnosticCommandInfo { private final String name; private final String description; private final String impact; private final String permissionClass; private final String permissionName; private final String permissionAction; private final boolean enabled; private final List<DiagnosticCommandArgumentInfo> arguments; /** * Returns the diagnostic command name. * * @return the diagnostic command name */ String getName() { return name; } /** * Returns the diagnostic command description. * * @return the diagnostic command description */ String getDescription() { return description; } /** * Returns the potential impact of the diagnostic command execution * on the Java virtual machine behavior. * * @return the potential impact of the diagnostic command execution * on the Java virtual machine behavior */ String getImpact() { return impact; } /** * Returns the name of the permission class required to be allowed * to invoke the diagnostic command, or null if no permission * is required. * * @return the name of the permission class name required to be allowed * to invoke the diagnostic command, or null if no permission * is required */ String getPermissionClass() { return permissionClass; } /** * Returns the permission name required to be allowed to invoke the * diagnostic command, or null if no permission is required. * * @return the permission name required to be allowed to invoke the * diagnostic command, or null if no permission is required */ String getPermissionName() { return permissionName; } /** * Returns the permission action required to be allowed to invoke the * diagnostic command, or null if no permission is required or * if the permission has no action specified. * * @return the permission action required to be allowed to invoke the * diagnostic command, or null if no permission is required or * if the permission has no action specified */ String getPermissionAction() { return permissionAction; } /** * Returns {@code true} if the diagnostic command is enabled, * {@code false} otherwise. The enabled/disabled * status of a diagnostic command can evolve during * the lifetime of the Java virtual machine. * * @return {@code true} if the diagnostic command is enabled, * {@code false} otherwise */ boolean isEnabled() { return enabled; } /** * Returns the list of the diagnostic command arguments description. * If the diagnostic command has no arguments, it returns an empty list. * * @return a list of the diagnostic command arguments description */ List<DiagnosticCommandArgumentInfo> getArgumentsInfo() { return arguments; } DiagnosticCommandInfo(String name, String description, String impact, String permissionClass, String permissionName, String permissionAction, boolean enabled, List<DiagnosticCommandArgumentInfo> arguments) { this.name = name; this.description = description; this.impact = impact; this.permissionClass = permissionClass; this.permissionName = permissionName; this.permissionAction = permissionAction; this.enabled = enabled; this.arguments = arguments; } }