1 5 package com.teamkonzept.publishing.markups; 6 7 import com.teamkonzept.lib.*; 8 9 public class TKMarkupParamCall implements TKSortable { 10 11 public TKMarkupParamDefinition param; 12 13 public String name; 14 public boolean isOptional; 15 public boolean useDefault; 16 public boolean editable; 17 18 private String defaultValue; 20 private TKMarkupStatics statics = TKMarkupStatics.setup(); 21 22 public TKMarkupParamCall (String name, String paramName, boolean isOptional, boolean useDefault, 23 boolean editable, String defaultValue) { 24 25 if ((name == null) || (name.length() == 0)) 26 throw new Error ("Markup-Parameter-Name in der Definition fehlt"); 27 28 if ((paramName == null) || (paramName.length() == 0)) 29 throw new Error ("Markup-Parameter-Name in der Definition fehlt"); 30 31 this.name = name.toUpperCase(); 32 this.isOptional = isOptional; 33 this.useDefault = useDefault; 34 this.editable = editable; 35 this.param = paramName != null ? TKMarkupParamDefinition.lookup (statics,paramName.toUpperCase()) : null; 36 37 setDefaultValue(defaultValue); 38 39 if (this.param == null) 40 throw new Error ("Markup-Parameter '"+name+"/"+paramName+"': Definition fehlt"); 41 } 42 43 public TKMarkupParamCall (String name, int paramId, boolean isOptional, boolean useDefault, 44 boolean editable, String defaultValue) { 45 46 if ((name == null) || (name.length() == 0)) 47 throw new Error ("Markup-Parameter-Name in der Definition fehlt"); 48 49 this.name = name.toUpperCase(); 50 this.isOptional = isOptional; 51 this.useDefault = useDefault; 52 this.editable = editable; 53 54 setDefaultValue(defaultValue); 55 56 if (paramId < 0) throw new Error ("Markup-Parameter-Id in der Definition fehlt"); 57 58 this.param = TKMarkupParamDefinition.lookup (paramId); 59 60 if (this.param == null) 61 throw new Error ("Markup-Parameter '"+name+"/"+paramId+"': Definition fehlt"); 62 } 63 64 public TKMarkupParamCall (TKMarkupParamCall definition) throws Error { 65 66 if (definition == null) throw new Error ("Markup-Parameter Definition fehlt"); 67 68 this.name = definition.name.toUpperCase(); 69 this.isOptional = definition.isOptional; 70 this.useDefault = definition.useDefault; 71 this.editable = definition.editable; 72 this.param = definition.param; 73 74 setDefaultValue(definition.defaultValue()); 75 76 if (this.param == null) 77 throw new Error ("Markup-Parameter '"+name+"': Definition fehlt"); 78 } 79 80 private TKMarkupParamCall () {} 81 82 public static TKMarkupParamCall makeDummy 83 (String name, String paramName, boolean isOptional, boolean useDefault, 84 boolean editable, String defaultValue) { 85 86 TKMarkupParamCall paramCall = new TKMarkupParamCall (); 87 88 if (name == null) name = ""; 89 90 paramCall.name = name.toUpperCase(); 91 paramCall.isOptional = isOptional; 92 paramCall.useDefault = useDefault; 93 paramCall.editable = editable; 94 95 if ((paramName == null) || (paramName.length() == 0)) paramCall.param = null; 96 else { 97 paramCall.param = TKMarkupParamDefinition.lookup 98 (paramName.toUpperCase()); 99 100 if (paramCall.param == null) 101 paramCall.param = TKMarkupParamDefinition.makeDummy (paramName); 102 } 103 104 paramCall.setDefaultValue(defaultValue); 105 106 return paramCall; 107 } 108 109 public String defaultValue() { 110 111 if (defaultValue == null) return null; 112 if (defaultValue.length() == 0) defaultValue = null; 113 return defaultValue; 114 } 115 116 public void setDefaultValue (String value) { 117 118 if ((value == null) || (value.length() == 0)) defaultValue = null; 119 else defaultValue = 120 ((param == null) || param.isCaseSensitive) ? value : value.toUpperCase(); 121 } 122 123 public String toString() { 124 125 StringBuffer buf = new StringBuffer (); 126 127 buf.append("name=").append(name) 128 .append(" isOptional=").append(isOptional) 129 .append(" useDefault=").append(useDefault) 130 .append(" editable=").append(editable) 131 .append(" defaultValue=\"").append(defaultValue).append('"') 132 .append(" param=[").append(param).append(']'); 133 134 return new String (buf); 135 } 136 137 public int cmp (TKSortable other) { 138 139 if (!(other instanceof TKMarkupParamCall)) 140 return toString().compareTo (other.toString()); 141 142 TKMarkupParamCall otherParam = (TKMarkupParamCall) other; 143 144 if ((name == null) && (otherParam.name != null)) return -1; 145 else if ((name != null) && (otherParam.name == null)) return 1; 146 else if ((name != null) && (otherParam.name != null)) { 147 148 int rv = name.compareTo (otherParam.name); 149 if (rv != 0) return rv; 150 } 151 152 if ((param == null) && (otherParam.param != null)) return -1; 153 else if ((param != null) && (otherParam.param == null)) return 1; 154 else if ((param == null) && (otherParam.param == null)) return 0; 155 else return param.cmp (otherParam.param); 156 }; 157 } 160 161 | Popular Tags |