01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. The ASF licenses this file to You
04: * under the Apache License, Version 2.0 (the "License"); you may not
05: * use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
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;
27: import java.io.IOException;
28: import java.util.ArrayList;
29: import java.util.Iterator;
30: import java.util.List;
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 MEMBERS = "members";
45: }
46:
47: public MemberEntrySet(String urlPrefix) {
48: setHref(urlPrefix + "/" + Types.MEMBERS);
49: }
50:
51: public MemberEntrySet(Document d, String urlPrefix)
52: throws UnexpectedRootElementException {
53: populate(d, urlPrefix);
54: }
55:
56: public MemberEntrySet(InputStream stream, String urlPrefix)
57: throws JDOMException, IOException,
58: UnexpectedRootElementException {
59: SAXBuilder sb = new SAXBuilder();
60: Document d = sb.build(stream);
61:
62: populate(d, urlPrefix);
63: }
64:
65: private void populate(Document d, String urlPrefix)
66: throws UnexpectedRootElementException {
67: Element root = d.getRootElement();
68: String rootName = root.getName();
69: if (!rootName.equals(Tags.MEMBERS)) {
70: throw new UnexpectedRootElementException(
71: "ERROR: Incorrect root element", Tags.MEMBERS,
72: rootName);
73: }
74: List members = root.getChildren(MemberEntry.Tags.MEMBER,
75: NAMESPACE);
76: if (members != null) {
77: List entries = new ArrayList();
78: for (Iterator i = members.iterator(); i.hasNext();) {
79: Element member = (Element) i.next();
80: MemberEntry entry = new MemberEntry(member, urlPrefix);
81: entries.add(entry);
82: }
83: setEntries((Entry[]) entries.toArray(new Entry[0]));
84: }
85: setHref(urlPrefix + "/" + Types.MEMBERS);
86: }
87:
88: public String getType() {
89: return Types.MEMBERS;
90: }
91: }
|