KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > web > templates > TKHTMLTemplateSyntax


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/web/templates/TKHTMLTemplateSyntax.java,v 1.7 2000/07/04 11:51:08 alex Exp $
3  *
4  */

5 package com.teamkonzept.web.templates;
6
7 import java.util.*;
8 import com.oroinc.text.regex.*;
9
10 import com.teamkonzept.lib.*;
11 import com.teamkonzept.lib.templates.*;
12 import com.teamkonzept.web.*;
13
14 /**
15  * Der Syntaxbaum eines Templates
16  */

17 public class TKHTMLTemplateSyntax extends TKTemplateSyntax {
18
19     static protected final String JavaDoc patCheckMarker = "CHK";
20     static protected final String JavaDoc patSelectMarker = "SEL";
21     static protected final String JavaDoc patOptionMarker = "OPT";
22
23     public static final String JavaDoc currYear = Integer.toString( (new java.util.Date JavaDoc()).getYear()+1900 );
24     
25     public TKTemplate getNewTemplate()
26     {
27         return new TKHTMLTemplate( this );
28     }
29     
30     public TKTemplateData getNewTemplateData()
31     {
32         return new TKHTMLTemplateData();
33     }
34     
35     public String JavaDoc getDefaultEncoding()
36     {
37         return TKHtmlConverter.CONV_ID;
38     }
39     
40     /**
41      */

42     public TKHTMLTemplateSyntax()
43     {
44     }
45     
46     public TKHTMLTemplateSyntax(Pattern patTKTag)
47     {
48         super (patTKTag);
49     }
50     
51     /************************************************************************
52     /**
53      * Konstruktor1
54      * Konstrukror2 wird aufgerufen
55      *
56      * @param String text, das vollstaendige Template als String
57      */

58     public TKHTMLTemplateSyntax( String JavaDoc text, String JavaDoc source ) throws TKTemplateSyntaxException
59     {
60         super( text, source );
61     }
62     
63     public TKHTMLTemplateSyntax( String JavaDoc text, String JavaDoc source, Pattern patTKTag ) throws TKTemplateSyntaxException
64     {
65         super( text, source, patTKTag );
66     }
67     
68     public TKHTMLTemplateSyntax( String JavaDoc text, String JavaDoc source, boolean applyConverter) throws TKTemplateSyntaxException
69     {
70         super( text, source, applyConverter);
71     }
72     
73     /************************************************************************
74     /**
75      * Konstruktor2
76      * Der uebergebene String wird Tag fuer Tag bearbeitet. Wird ein Tag gefunden,
77      * so wird das entsprechende Tag-Objekt erzeugt. Dieses Tag kann wiederum Syntaxobjekte
78      * beinhalten, so das auch dieses Syntaxobjekte erzeugen muessen, die dann
79      * die Kinder des zuvorigen Syntaxobjektes bilden. Zu jedem Syntaxobjekt werden
80      * der zugehoerige Text gespeichert.
81      * Hierdurch wird eine rekursive Datenstruktur aufgebaut, welche es ermoeglicht,
82      * ein Template exakt in einer Objekthierachie wiederzuspiegeln.
83      *
84      * DIE PATTERN:
85      * patPreTag = "TK_";
86      * String patRefTag = "(SRC|HREF|ACTION|BACKGROUND)";
87      * patCopyRight = compiler.compile( "<HTML>", Perl5Compiler.CASE_INSENSITIVE_MASK );
88      * patBaseURL = compiler.compile(" "+patRefTag+"\\s*\\=\\s*\"(?!(/|#|\\w+?(:|&#58)))", Perl5Compiler.CASE_INSENSITIVE_MASK);
89      * patTKTag = compiler.compile("</?"+patPreTag, Perl5Compiler.CASE_INSENSITIVE_MASK);
90      * patCleanEmpty = compiler.compile("\n\\s*\n");
91      *
92      *
93      * @param PatternMatcherInput matcherInput, ist der umgewandelte
94      * String des Templates als Text
95      */

96      
97      
98     public TKHTMLTemplateSyntax( PatternMatcherInput matcherInput, String JavaDoc source ) throws TKTemplateSyntaxException
99     {
100         super( matcherInput, source );
101     }
102     
103     public TKTag getTag( String JavaDoc tagType, String JavaDoc tagData, PatternMatcherInput matcherInput, boolean hasSubTags )
104         throws TKTemplateSyntaxException
105     {
106         if( tagType.equals(patCheckMarker) ) return new TKCheckTag( this, tagData, hasSubTags );
107         if( tagType.equals(patSelectMarker) ) return new TKSelectTag( this, tagData, hasSubTags );
108         if( tagType.equals(patOptionMarker) ) return new TKOptionTag( this, tagData, hasSubTags );
109         return super.getTag( tagType, tagData, matcherInput, hasSubTags );
110     }
111 }//end class
112

113
Popular Tags