KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > scriptengine > core > nodes > NewNode


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  */

30 package com.genimen.djeneric.tools.scriptengine.core.nodes;
31
32 import com.genimen.djeneric.repository.DjExtent;
33 import com.genimen.djeneric.repository.exceptions.DjenericException;
34 import com.genimen.djeneric.repository.exceptions.ObjectNotDefinedException;
35 import com.genimen.djeneric.tools.scriptengine.core.DjScriptParserEngine;
36 import com.genimen.djeneric.tools.scriptengine.core.SimpleNode;
37 import com.genimen.djeneric.tools.scriptengine.core.util.DjScriptCompileTimeScope;
38 import com.genimen.djeneric.tools.scriptengine.core.util.DjScriptExecutionException;
39 import com.genimen.djeneric.tools.scriptengine.core.util.DjScriptExecutionTimeScope;
40
41 public class NewNode extends SimpleNode implements ValueExpression
42 {
43   String JavaDoc _className;
44
45   public NewNode(int i)
46   {
47     super(i);
48   }
49
50   public NewNode(DjScriptParserEngine p, int i)
51   {
52     super(p, i);
53   }
54
55   public String JavaDoc getName()
56   {
57     return toString();
58   }
59
60   public String JavaDoc toString()
61   {
62     return _className;
63   }
64
65   public Object JavaDoc getValue(DjScriptExecutionTimeScope context) throws DjScriptExecutionException
66   {
67     try
68     {
69       DjExtent extent = context.getPersistenceManager().getExtent(getClassName());
70       return context.getSession().createObject(extent);
71     }
72     catch (DjenericException e)
73     {
74       throw new DjScriptExecutionException(e, this);
75     }
76   }
77
78   public String JavaDoc getClassName()
79   {
80     return _className;
81   }
82
83   public void setClassName(String JavaDoc string)
84   {
85     _className = string;
86   }
87
88   public String JavaDoc getValidatedTypeName(DjScriptCompileTimeScope context) throws DjScriptExecutionException
89   {
90     try
91     {
92       return context.getPersistenceManager().getExtentByObjectType(_className).getQualifiedObjectType();
93     }
94     catch (ObjectNotDefinedException e)
95     {
96       throw new DjScriptExecutionException(e, this);
97     }
98   }
99
100   public void validateScript(DjScriptCompileTimeScope ctxt) throws DjScriptExecutionException
101   {
102     getValidatedTypeName(ctxt);
103   }
104
105 }
Popular Tags