Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/openorb/trader/util/HTMLGenerator.java


1   /**
2   * Redistribution and use of this software and associated
3   * documentation ("Software"), with or without modification, are
4   * permitted provided that the following conditions are met:
5   *
6   * 1. Redistributions of source code must retain copyright statements
7   *    and notices.  Redistributions must also contain a copy of this
8   *    document.
9   *
10  * 2. Redistributions in binary form must reproduce the above
11  *    copyright notice, this list of conditions and the following
12  *    disclaimer in the documentation and/or other materials provided
13  *    with the distribution.
14  *
15  * 3. The name "Exolab" must not be used to endorse or promote
16  *    products derived from this Software without prior written
17  *    permission of Intalio Inc.  For written permission, please
18  *    contact info@exolab.org.
19  *
20  * 4. Products derived from this Software may not be called "Exolab"
21  *    nor may "Exolab" appear in their names without prior written
22  *    permission of Intalio Inc. Exolab is a registered trademark of
23  *    Intalio Inc.
24  *
25  * 5. Due credit should be given to the Exolab Project
26  *    (http://www.exolab.org/).
27  *
28  * THIS SOFTWARE IS PROVIDED BY INTALIO AND CONTRIBUTORS ``AS IS'' AND
29  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
30  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
31  * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL INTALIO OR
32  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
34  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
35  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
36  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
37  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
38  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39  * SUCH DAMAGE.
40  *
41  * Copyright 2000 (C) Intalio Inc. All Rights Reserved.
42  *
43  * $Id: HTMLGenerator.java,v 1.2 2002/01/15 12:05:54 jews Exp $
44  *
45  * Date         Author  Changes
46  */
47  
48  package org.openorb.trader.util;
49  
50  /**
51   * This class extracts an ServiceType description and returns it as an HTML page.
52   * 
53   * @author <a href="mailto:jdaniel@intalio.com">Jerome Daniel &lt;daniel@intalio.com&gt;</a>
54   */
55  
56  public class HTMLGenerator
57  {
58      protected String type_as_string( org.omg.CORBA.TypeCode tc )
59      {
60          try
61          {
62              switch ( tc.kind().value() )
63              {
64  
65              case org.omg.CORBA.TCKind._tk_boolean :
66                  return "<font color=RED>boolean</font>";
67  
68              case org.omg.CORBA.TCKind._tk_char :
69                  return "<font color=RED>char</font>";
70  
71              case org.omg.CORBA.TCKind._tk_double :
72                  return "<font color=RED>double</font>";
73  
74              case org.omg.CORBA.TCKind._tk_float :
75                  return "<font color=RED>float</font>";
76  
77              case org.omg.CORBA.TCKind._tk_long :
78                  return "<font color=RED>long</font>";
79  
80              case org.omg.CORBA.TCKind._tk_longdouble :
81                  return "<font color=RED>long double</font>";
82  
83              case org.omg.CORBA.TCKind._tk_longlong :
84                  return "<font color=RED>long long</font>";
85  
86              case org.omg.CORBA.TCKind._tk_objref :
87                  return "<font color=RED>Object</font>";
88  
89              case org.omg.CORBA.TCKind._tk_any :
90                  return "<font color=RED>any</font>";
91  
92              case org.omg.CORBA.TCKind._tk_octet :
93                  return "<font color=RED>octet</font>";
94  
95              case org.omg.CORBA.TCKind._tk_short :
96                  return "<font color=RED>short</font>";
97  
98              case org.omg.CORBA.TCKind._tk_ulong :
99                  return "<font color=RED>unsigned long</font>";
100 
101             case org.omg.CORBA.TCKind._tk_ulonglong :
102                 return "<font color=RED>unsigned long long</font>";
103 
104             case org.omg.CORBA.TCKind._tk_ushort :
105                 return "<font color=RED>unsigned short</font>";
106 
107             case org.omg.CORBA.TCKind._tk_TypeCode :
108                 return "CORBA::TypeCode";
109 
110             case org.omg.CORBA.TCKind._tk_string :
111 
112                 if ( tc.length() == 0 )
113                     return "<font color=RED>string</font>";
114                 else
115                     return "<font color=RED>string</font>&lt;" + tc.length() + "&rt;";
116 
117             case org.omg.CORBA.TCKind._tk_wstring :
118                 if ( tc.length() == 0 )
119                     return "<font color=RED>wstring</font>";
120                 else
121                     return "<font color=RED>wstring</font>&lt;" + tc.length() + "&rt;";
122 
123             case org.omg.CORBA.TCKind._tk_wchar :
124                 return "<font color=RED>wchar</font>";
125 
126             case org.omg.CORBA.TCKind._tk_sequence :
127                 if ( tc.length() == 0 )
128                     return "<font color=BLUE>sequence</font>&lt;" + type_as_string( tc.content_type() ) + "&rt;";
129                 else
130                     return "<font color=BLUE>sequence</font>&lt;" + tc.length() + ", " + type_as_string( tc.content_type() ) + "&rt;";
131 
132             case org.omg.CORBA.TCKind._tk_alias :
133                 return tc.content_type().name();
134 
135             case org.omg.CORBA.TCKind._tk_array :
136                 return type_as_string( tc.content_type() ) + "[" + tc.length() + "]";
137 
138             case org.omg.CORBA.TCKind._tk_enum :
139 
140             case org.omg.CORBA.TCKind._tk_native :
141 
142             case org.omg.CORBA.TCKind._tk_struct :
143 
144             case org.omg.CORBA.TCKind._tk_union :
145 
146             case org.omg.CORBA.TCKind._tk_value :
147 
148             case org.omg.CORBA.TCKind._tk_value_box :
149                 return tc.name();
150             }
151         }
152         catch ( java.lang.Exception ex )
153         { }
154 
155         return "";
156     }
157 
158     protected String service_to_html( org.omg.CosTradingRepos.ServiceTypeRepositoryPackage.TypeStruct desc, String serviceName, String html )
159     {
160         html = html + "<font color=\"#0000ff\">service</font><b> " + serviceName + "</b>";
161 
162         if ( desc.super_types.length != 0 )
163         {
164             html = html + " : ";
165 
166             for ( int i = 0; i < desc.super_types.length; i++ )
167             {
168                 html = html + "<a href=\"" + desc.super_types[ i ] + "\"><b>" + desc.super_types[ i ] + "</b></a>";
169 
170                 if ( i + 1 < desc.super_types.length )
171                     html = html + ", ";
172             }
173         }
174 
175         html = html + " {<br>";
176 
177         html = html + "<br>&nbsp;&nbsp;&nbsp;&nbsp;" + "<font color=\"#0000ff\">interface</font> " + desc.if_name + ";<br>";
178 
179         for ( int i = 0; i < desc.props.length; i++ )
180         {
181             html = html + "<br>&nbsp;&nbsp;&nbsp;&nbsp;";
182 
183             if ( ( desc.props[ i ].mode.value() == org.omg.CosTradingRepos.ServiceTypeRepositoryPackage.PropertyMode._PROP_MANDATORY_READONLY ) ||
184                     ( desc.props[ i ].mode.value() == org.omg.CosTradingRepos.ServiceTypeRepositoryPackage.PropertyMode._PROP_MANDATORY ) )
185                 html = html + "<font color=\"#fa6400\">mandatory</font> ";
186 
187             if ( ( desc.props[ i ].mode.value() == org.omg.CosTradingRepos.ServiceTypeRepositoryPackage.PropertyMode._PROP_READONLY ) ||
188                     ( desc.props[ i ].mode.value() == org.omg.CosTradingRepos.ServiceTypeRepositoryPackage.PropertyMode._PROP_MANDATORY_READONLY ) )
189                 html = html + "<font color=\"#fa6400\">readonly</font> ";
190 
191             html = html + "<font color=\"#0000ff\">property</font> " + type_as_string( desc.props[ i ].value_type ) + " " + desc.props[ i ].name + ";";
192         }
193 
194         html = html + "<br>}";
195 
196         return html;
197     }
198 
199     public String translate_to_HTML( String serviceName, org.omg.CosTrading.Lookup lookup )
200     {
201         org.omg.CosTradingRepos.ServiceTypeRepository repository = org.omg.CosTradingRepos.ServiceTypeRepositoryHelper.narrow( lookup.type_repos() );
202 
203         org.omg.CosTradingRepos.ServiceTypeRepositoryPackage.TypeStruct desc = null;
204 
205         try
206         {
207             desc = repository.describe_type( serviceName );
208         }
209         catch ( java.lang.Exception ex )
210         {
211             return null;
212         }
213 
214         String html = "<html><body><font size=\"2\">";
215 
216         html = service_to_html( desc, serviceName, html );
217 
218         return html + "</font></body></html>";
219     }
220 }