KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > retriever > catalog > model > impl > CatalogComponentFactoryImpl


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * 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-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.xml.retriever.catalog.model.impl;
20
21 import java.util.List JavaDoc;
22 import org.netbeans.modules.xml.retriever.catalog.model.CatalogQNames;
23 import org.netbeans.modules.xml.retriever.catalog.model.NextCatalog;
24 import org.netbeans.modules.xml.xam.dom.AbstractDocumentComponent;
25 import org.netbeans.modules.xml.retriever.catalog.model.Catalog;
26 import org.netbeans.modules.xml.retriever.catalog.model.CatalogComponent;
27 import org.netbeans.modules.xml.retriever.catalog.model.CatalogComponentFactory;
28 import org.netbeans.modules.xml.retriever.catalog.model.CatalogVisitor;
29 import org.netbeans.modules.xml.retriever.catalog.model.Catalog;
30 import org.w3c.dom.Element JavaDoc;
31
32 public class CatalogComponentFactoryImpl implements CatalogComponentFactory {
33     private CatalogModelImpl model;
34     
35     public CatalogComponentFactoryImpl(CatalogModelImpl model) {
36         this.model = model;
37     }
38     
39     public CatalogComponent create(Element JavaDoc element, CatalogComponent context) {
40         if (context == null) {
41             if (areSameQName(CatalogQNames.CATALOG, element)) {
42                 return new CatalogImpl(model, element);
43             } else {
44                 return null;
45             }
46         } else {
47             return new CreateVisitor().create(element, context);
48         }
49     }
50     
51     
52     public NextCatalog createNextCatalog() {
53         return new NextCatalogImpl(model);
54     }
55     
56     public org.netbeans.modules.xml.retriever.catalog.model.System createSystem() {
57         return new SystemImpl(model);
58     }
59     
60     public Catalog createCatalog() {
61         return new CatalogImpl(model);
62     }
63     
64     public static boolean areSameQName(CatalogQNames q, Element JavaDoc e) {
65         return q.getQName().equals(AbstractDocumentComponent.getQName(e));
66     }
67     
68     public static class CreateVisitor extends CatalogVisitor.Default {
69         Element JavaDoc element;
70         CatalogComponent created;
71         
72         CatalogComponent create(Element JavaDoc element, CatalogComponent context) {
73             this.element = element;
74             context.accept(this);
75             return created;
76         }
77         
78         private boolean isElementQName(CatalogQNames q) {
79             return areSameQName(q, element);
80         }
81         
82         public void visit(Catalog context) {
83             if (isElementQName(CatalogQNames.SYSTEM)) {
84                 created = new SystemImpl((CatalogModelImpl)context.getModel(), element);
85             }
86             if (isElementQName(CatalogQNames.NEXTCATALOG)) {
87                 created = new NextCatalogImpl((CatalogModelImpl)context.getModel(), element);
88             }
89         }
90         
91         public void visit(org.netbeans.modules.xml.retriever.catalog.model.System context) {
92             
93         }
94         
95         public void visit(NextCatalog context) {
96             
97         }
98         
99     }
100 }
101
Popular Tags