KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > lib > templates > TKValueTag


1 package com.teamkonzept.lib.templates;
2
3 import java.util.*;
4
5 import com.teamkonzept.lib.*;
6
7 /**
8  * @author $Author: alex $
9  * @version $Revision: 1.10 $
10 */

11 public abstract class TKValueTag extends TKLabelTag {
12     String JavaDoc value = null;
13     String JavaDoc name = null;
14
15     /**
16      * Konstruktor 1
17      * Ein Syntaxbaum fuer ein Template wird erzeugt.
18      * Das aktuelle Tag besitzt ein Attribut, welches gesetzt wird.
19      *
20      * @param String def, Name des Tags
21      * @param boolean hasSubTags
22      */

23     public TKValueTag( TKTemplateSyntax parent, String JavaDoc def, boolean hasSubTags ) throws TKTemplateSyntaxException
24     {
25         super( parent, def, hasSubTags );
26         if( !hasSubTags ) {
27             value = getValue( null );
28             name = getName( null );
29         }
30     }
31
32     /**
33      *
34      * @param TKTemplateData td
35      */

36     public String JavaDoc getValue( TKTemplateData td ) throws TKTemplateSyntaxException
37     {
38         if( value != null ) return value;
39         String JavaDoc wert = getRealLabel( td );
40         int index = wert.indexOf('=');
41         return ((index != -1 && (index + 1) < wert.length()) ? wert.substring(index + 1, wert.length()) : "");
42     }
43
44     /**
45      *
46      * @param TKTemplateData td
47      */

48     public String JavaDoc getName( TKTemplateData td ) throws TKTemplateSyntaxException
49     {
50         if( name != null ) return name;
51         StringTokenizer st = new StringTokenizer( getLabel( td ), "=" );
52         return st.nextToken();
53     }
54
55     /**
56         %%die toString() durch expandVariable() ersetzen !
57     */

58     public boolean matches( TKTemplateData td ) throws TKTemplateSyntaxException
59     {
60         Object JavaDoc val = td.getVariable( getName( td ) );
61         if( val == null ) return false;
62         
63         String JavaDoc tagVal = getValue( td );
64         
65         boolean matches = false;
66         if( val instanceof TKVector ) {
67             Enumeration e = ((TKVector)val).elements();
68             while( !matches && e.hasMoreElements() ) {
69                 matches = e.nextElement().toString().equalsIgnoreCase( tagVal );
70             }
71         }
72         else {
73             matches = val.toString().equalsIgnoreCase( tagVal );
74         }
75         return matches;
76     }
77 }
78
79
Popular Tags