KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > cdmodule > CDConvertor


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
20 package org.cdmodule;
21
22 import org.netbeans.spi.convertor.Convertor;
23 import org.w3c.dom.*;
24
25
26 /**
27  *
28  * @author David Konecny
29  */

30 public class CDConvertor implements Convertor {
31
32     private static final String JavaDoc NAMESPACE = "http://www.netbeans.org/ns/cd2";
33
34     public CDConvertor() {
35     }
36
37     public Object JavaDoc read(org.w3c.dom.Element JavaDoc element) {
38         String JavaDoc artist = null;
39         String JavaDoc album = null;
40         NodeList nodes = element.getChildNodes();
41         for (int i = 0; i < nodes.getLength(); i++) {
42             Node node = nodes.item(i);
43             if (node.getNodeType() == Node.ELEMENT_NODE) {
44                 Element e = (Element)node;
45                 if (e.getNodeName().equals("artist")) {
46                     artist = getTextValue(e);
47                 }
48                 if (e.getNodeName().equals("album")) {
49                     album = getTextValue(e);
50                 }
51             }
52         }
53         return new CD(artist, album);
54     }
55     
56     public org.w3c.dom.Element JavaDoc write(Document doc, Object JavaDoc inst) {
57         CD cd = (CD)inst;
58         Element element = doc.createElementNS(NAMESPACE, "cd");
59         
60         Element e = doc.createElementNS(NAMESPACE, "artist");
61         Text t = doc.createTextNode(cd.artist);
62         e.appendChild(t);
63         element.appendChild(e);
64         
65         e = doc.createElementNS(NAMESPACE, "album");
66         t = doc.createTextNode(cd.album);
67         e.appendChild(t);
68         element.appendChild(e);
69         
70         return element;
71     }
72
73     // THIS IMPL IS NOT ROBUST. DO NOT REUSE IT!
74
private String JavaDoc getTextValue(Element element) {
75         NodeList nodes = element.getChildNodes();
76         for (int i = 0; i < nodes.getLength(); i++) {
77             Node node = nodes.item(i);
78             if (node.getNodeType() == Node.TEXT_NODE) {
79                 return ((Text)node).getData();
80             }
81         }
82         return null;
83     }
84     
85 }
86
Popular Tags