KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > scriptengine > core > util > VariableStack


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, is permitted provided that the following conditions are met: -
6  * Redistributions of source code must retain the above copyright notice, this
7  * list of conditions and the following disclaimer. - Redistributions in binary
8  * form must reproduce the above copyright notice, this list of conditions and
9  * the following disclaimer in the documentation and/or other materials
10  * provided with the distribution. - All advertising materials mentioning
11  * features or use of this software must display the following acknowledgment:
12  * "This product includes Djeneric." - Products derived from this software may
13  * not be called "Djeneric" nor may "Djeneric" appear in their names without
14  * prior written permission of Genimen BV. - Redistributions of any form
15  * whatsoever must retain the following acknowledgment: "This product includes
16  * Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG, OR CONTRIBUTORS
22  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
package com.genimen.djeneric.tools.scriptengine.core.util;
30
31 import java.util.HashMap JavaDoc;
32 import java.util.Stack JavaDoc;
33
34 public class VariableStack extends Stack JavaDoc
35 {
36   private static final long serialVersionUID = 1L;
37
38   public VariableStack()
39   {
40   }
41
42   public Variable push(String JavaDoc name, Object JavaDoc obj)
43   {
44     return (Variable) push(new Variable(name, obj));
45   }
46
47   public Variable getContextObject(int i)
48   {
49     return (Variable) get(i);
50   }
51
52   public Object JavaDoc getValue(String JavaDoc name)
53   {
54     for (int i = size() - 1; i >= 0; i--)
55     {
56       Variable obj = getContextObject(i);
57       if (obj.getName().equals(name)) return obj.getObject();
58     }
59     return null;
60   }
61
62   public Variable getVariable(String JavaDoc name)
63   {
64     for (int i = size() - 1; i >= 0; i--)
65     {
66       Variable obj = getContextObject(i);
67       if (obj.getName().equals(name)) return obj;
68     }
69     return null;
70   }
71
72   public HashMap JavaDoc getVariableTypes()
73   {
74     HashMap JavaDoc result = new HashMap JavaDoc();
75     for (int i = 0; i < size(); i++)
76     {
77       Variable obj = getContextObject(i);
78       result.put(obj.getName(), obj.getTypeName());
79     }
80     return result;
81   }
82 }
Popular Tags