KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > publishing > markups > TKMarkupParamCall


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/publishing/markups/TKMarkupParamCall.java,v 1.6 2000/06/01 15:02:56 alex Exp $
3  *
4  */

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 JavaDoc name;
14     public boolean isOptional;
15     public boolean useDefault;
16     public boolean editable;
17
18     // bitte NICHT ˆffentlich machen
19
private String JavaDoc defaultValue;
20     private TKMarkupStatics statics = TKMarkupStatics.setup();
21
22     public TKMarkupParamCall (String JavaDoc name, String JavaDoc paramName, boolean isOptional, boolean useDefault,
23              boolean editable, String JavaDoc defaultValue) {
24
25         if ((name == null) || (name.length() == 0))
26             throw new Error JavaDoc ("Markup-Parameter-Name in der Definition fehlt");
27
28         if ((paramName == null) || (paramName.length() == 0))
29             throw new Error JavaDoc ("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 JavaDoc ("Markup-Parameter '"+name+"/"+paramName+"': Definition fehlt");
41     }
42     
43     public TKMarkupParamCall (String JavaDoc name, int paramId, boolean isOptional, boolean useDefault,
44              boolean editable, String JavaDoc defaultValue) {
45
46         if ((name == null) || (name.length() == 0))
47             throw new Error JavaDoc ("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 JavaDoc ("Markup-Parameter-Id in der Definition fehlt");
57
58         this.param = TKMarkupParamDefinition.lookup (paramId);
59
60         if (this.param == null)
61             throw new Error JavaDoc ("Markup-Parameter '"+name+"/"+paramId+"': Definition fehlt");
62     }
63     
64     public TKMarkupParamCall (TKMarkupParamCall definition) throws Error JavaDoc {
65
66         if (definition == null) throw new Error JavaDoc ("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 JavaDoc ("Markup-Parameter '"+name+"': Definition fehlt");
78     }
79     
80     private TKMarkupParamCall () {}
81     
82     public static TKMarkupParamCall makeDummy
83             (String JavaDoc name, String JavaDoc paramName, boolean isOptional, boolean useDefault,
84              boolean editable, String JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc toString() {
124         
125         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
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 JavaDoc (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     //{{DECLARE_CONTROLS
158
//}}
159
}
160
161
Popular Tags