/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.maven.packaging.model; import java.util.Calendar; import org.apache.camel.maven.packaging.StringHelper; import static org.apache.camel.maven.packaging.StringHelper.wrapCamelCaseWords; public class ComponentOptionModel { private String name; private String displayName; private String kind; private String group; private String required; private String type; private String javaType; private String deprecated; private String secret; private String description; private String defaultValue; private String enums; // special for documentation rendering private boolean newGroup; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } public String getGroup() { return group; } public void setGroup(String group) { this.group = group; } public String getRequired() { return required; } public void setRequired(String required) { this.required = required; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getJavaType() { return javaType; } public void setJavaType(String javaType) { this.javaType = javaType; } public String getDeprecated() { return deprecated; } public void setDeprecated(String deprecated) { this.deprecated = deprecated; } public String getSecret() { return secret; } public void setSecret(String secret) { this.secret = secret; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } public String getEnums() { return enums; } public void setEnums(String enums) { this.enums = enums; } public boolean isNewGroup() { return newGroup; } public void setNewGroup(boolean newGroup) { this.newGroup = newGroup; } public String getShortJavaType() { // TODO: use watermark in the others return getShortJavaType(40); } public String getShortJavaType(int watermark) { if (javaType.startsWith("java.util.Map")) { return "Map"; } else if (javaType.startsWith("java.util.Set")) { return "Set"; } else if (javaType.startsWith("java.util.List")) { return "List"; } String text = javaType; int pos = text.lastIndexOf("."); if (pos != -1) { text = text.substring(pos + 1); } // if its some kind of java object then lets wrap it as its long if ("object".equals(type)) { text = wrapCamelCaseWords(text, watermark, " "); } return text; } public String getShortGroup() { if (group.endsWith(" (advanced)")) { return group.substring(0, group.length() - 11); } return group; } public String getShortDefaultValue(int watermark) { if (defaultValue.isEmpty()) { return ""; } String text = defaultValue; if (text.endsWith("<T>")) { text = text.substring(0, text.length() - 3); } else if (text.endsWith("<T>>")) { text = text.substring(0, text.length() - 4); } // TODO: dirty hack for AUTO_ACKNOWLEDGE which we should wrap if ("AUTO_ACKNOWLEDGE".equals(text)) { return "AUTO_ ACKNOWLEDGE"; } return text; } public String getShortName(int watermark) { String text = wrapCamelCaseWords(name, watermark, " "); // ensure the option name starts with lower-case return Character.toLowerCase(text.charAt(0)) + text.substring(1); } }