KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > outerj > daisy > books > publisher > impl > dataretrieval > DependencyCollector


1 /*
2  * Copyright 2004 Outerthought bvba and Schaubroeck nv
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.outerj.daisy.books.publisher.impl.dataretrieval;
17
18 import org.xml.sax.ContentHandler JavaDoc;
19 import org.xml.sax.Attributes JavaDoc;
20 import org.xml.sax.SAXException JavaDoc;
21 import org.xml.sax.Locator JavaDoc;
22 import org.outerj.daisy.util.Constants;
23 import org.outerj.daisy.books.publisher.impl.VersionKey;
24 import org.outerj.daisy.books.publisher.impl.dataretrieval.BookDependencies;
25
26 /**
27  * A contentHandler that records the passing <d:document> elements as book
28  * dependencies.
29  */

30 public class DependencyCollector implements ContentHandler JavaDoc {
31     private BookDependencies bookDependencies;
32     private ContentHandler JavaDoc consumer;
33
34     public DependencyCollector(BookDependencies bookDependencies, ContentHandler JavaDoc consumer) {
35         this.bookDependencies = bookDependencies;
36         this.consumer = consumer;
37     }
38
39     public void startElement(String JavaDoc namespaceURI, String JavaDoc localName, String JavaDoc qName, Attributes JavaDoc atts) throws SAXException JavaDoc {
40         if (namespaceURI.equals(Constants.DAISY_NAMESPACE) && localName.equals("document")) {
41             long documentId = Long.parseLong(atts.getValue("id"));
42             long branchId = Long.parseLong(atts.getValue("branchId"));
43             long languageId = Long.parseLong(atts.getValue("languageId"));
44             long versionId = Long.parseLong(atts.getValue("dataVersionId"));
45             VersionKey key = new VersionKey(documentId, branchId, languageId, versionId);
46             bookDependencies.addDependency(key);
47         }
48         consumer.startElement(namespaceURI, localName, qName, atts);
49     }
50
51     public void endDocument() throws SAXException JavaDoc {
52         consumer.endDocument();
53     }
54
55     public void startDocument() throws SAXException JavaDoc {
56         consumer.startDocument();
57     }
58
59     public void characters(char ch[], int start, int length) throws SAXException JavaDoc {
60         consumer.characters(ch, start, length);
61     }
62
63     public void ignorableWhitespace(char ch[], int start, int length) throws SAXException JavaDoc {
64         consumer.ignorableWhitespace(ch, start, length);
65     }
66
67     public void endPrefixMapping(String JavaDoc prefix) throws SAXException JavaDoc {
68         consumer.endPrefixMapping(prefix);
69     }
70
71     public void skippedEntity(String JavaDoc name) throws SAXException JavaDoc {
72         consumer.skippedEntity(name);
73     }
74
75     public void setDocumentLocator(Locator JavaDoc locator) {
76         consumer.setDocumentLocator(locator);
77     }
78
79     public void processingInstruction(String JavaDoc target, String JavaDoc data) throws SAXException JavaDoc {
80         consumer.processingInstruction(target, data);
81     }
82
83     public void startPrefixMapping(String JavaDoc prefix, String JavaDoc uri) throws SAXException JavaDoc {
84         consumer.startPrefixMapping(prefix, uri);
85     }
86
87     public void endElement(String JavaDoc namespaceURI, String JavaDoc localName, String JavaDoc qName) throws SAXException JavaDoc {
88         consumer.endElement(namespaceURI, localName, qName);
89     }
90 }
91
Popular Tags