KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > bridge > jsp > taglib > WriterTEI


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.bridge.jsp.taglib;
11
12 import javax.servlet.jsp.tagext.VariableInfo JavaDoc;
13 import javax.servlet.jsp.tagext.TagData JavaDoc;
14 import javax.servlet.jsp.tagext.TagExtraInfo JavaDoc;
15
16
17 /**
18  * Writer tags can also produce a jsp variable, for use in the
19  * body. This is the TEI class which is needed for that.
20  *
21  * @author Michiel Meeuwissen
22  * @version $Id: WriterTEI.java,v 1.12 2005/08/25 12:33:18 michiel Exp $
23  */

24
25 public class WriterTEI extends TagExtraInfo JavaDoc {
26     
27     protected int scope() {
28         return VariableInfo.NESTED;
29     }
30     protected String JavaDoc defaultType() {
31         return "object";
32     }
33
34     /**
35      * @since MMBase-1.7
36      */

37     protected String JavaDoc getType(String JavaDoc typeAttribute) {
38         String JavaDoc type;
39         switch (WriterHelper.stringToType(typeAttribute)) {
40         case WriterHelper.TYPE_OBJECT:
41             type = Object JavaDoc.class.getName(); break;
42         case WriterHelper.TYPE_STRING:
43             type = String JavaDoc.class.getName(); break;
44         case WriterHelper.TYPE_CHARSEQUENCE:
45             type = CharSequence JavaDoc.class.getName(); break;
46         case WriterHelper.TYPE_NODE:
47             type = org.mmbase.bridge.Node.class.getName(); break;
48         case WriterHelper.TYPE_CLOUD:
49             type = org.mmbase.bridge.Cloud.class.getName(); break;
50         case WriterHelper.TYPE_TRANSACTION:
51             type = org.mmbase.bridge.Transaction.class.getName(); break;
52         case WriterHelper.TYPE_DECIMAL:
53             type = java.math.BigDecimal JavaDoc.class.getName(); break;
54         case WriterHelper.TYPE_INTEGER:
55             type = Integer JavaDoc.class.getName(); break;
56         case WriterHelper.TYPE_DOUBLE:
57             type = Double JavaDoc.class.getName(); break;
58         case WriterHelper.TYPE_FLOAT:
59             type = Float JavaDoc.class.getName(); break;
60         case WriterHelper.TYPE_LONG:
61             type = Long JavaDoc.class.getName(); break;
62         case WriterHelper.TYPE_VECTOR:// deprecated
63
type = java.util.Vector JavaDoc.class.getName(); break;
64         case WriterHelper.TYPE_LIST:
65             type = java.util.List JavaDoc.class.getName(); break;
66         case WriterHelper.TYPE_DATE:
67             type = java.util.Date JavaDoc.class.getName(); break;
68         case WriterHelper.TYPE_FIELD:
69             type = org.mmbase.bridge.Field.class.getName(); break;
70         case WriterHelper.TYPE_FIELDVALUE:
71             type = org.mmbase.bridge.FieldValue.class.getName(); break;
72         case WriterHelper.TYPE_BOOLEAN:
73             type = Boolean JavaDoc.class.getName(); break;
74         case WriterHelper.TYPE_BYTES:
75             type = "byte[]"; break;
76             // this doesn't work like this...
77
// How it does??
78

79             //Class.forName("[B").getName(); break;
80
case WriterHelper.TYPE_FILEITEM:
81             type = org.apache.commons.fileupload.FileItem.class.getName();
82             break;
83         default:
84             //type = "java.lang.Object";
85
throw new RuntimeException JavaDoc("Unknown type '" + typeAttribute + "'");
86         }
87         return type;
88    
89     }
90
91     public VariableInfo JavaDoc[] getVariableInfo(TagData JavaDoc data) {
92         VariableInfo JavaDoc[] variableInfo = null;
93
94         String JavaDoc jspvarAttribute = (String JavaDoc) data.getAttribute("jspvar");
95
96         if (jspvarAttribute != null) {
97             variableInfo = new VariableInfo JavaDoc[1];
98             
99             String JavaDoc typeAttribute = (String JavaDoc) data.getAttribute("vartype");
100             if (typeAttribute == null) typeAttribute = defaultType();
101             String JavaDoc type = getType(typeAttribute);
102                         
103             variableInfo[0] = new VariableInfo JavaDoc(jspvarAttribute,
104                                                 type,
105                                                 true,
106                                                 scope());
107         }
108         return variableInfo;
109     }
110 }
111
Popular Tags