01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19:
20: package org.netbeans.modules.xslt.mapper.model.nodes;
21:
22: import org.netbeans.modules.xml.axi.AXIComponent;
23: import org.netbeans.modules.xml.xpath.XPathExpression;
24: import org.netbeans.modules.xml.xpath.XPathOperationOrFuntion;
25: import org.netbeans.modules.xslt.mapper.model.PredicatedAxiComponent;
26: import org.netbeans.modules.xslt.mapper.model.targettree.AttributeDeclarationNode;
27: import org.netbeans.modules.xslt.mapper.model.targettree.ElementDeclarationNode;
28: import org.netbeans.modules.xslt.mapper.model.targettree.PredicatedSchemaNode;
29: import org.netbeans.modules.xslt.mapper.model.targettree.RuleNode;
30: import org.netbeans.modules.xslt.mapper.model.targettree.SchemaNode;
31: import org.netbeans.modules.xslt.mapper.model.targettree.TemplateNode;
32: import org.netbeans.modules.xslt.mapper.view.XsltMapper;
33: import org.netbeans.modules.xslt.model.Attribute;
34: import org.netbeans.modules.xslt.model.Element;
35: import org.netbeans.modules.xslt.model.LiteralResultElement;
36: import org.netbeans.modules.xslt.model.Template;
37: import org.netbeans.modules.xslt.model.XslComponent;
38:
39: /**
40: *
41: * @author radval
42: *
43: */
44: public class NodeFactory {
45:
46: public static Node createNode(Object obj, XsltMapper mapper) {
47: if (obj instanceof AXIComponent) {
48: return new SchemaNode((AXIComponent) obj, mapper);
49: } else if (obj instanceof PredicatedAxiComponent) {
50: return new PredicatedSchemaNode(
51: (PredicatedAxiComponent) obj, mapper);
52: } else if (obj instanceof Element
53: || obj instanceof LiteralResultElement) {
54: return new ElementDeclarationNode((XslComponent) obj,
55: mapper);
56: } else if (obj instanceof Attribute) {
57: return new AttributeDeclarationNode((XslComponent) obj,
58: mapper);
59: } else if (obj instanceof Template) {
60: return new TemplateNode((XslComponent) obj, mapper);
61: } else if (obj instanceof XslComponent) {
62: return new RuleNode((XslComponent) obj, mapper);
63: } else if (obj instanceof XPathOperationOrFuntion) {
64: return new OperationOrFunctionCanvasNode(
65: (XPathExpression) obj, mapper);
66: } else if (obj instanceof XPathExpression) {
67: return new LiteralCanvasNode((XPathExpression) obj, mapper);
68: }
69: return null;
70: }
71:
72: }
|