01: package com.teamkonzept.lib.templates;
02:
03: import java.io.*;
04:
05: import com.teamkonzept.lib.*;
06:
07: /**
08: * Ein TKIncludeTag werden aus dem Template gefiltert
09: * @author $Author: alex $
10: * @version $Revision: 1.12 $
11: */
12: public class TKIncludeTag extends TKTag {
13: public String filename;
14: public TKTemplateSyntax filenameSyntax;
15: public static final int TAG_TYPE = TKListTag.TAG_TYPE + 1;
16:
17: /*******************************************************************
18: /**
19: * Konstruktor 1
20: * Ein Syntaxbaum fuer ein Template wird erzeugt.
21: *
22: * @param String def, Name des Tags
23: * @param boolean hasSubTags
24: */
25: public TKIncludeTag(TKTemplateSyntax parent, String def,
26: boolean hasSubTags) throws TKTemplateSyntaxException {
27: super (parent);
28: filenameSyntax = (hasSubTags ? parent.newChild(def, parent
29: .getSource(), hasSubTags) : null);
30: filename = (hasSubTags ? null : def);
31: }
32:
33: /*******************************************************************
34: /**
35: * Die apply-Methode von TKSyntax wird aufgerufen und das entsprechende
36: * Template wird included.
37: *
38: * @param TKTemplateData td
39: */
40: public String apply(TKTemplateData td)
41: throws TKTemplateSyntaxException {
42: String theFile = (filenameSyntax != null ? filenameSyntax
43: .apply(td) : filename);
44: TKTemplateSyntax syntax = TKTemplateCache.getSyntax(theFile,
45: parent);
46: return syntax.apply(td);
47: }
48:
49: public void apply(TKTemplateData td, Writer writer)
50: throws TKTemplateSyntaxException, IOException {
51: String theFile = (filenameSyntax != null ? filenameSyntax
52: .apply(td) : filename);
53: TKTemplateSyntax syntax = TKTemplateCache.getSyntax(theFile,
54: parent);
55: syntax.apply(td, writer);
56: }
57:
58: }
|