use of org.glassfish.api.Param in project Payara by payara.
the class CachedCommandModel method computeETag.
public static String computeETag(CommandModel cm) {
if (cm instanceof CachedCommandModel) {
String result = ((CachedCommandModel) cm).eTag;
if (result != null && !result.isEmpty()) {
return ((CachedCommandModel) cm).eTag;
}
}
StringBuilder tag = new StringBuilder();
tag.append(cm.getCommandName());
if (cm.isManagedJob()) {
tag.append('m');
}
if (cm.unknownOptionsAreOperands()) {
tag.append('o');
}
if (cm.getParameters() != null) {
// sort
SortedSet<ParamModel> tree = new TreeSet<ParamModel>(new Comparator<ParamModel>() {
@Override
public int compare(ParamModel o1, ParamModel o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (ParamModel paramModel : cm.getParameters()) {
tree.add(paramModel);
}
// print
for (ParamModel pm : tree) {
if ("upload".equals(pm.getName())) {
continue;
}
tag.append(pm.getName());
if (pm.getClass() != null) {
tag.append(pm.getClass().getCanonicalName());
}
Param param = pm.getParam();
if (param.multiple()) {
tag.append('M');
}
if (param.optional()) {
tag.append('P');
}
if (param.primary()) {
tag.append('1');
}
if (param.obsolete()) {
tag.append('O');
}
if (param.shortName() != null && !param.shortName().isEmpty()) {
tag.append(param.shortName());
}
if (param.alias() != null && !param.alias().isEmpty()) {
tag.append(param.alias());
}
if (StringUtils.ok(param.defaultValue())) {
tag.append(param.defaultValue());
// TODO: removeit
tag.append("A");
}
}
}
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(tag.toString().getBytes("UTF-8"));
return DatatypeConverter.printBase64Binary(md.digest());
} catch (Exception ex) {
return "v2" + tag.toString();
}
}
use of org.glassfish.api.Param in project Payara by payara.
the class CommandModelDataProvider method writeToStreamSimpleFormat.
/**
* Super simple format possible because there can't be any problematic
* symbol like EOL in attributes.
*
* @throws IOException
*/
public void writeToStreamSimpleFormat(CommandModel cm, OutputStream stream) throws IOException {
if (cm == null) {
return;
}
// @todo Java SE 7: Managed source
BufferedWriter bw = null;
OutputStreamWriter writer = null;
try {
writer = new OutputStreamWriter(stream, charset);
bw = new BufferedWriter(writer);
// command name
String str = cm.getCommandName();
if (str != null && !str.isEmpty()) {
bw.write(ROOT_ELEMENT);
bw.write(": ");
bw.write(str);
bw.newLine();
}
// ETag
bw.write(ETAG_ELEMENT);
bw.write(": ");
bw.write(CachedCommandModel.computeETag(cm));
bw.newLine();
// unknown are operands
if (cm.unknownOptionsAreOperands()) {
bw.write(UNKNOWN_ARE_OPERANDS_ELEMENT);
bw.write(": true");
bw.newLine();
}
// CachedCommandModel specific staff
if (cm instanceof CachedCommandModel) {
CachedCommandModel ccm = (CachedCommandModel) cm;
// unknown are operands
if (ccm.isAddedUploadOption()) {
bw.write(ADDEDUPLOADOPTIONS_ELEMENT);
bw.write(": true");
bw.newLine();
}
// usage
str = ccm.getUsage();
if (str != null && !str.isEmpty()) {
bw.write(USAGE_ELEMENT);
bw.write(": ");
bw.write(escapeEndLines(str));
bw.newLine();
}
}
// Parameters
for (CommandModel.ParamModel paramModel : cm.getParameters()) {
bw.newLine();
// parameter / name
bw.write(NAME_ELEMENT);
bw.write(": ");
bw.write(paramModel.getName());
bw.newLine();
// parameter / class
if (paramModel.getType() != null) {
bw.write(CLASS_ELEMENT);
bw.write(": ");
bw.write(paramModel.getType().getName());
bw.newLine();
}
Param param = paramModel.getParam();
// parameter / shortName
str = param.shortName();
if (str != null && !str.isEmpty()) {
bw.write(SHORTNAME_ELEMENT);
bw.write(": ");
bw.write(str);
bw.newLine();
}
// parameter / alias
str = param.alias();
if (str != null && !str.isEmpty()) {
bw.write(ALIAS_ELEMENT);
bw.write(": ");
bw.write(str);
bw.newLine();
}
// parameter / optional
if (param.optional()) {
bw.write(OPTIONAL_ELEMENT);
bw.write(": true");
bw.newLine();
}
// parameter / obsolete
if (param.obsolete()) {
bw.write(OBSOLETE_ELEMENT);
bw.write(": true");
bw.newLine();
}
// parameter / defaultValue
str = param.defaultValue();
if (str != null && !str.isEmpty()) {
bw.write(DEFAULT_VALUE_ELEMENT);
bw.write(": ");
bw.write(str);
bw.newLine();
}
// parameter / primary
if (param.primary()) {
bw.write(PRIMARY_ELEMENT);
bw.write(": true");
bw.newLine();
}
// parameter / multiple
if (param.multiple()) {
bw.write(MULTIPLE_ELEMENT);
bw.write(": true");
bw.newLine();
}
// parameter / password
if (param.password()) {
bw.write(PASSWORD_ELEMENT);
bw.write(": true");
bw.newLine();
}
// parameter / prompt
if (paramModel instanceof ParamModelData) {
str = ((ParamModelData) paramModel).getPrompt();
if (str != null && !str.isEmpty()) {
bw.write(PROMPT_ELEMENT);
bw.write(": ");
bw.write(escapeEndLines(str));
bw.newLine();
}
str = ((ParamModelData) paramModel).getPromptAgain();
if (str != null && !str.isEmpty()) {
bw.write(PROMPT_AGAIN_ELEMENT);
bw.write(": ");
bw.write(escapeEndLines(str));
bw.newLine();
}
}
}
} finally {
try {
bw.close();
} catch (Exception ex) {
}
try {
writer.close();
} catch (Exception ex) {
}
}
}
use of org.glassfish.api.Param in project Payara by payara.
the class ClientGenerator method processAttributes.
protected void processAttributes(ClientClassWriter writer, ConfigModel model, Set<String> processed) {
Class clazz = model.getProxyType();
for (Method method : clazz.getMethods()) {
String methodName = method.getName();
Attribute a = method.getAnnotation(Attribute.class);
Param p = method.getAnnotation(Param.class);
if ((a != null) || (p != null)) {
String type = "String";
if (a != null) {
type = a.dataType().getName();
}
if (methodName.startsWith("get") || methodName.startsWith("set")) {
methodName = methodName.substring(3);
}
String fieldName = Util.lowerCaseFirstLetter(methodName);
if (processed.contains(fieldName)) {
continue;
}
processed.add(fieldName);
writer.generateGettersAndSetters(type, methodName, fieldName);
}
}
}
use of org.glassfish.api.Param in project Payara by payara.
the class PythonClientClassWriter method generateCommandMethod.
@Override
public void generateCommandMethod(String methodName, String httpMethod, String resourcePath, CommandModel cm) {
String parametersSignature = Util.getMethodParameterList(cm, true, false);
Boolean needsMultiPart = parametersSignature.contains("java.io.File");
String parameters = Util.getMethodParameterList(cm, false, false);
if (!parameters.isEmpty()) {
parameters = ", " + parameters;
}
StringBuilder merge = new StringBuilder();
Collection<CommandModel.ParamModel> params = cm.getParameters();
if ((params != null) && (!params.isEmpty())) {
for (CommandModel.ParamModel model : params) {
Param param = model.getParam();
if (param.optional()) {
continue;
}
String key = (!param.alias().isEmpty()) ? param.alias() : model.getName();
String paramName = Util.eleminateHypen(model.getName());
merge.append(" optional['").append(key).append("'] = _").append(paramName).append("\n");
}
}
source.append(TMPL_COMMAND_METHOD.replace("COMMAND", methodName).replace("PARAMS", parameters).replace("MERGE", merge.toString()).replace("PATH", resourcePath).replace("METHOD", httpMethod).replace("MULTIPART", Util.upperCaseFirstLetter(needsMultiPart.toString())));
}
use of org.glassfish.api.Param in project Payara by payara.
the class CommandModelStaxProvider method writeContentToStream.
@Override
protected void writeContentToStream(CommandModel proxy, StreamWriter wr) throws Exception {
if (proxy == null) {
return;
}
wr.writeStartDocument();
wr.writeStartObject("command");
wr.writeAttribute("@name", proxy.getCommandName());
if (proxy.unknownOptionsAreOperands()) {
wr.writeAttribute("@unknown-options-are-operands", true);
}
if (proxy.isManagedJob()) {
wr.writeAttribute("@managed-job", true);
}
String usage = proxy.getUsageText();
if (StringUtils.ok(usage)) {
wr.writeAttribute("usage", usage);
}
// Options
wr.writeStartArray("option");
for (CommandModel.ParamModel p : proxy.getParameters()) {
Param par = p.getParam();
wr.writeStartObject("option");
wr.writeAttribute("@name", p.getName());
wr.writeAttribute("@type", simplifiedTypeOf(p));
if (par.primary()) {
wr.writeAttribute("@primary", true);
}
if (par.multiple()) {
wr.writeAttribute("@multiple", true);
}
if (par.optional()) {
wr.writeAttribute("@optional", true);
}
if (par.obsolete()) {
wr.writeAttribute("@obsolete", true);
}
String str = par.shortName();
if (StringUtils.ok(str)) {
wr.writeAttribute("@short", str);
}
str = par.defaultValue();
if (StringUtils.ok(str)) {
wr.writeAttribute("@default", str);
}
str = par.acceptableValues();
if (StringUtils.ok(str)) {
wr.writeAttribute("@acceptable-values", str);
}
str = par.alias();
if (StringUtils.ok(str)) {
wr.writeAttribute("@alias", str);
}
str = p.getLocalizedDescription();
if (StringUtils.ok(str)) {
wr.writeAttribute("@description", str);
}
str = p.getLocalizedPrompt();
if (StringUtils.ok(str)) {
wr.writeAttribute("@prompt", str);
}
str = p.getLocalizedPromptAgain();
if (StringUtils.ok(str)) {
wr.writeAttribute("@prompt-again", str);
}
wr.writeEndObject();
}
wr.writeEndArray();
// </command>
wr.writeEndObject();
wr.writeEndDocument();
}
Aggregations