KickJava   Java API By Example, From Geeks To Geeks.

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


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.InputStream JavaDoc;
27 import java.io.IOException 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 member entries.
39  *
40  * @author jtb
41  */

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