KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > jxpath > ri > model > TestMixedModelFactory


1 /*
2  * Copyright 1999-2004 The Apache Software Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.jxpath.ri.model;
17
18 import java.util.HashMap JavaDoc;
19 import java.util.Map JavaDoc;
20
21 import org.apache.commons.jxpath.AbstractFactory;
22 import org.apache.commons.jxpath.JXPathContext;
23 import org.apache.commons.jxpath.NestedTestBean;
24 import org.apache.commons.jxpath.Pointer;
25 import org.apache.commons.jxpath.TestBean;
26 import org.apache.commons.jxpath.TestMixedModelBean;
27
28 /**
29  * Test AbstractFactory.
30  *
31  * @author Dmitri Plotnikov
32  * @version $Revision: 1.7 $ $Date: 2004/02/29 14:17:45 $
33  */

34 public class TestMixedModelFactory extends AbstractFactory {
35
36     /**
37      * Create a new instance and put it in the collection on the parent object.
38      * Return <b>false</b> if this factory cannot create the requested object.
39      */

40     public boolean createObject(
41         JXPathContext context,
42         Pointer pointer,
43         Object JavaDoc parent,
44         String JavaDoc name,
45         int index)
46     {
47         if (name.equals("nestedBean")) {
48             ((TestBean) parent).setNestedBean(new NestedTestBean("newName"));
49             return true;
50         }
51         else if (name.equals("beans")) {
52             TestBean bean = (TestBean) parent;
53             if (bean.getBeans() == null || index >= bean.getBeans().length) {
54                 bean.setBeans(new NestedTestBean[index + 1]);
55             }
56             bean.getBeans()[index] = new NestedTestBean("newName");
57             return true;
58         }
59         else if (name.equals("map")) {
60             ((TestBean) parent).setMap(new HashMap JavaDoc());
61             return true;
62         }
63         else if (name.equals("TestKey5")) {
64             TestBean tb = new TestBean();
65             tb.setNestedBean(null);
66             tb.setBeans(null);
67             ((Map JavaDoc) parent).put(name, tb);
68             return true;
69         }
70         else if (name.equals("matrix")) {
71             int[][] matrix = new int[2][];
72             matrix[0] = new int[1];
73             // matrix[1] = new int[2];
74
((TestMixedModelBean) parent).setMatrix(matrix);
75             return true;
76         }
77         return false;
78     }
79
80     public boolean declareVariable(JXPathContext context, String JavaDoc name) {
81         return false;
82     }
83 }
84
Popular Tags