KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openlaszlo > iv > flash > commands > GenericXMLCommand


1 /*
2  * $Id: GenericXMLCommand.java,v 1.3 2002/02/24 02:10:19 skavish Exp $
3  *
4  * ===========================================================================
5  *
6  * The JGenerator Software License, Version 1.0
7  *
8  * Copyright (c) 2000 Dmitry Skavish (skavish@usa.net). All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution, if
22  * any, must include the following acknowlegement:
23  * "This product includes software developed by Dmitry Skavish
24  * (skavish@usa.net, http://www.flashgap.com/)."
25  * Alternately, this acknowlegement may appear in the software itself,
26  * if and wherever such third-party acknowlegements normally appear.
27  *
28  * 4. The name "The JGenerator" must not be used to endorse or promote
29  * products derived from this software without prior written permission.
30  * For written permission, please contact skavish@usa.net.
31  *
32  * 5. Products derived from this software may not be called "The JGenerator"
33  * nor may "The JGenerator" appear in their names without prior written
34  * permission of Dmitry Skavish.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL DMITRY SKAVISH OR THE OTHER
40  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  *
49  */

50
51 package org.openlaszlo.iv.flash.commands;
52
53 import org.openlaszlo.iv.flash.parser.*;
54 import org.openlaszlo.iv.flash.api.*;
55 import org.openlaszlo.iv.flash.util.*;
56
57 import org.openlaszlo.iv.flash.context.*;
58
59 import java.io.*;
60 import java.util.*;
61
62 /**
63  * Base class for most XML commands
64  */

65
66 public class GenericXMLCommand extends GenericCommand {
67
68     protected String JavaDoc datasource;
69     protected String JavaDoc select;
70
71     /**
72      * Init common parameters of xml based commands
73      */

74     protected void initParms( Context context ) throws IVException {
75         datasource = getParameter( context, "datasource" );
76         select = getParameter( context, "select" );
77     }
78
79     /**
80      * Retrieve nearest parent GraphContext from contexts' stack
81      *
82      * @param context context to start searching from
83      * @return found GraphContext or null
84      */

85
86     protected GraphContext retrieveGraphContext( Context context )
87     {
88         while ( context != null && ! ( context instanceof GraphContext ) )
89         {
90             context = context.getParent();
91         }
92
93         return ( GraphContext ) context;
94     }
95
96     /**
97      * Return GraphContext for this command, either by creating one from datasource parameter
98      * or returning nearest parent GraphContext or null
99      *
100      *
101      *
102      * @param file current FlashFile
103      * @param context current context for this command
104      * @return GraphContext for the command or null
105      */

106
107     protected GraphContext getGraphContext( FlashFile file, Context context ) throws IVException
108     {
109         if ( datasource != null )
110         {
111             try
112             {
113                 return ( GraphContext )
114                     ContextFactory.createContext( context, datasource, file, false );
115             }
116             catch( Exception JavaDoc e )
117             {
118                 throw new IVException(Resource.ERRDATAREAD, new Object JavaDoc[] {datasource, getCommandName()}, e);
119             }
120         }
121         else
122         {
123             return retrieveGraphContext( context );
124         }
125     }
126
127     /**
128      * Evaluate given Path in given Context and return the result as a String
129      *
130      * @param context Context to evaluate Path in
131      * @param path String which will be executed
132      * @param def default value returned in case of any errors
133      * @return result as a string
134      */

135
136     protected String JavaDoc evalStringParameter ( Context context, String JavaDoc path, String JavaDoc def )
137     {
138         String JavaDoc rval = context.getValue ( path );
139
140         if ( rval == null )
141         {
142             return def;
143         }
144         else
145         {
146             return rval;
147         }
148     }
149
150     /**
151      * Evaluate given Path in given Context and return the result as a boolean
152      *
153      * @param context Context to evaluate Path in
154      * @param path Path which will be executed
155      * @param def default value returned in case of any errors
156      * @return result as boolean
157      */

158
159     protected boolean evalBoolParameter ( Context context, String JavaDoc path, boolean def )
160     {
161         return Util.toBool( context.getValue( path ), def );
162     }
163
164     /**
165      * Evaluate given Path in given Context and return the result as a int
166      *
167      * @param context Context to evaluate Path in
168      * @param path Path which will be executed
169      * @param def default value returned in case of any errors
170      * @return result as a int
171      */

172
173     protected int evalIntParameter( Context context, String JavaDoc path, int def )
174     {
175         return Util.toInt( context.getValue( path ), def );
176     }
177
178     /**
179      * Evaluate given Path in given Context and return the result as a double
180      *
181      * @param context Context to evaluate Path in
182      * @param path Path which will be executed
183      * @param def default value returned in case of any errors
184      * @return result as a double
185      */

186     protected double evalDoubleParameter( Context context, String JavaDoc path, double def )
187     {
188         return Util.toDouble( context.getValue( path ), def );
189     }
190 }
191
192
Popular Tags