com.sun.enterprise.admin.util.CommandModelData Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of payara-micro Show documentation
Show all versions of payara-micro Show documentation
Micro Distribution of the Payara Project
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2008-2013 Oracle and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
* or packager/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at packager/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package com.sun.enterprise.admin.util;
import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import org.glassfish.api.Param;
import org.glassfish.api.ParamDefaultCalculator;
import org.glassfish.api.admin.CommandModel;
import org.glassfish.api.admin.ExecuteOn;
/**
* A command and parameter model that allows the data to be supplied directly.
*
* @author Jerome Dochez
* @author Bill Shannon
*/
public class CommandModelData extends CommandModel {
// use a LinkedHashMap so params appears in the order they are added
private final Map params = new LinkedHashMap();
private final String commandName;
public boolean managedJob = false;
public boolean dashOk = false;
public CommandModelData(String name) {
commandName = name;
}
CommandModelData() {
commandName = null;
}
@Override
public String getLocalizedDescription() {
return null;
}
@Override
public String getUsageText() {
return null;
}
@Override
public String getCommandName() {
return commandName;
}
@Override
public CommandModel.ParamModel getModelFor(String paramName) {
return params.get(paramName);
}
@Override
public Collection getParametersNames() {
return params.keySet();
}
@Override
public Class getCommandClass() {
return null;
}
@Override
public ExecuteOn getClusteringAttributes() {
return null;
}
@Override
public boolean isManagedJob() {
return this.managedJob;
}
/**
* Should an unknown option be considered an operand by asadmin?
*/
@Override
public boolean unknownOptionsAreOperands() {
return dashOk;
}
/**
* Add the ParamModel to this CommandModel.
*/
public void add(ParamModel model) {
if (!params.containsKey(model.getName())) {
params.put(model.getName(), model);
}
}
/**
* A parameter model that's just data.
*/
public static class ParamModelData extends ParamModel {
public String name;
public ParamData param;
public Class type;
// from the server, for password fields
public String prompt;
public String promptAgain;
public ParamModelData(String name, Class type, boolean optional,
String def) {
this(name, type, optional, def, null);
}
public ParamModelData(String name, Class type, boolean optional,
String def, String shortName) {
this(name, type, optional, def, shortName, false);
}
public ParamModelData(String name, Class type, boolean optional,
String def, String shortName, boolean obsolete) {
this(name, type, optional, def, shortName, obsolete, "");
}
public ParamModelData(String name, Class type, boolean optional,
String def, String shortName, boolean obsolete, String alias) {
ParamData param = new ParamData();
param._name = name;
param._optional = optional;
param._defaultValue = def;
if (shortName == null)
shortName = "";
param._shortName = shortName;
param._obsolete = obsolete;
if (alias == null)
alias = "";
param._alias = alias;
ParamModelData.this.name = name;
ParamModelData.this.type = type;
ParamModelData.this.param = param;
}
@Override
public String getName() {
return name;
}
@Override
public String getLocalizedDescription() {
return "";
}
@Override
public String getLocalizedPrompt() {
return getPrompt();
}
@Override
public String getLocalizedPromptAgain() {
return getPromptAgain();
}
@Override
public Param getParam() {
return param;
}
@Override
public Class getType() {
return type;
}
// unique to ParamModelData
public String getPrompt() {
return prompt;
}
public String getPromptAgain() {
return promptAgain;
}
@Override
public String toString() {
return "ParamModelData: name=" + name + ", type=" + type +
", i18n=" + getLocalizedDescription() + ", param=" + param.toString();
}
}
/**
* A Param annotation simulated with data.
*/
public static class ParamData implements Param {
public String _name = "";
public String _acceptableValues = "";
public boolean _optional = false;
public String _shortName = "";
public boolean _primary = false;
public String _defaultValue = "";
public boolean _password = false;
public char _separator = ',';
public boolean _multiple = false;
public boolean _obsolete = false;
public String _alias = "";
@Override
public Class extends Annotation> annotationType() {
return Param.class;
}
@Override
public String name() { return _name; }
@Override
public String acceptableValues() { return _acceptableValues; }
@Override
public boolean optional() { return _optional; }
@Override
public String shortName() { return _shortName; }
@Override
public boolean primary() { return _primary; }
@Override
public String defaultValue() { return _defaultValue; }
@Override
public Class extends ParamDefaultCalculator> defaultCalculator() {
return ParamDefaultCalculator.class;
}
@Override
public boolean password() { return _password; }
@Override
public char separator() { return _separator; }
@Override
public boolean multiple() { return _multiple; }
@Override
public boolean obsolete() { return _obsolete; }
@Override
public String alias() { return _alias; }
@Override
public String toString() {
return "ParamData: name=" + _name +
", acceptableValues=" + _acceptableValues +
", optional=" + _optional +
", shortName=" + _shortName +
", primary=" + _primary +
", defaultValue=" + _defaultValue +
", password=" + _password +
", separator=" + _separator +
", multiple=" + _multiple +
", obsolete=" + _obsolete +
", alias=" + _alias;
}
}
}