01: /*
02: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/lib/templates/TKNotTag.java,v 1.9 2001/08/14 13:53:22 mischa Exp $
03: *
04: */
05: /**
06: *
07: *
08: * Aufbau: name="TK_CLASSNAME[par_name;class_name:class_value;...]" value="..."
09: * ------------ ----------
10: * primaere Klasse Sekundaere Klasse
11: *
12: * Bsp: name="TK_EV[THE_EVENT;QOR:0.8_0.5]" value="..."
13: */package com.teamkonzept.lib.templates;
14:
15: import java.io.*;
16:
17: import com.oroinc.text.regex.*;
18:
19: import com.teamkonzept.lib.*;
20:
21: /**
22: * Ein TK_NOT wird aus dem Template gefiltert
23: * @author $Author: mischa $
24: * @version $Revision: 1.9 $
25: */
26: public class TKNotTag extends TKLabelTag {
27: public TKTemplateSyntax notText;
28: static final int TAG_TYPE = TKCaseTag.TAG_TYPE + 1;
29:
30: /*******************************************************************
31: /**
32: * Konstruktor 1
33: * Ein Syntaxbaum fuer ein Template wird erzeugt.
34: *
35: * @param String def, Name des Tags
36: * @param PatternMatcherInput matcherInput,
37: * @param boolean hasSubTags
38: */
39: public TKNotTag(TKTemplateSyntax parent, String def,
40: PatternMatcherInput matcherInput, boolean hasSubTags)
41: throws TKTemplateSyntaxException {
42: super (parent, def, hasSubTags);
43: try {
44: notText = parent.newChild(matcherInput, parent.getSource());
45: } catch (ArrayIndexOutOfBoundsException e) { //thrown by TKTemplateSyntax.newTag()
46: throw new TKTemplateSyntaxException(parent.getSource(),
47: "NOEND", "NOT", def);
48: }
49: checkError(notText, "NOT", def);
50: }
51:
52: /*******************************************************************
53: /**
54: * Die apply-Methode von TKSyntax wird aufgerufen und der entsprechende
55: * Part des Templates wird bearbeitet
56: *
57: * @param TKTemplateData td
58: * @return den String, der den bearbeiteten Part enthaelt
59: */
60: public String apply(TKTemplateData td)
61: throws TKTemplateSyntaxException {
62: String value = expandVariable(getLabel(td), td, null);
63:
64: if (value == null || value.length() == 0) {
65: return notText.apply(td);
66: }
67: return null;
68: }
69:
70: /*******************************************************************
71: /**
72: * Die apply-Methode von TKSyntax wird aufgerufen und der entsprechende
73: * Part des Templates wird bearbeitet
74: *
75: * @param td TKTemplateData
76: * @param writer Writer in den der bearbeitete Part geschrieben wird.
77: */
78: public void apply(TKTemplateData td, Writer writer)
79: throws TKTemplateSyntaxException, IOException {
80: String value = expandVariable(getLabel(td), td, null);
81:
82: if (value == null || value.length() == 0) {
83: notText.apply(td, writer);
84: }
85: }
86: }
|