KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > webservices > adminapi > sdk > WeblogEntrySet


1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. The ASF licenses this file to You
4 * under the Apache License, Version 2.0 (the "License"); you may not
5 * 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. For additional information regarding
15 * copyright in this work, please see the NOTICE file in the top level
16 * directory of this distribution.
17 */

18 /*
19  * WeblogEntrySet.java
20  *
21  * Created on January 17, 2006, 12:44 PM
22  */

23
24 package org.apache.roller.webservices.adminapi.sdk;
25
26 import java.io.IOException JavaDoc;
27 import java.io.InputStream JavaDoc;
28 import java.util.ArrayList JavaDoc;
29 import java.util.Iterator JavaDoc;
30 import java.util.List JavaDoc;
31 import org.jdom.Document;
32 import org.jdom.Element;
33 import org.jdom.JDOMException;
34 import org.jdom.input.SAXBuilder;
35 import org.apache.roller.webservices.adminapi.sdk.EntrySet.Types;
36
37 /**
38  * This class describes a set of weblog entries.
39  * @author jtb
40  */

41 public class WeblogEntrySet extends EntrySet {
42     static interface Tags {
43         public static final String JavaDoc WEBLOGS = "weblogs";
44     }
45     
46     public WeblogEntrySet(String JavaDoc urlPrefix) {
47         setHref(urlPrefix + "/" + Types.WEBLOGS);
48     }
49     
50     public WeblogEntrySet(Document d, String JavaDoc urlPrefix) throws MissingElementException, UnexpectedRootElementException {
51         populate(d, urlPrefix);
52     }
53     
54     public WeblogEntrySet(InputStream JavaDoc stream, String JavaDoc urlPrefix) throws JDOMException, IOException JavaDoc, MissingElementException, UnexpectedRootElementException {
55         SAXBuilder sb = new SAXBuilder();
56         Document d = sb.build(stream);
57
58         populate(d, urlPrefix);
59     }
60     
61     private void populate(Document d, String JavaDoc urlPrefix) throws MissingElementException, UnexpectedRootElementException {
62         Element root = d.getRootElement();
63         String JavaDoc rootName = root.getName();
64         if (!rootName.equals(Tags.WEBLOGS)) {
65             throw new UnexpectedRootElementException("ERROR: Unexpected root element", Tags.WEBLOGS, rootName);
66         }
67         List JavaDoc weblogs = root.getChildren(WeblogEntry.Tags.WEBLOG, Service.NAMESPACE);
68         if (weblogs != null) {
69             List JavaDoc entries = new ArrayList JavaDoc();
70             for (Iterator JavaDoc i = weblogs.iterator(); i.hasNext(); ) {
71                 Element weblog = (Element)i.next();
72                 WeblogEntry entry = new WeblogEntry(weblog, urlPrefix);
73                 entries.add(entry);
74             }
75             setEntries((Entry[])entries.toArray(new Entry[0]));
76         }
77         setHref(urlPrefix + "/" + Types.WEBLOGS);
78     }
79        
80     public String JavaDoc getType() {
81         return Types.WEBLOGS;
82     }
83 }
84
Popular Tags