File Source: MemberEntry.java
/*
P/P * Method: org.apache.roller.weblogger.webservices.adminprotocol.sdk.MemberEntry__static_init
*/
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 package org.apache.roller.weblogger.webservices.adminprotocol.sdk;
20
21 import java.io.InputStream;
22 import java.io.IOException;
23 import org.jdom.Document;
24 import org.jdom.Element;
25 import org.jdom.Text;
26 import org.jdom.input.SAXBuilder;
27 import org.jdom.JDOMException;
28 import org.apache.roller.weblogger.webservices.adminprotocol.sdk.Entry.Attributes;
29 import org.apache.roller.weblogger.webservices.adminprotocol.sdk.Entry.Types;
30
31 /**
32 * This class describes a member entry.
33 * A member entry is a triple consisting of a user name, a weblog handle,
34 * and a permission.
35 */
36 public class MemberEntry extends Entry {
37 /** Member permissions */
38 public interface Permissions {
39 public static final String ADMIN = "ADMIN";
40 public static final String AUTHOR = "AUTHOR";
41 public static final String LIMITED = "LIMITED";
42 }
43
44 static interface Tags {
45 public static final String MEMBER = "member";
46 public static final String NAME = "name";
47 public static final String HANDLE = "handle";
48 public static final String PERMISSION = "permission";
49 }
50
51 private String name;
52 private String handle;
53 private String permission;
54
/*
P/P * Method: void org.apache.roller.weblogger.webservices.adminprotocol.sdk.MemberEntry(Element, String)
*
* Preconditions:
* e != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* init'ed(this.handle)
* this.href == &java.lang.StringBuilder:toString(...)
* init'ed(this.name)
* possibly_updated(this.permission)
*/
55 public MemberEntry(Element e, String urlPrefix) {
56 populate(e, urlPrefix);
57 }
58
/*
P/P * Method: void org.apache.roller.weblogger.webservices.adminprotocol.sdk.MemberEntry(String, String, String)
*
* Postconditions:
* java.lang.StringBuilder:toString(...)._tainted == userName._tainted | urlPrefix._tainted | handle._tainted
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* this.handle == handle
* init'ed(this.handle)
* this.href == &java.lang.StringBuilder:toString(...)
* this.name == userName
* init'ed(this.name)
*/
59 public MemberEntry(String handle, String userName, String urlPrefix) {
60 String href = urlPrefix + "/" + EntrySet.Types.MEMBERS + "/" + handle + "/" + userName;
61 setHref(href);
62 setHandle(handle);
63 setName(userName);
64 }
65
/*
P/P * Method: void org.apache.roller.weblogger.webservices.adminprotocol.sdk.MemberEntry(InputStream, String)
*
* Presumptions:
* org.jdom.Document:detachRootElement(...)@69 != null
* org.jdom.input.SAXBuilder:build(...)@68 != null
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* init'ed(this.handle)
* this.href == &java.lang.StringBuilder:toString(...)
* init'ed(this.name)
* possibly_updated(this.permission)
*/
66 public MemberEntry(InputStream stream, String urlPrefix) throws JDOMException, IOException {
67 SAXBuilder sb = new SAXBuilder();
68 Document d = sb.build(stream);
69 Element e = d.detachRootElement();
70
71 populate(e, urlPrefix);
72 }
73
74 private void populate(Element e, String urlPrefix) {
75 // all required
76
77 // name
/*
P/P * Method: void populate(Element, String)
*
* Preconditions:
* e != null
* (soft) init'ed(this.handle)
* (soft) init'ed(this.name)
*
* Postconditions:
* init'ed(java.lang.StringBuilder:toString(...)._tainted)
* init'ed(this.handle)
* this.href == &java.lang.StringBuilder:toString(...)
* init'ed(this.name)
* possibly_updated(this.permission)
*
* Test Vectors:
* org.jdom.Element:getChild(...)@78: Addr_Set{null}, Inverse{null}
* org.jdom.Element:getChild(...)@84: Addr_Set{null}, Inverse{null}
* org.jdom.Element:getChild(...)@93: Addr_Set{null}, Inverse{null}
*/
78 Element nameElement = e.getChild(Tags.NAME, NAMESPACE);
79 if (nameElement != null) {
80 setName(nameElement.getText());
81 }
82
83 // handle
84 Element handleElement = e.getChild(Tags.HANDLE, NAMESPACE);
85 if (handleElement != null) {
86 setHandle(handleElement.getText());
87 }
88
89 // href
90 setHref(urlPrefix + "/" + EntrySet.Types.MEMBERS + "/" + getHandle() + "/" + getName());
91
92 // permission
93 Element permissionElement = e.getChild(Tags.PERMISSION, NAMESPACE);
94 if (permissionElement != null) {
95 setPermission(permissionElement.getText());
96 }
97 }
98
99 public String getType() {
/*
P/P * Method: String getType()
*
* Postconditions:
* return_value == &"member"
*/
100 return Types.MEMBER;
101 }
102
103 public Document toDocument() {
/*
P/P * Method: Document toDocument()
*
* Preconditions:
* init'ed(this.handle)
* init'ed(this.href)
* init'ed(this.name)
* init'ed(this.permission)
*
* Postconditions:
* return_value == &new Document(toDocument#2)
* new Document(toDocument#2) num objects == 1
*
* Test Vectors:
* this.handle: Addr_Set{null}, Inverse{null}
* this.name: Addr_Set{null}, Inverse{null}
* this.permission: Addr_Set{null}, Inverse{null}
*/
104 Element member = new Element(Tags.MEMBER, NAMESPACE);
105 Document doc = new Document(member);
106
107 // href
108 member.setAttribute(Attributes.HREF, getHref());
109
110 // name
111 String name = getName();
112 if (name != null) {
113 Element nameElement = new Element(Tags.NAME, Service.NAMESPACE);
114 Text nameText = new Text(name);
115 nameElement.addContent(nameText);
116 member.addContent(nameElement);
117 }
118
119 // handle
120 String handle = getHandle();
121 if (handle != null) {
122 Element handleElement = new Element(Tags.HANDLE, NAMESPACE);
123 Text handleText = new Text(handle);
124 handleElement.addContent(handleText);
125 member.addContent(handleElement);
126 }
127
128 // permission
129 String perm = getPermission();
130 if (perm != null) {
131 Element permissionElement = new Element(Tags.PERMISSION, NAMESPACE);
132 Text permissionText = new Text(perm);
133 permissionElement.addContent(permissionText);
134 member.addContent(permissionElement);
135 }
136
137 return doc;
138 }
139
140 public boolean equals(Object o) {
/*
P/P * Method: bool equals(Object)
*
* Preconditions:
* (soft) init'ed(o.handle)
* (soft) init'ed(o.href)
* (soft) init'ed(o.name)
* (soft) init'ed(o.permission)
* (soft) init'ed(this.handle)
* (soft) init'ed(this.href)
* (soft) init'ed(this.name)
* (soft) init'ed(this.permission)
*
* Postconditions:
* init'ed(return_value)
*
* Test Vectors:
* o: Addr_Set{null}, Inverse{null}
* org.apache.roller.weblogger.webservices.adminprotocol.sdk.MemberEntry:areEqual(...)@147: {1}, {0}
* org.apache.roller.weblogger.webservices.adminprotocol.sdk.MemberEntry:areEqual(...)@150: {1}, {0}
* org.apache.roller.weblogger.webservices.adminprotocol.sdk.MemberEntry:areEqual(...)@153: {1}, {0}
*/
141 if ( o == null || o.getClass() != this.getClass()) {
142 return false;
143 }
144
145 MemberEntry other = (MemberEntry)o;
146
147 if (!areEqual(getHandle(), other.getHandle())) {
148 return false;
149 }
150 if (!areEqual(getName(), other.getName())) {
151 return false;
152 }
153 if (!areEqual(getPermission(), other.getPermission())) {
154 return false;
155 }
156
157 return super.equals(o);
158 }
159
160
161 public String getName() {
/*
P/P * Method: String getName()
*
* Preconditions:
* init'ed(this.name)
*
* Postconditions:
* return_value == this.name
* init'ed(return_value)
*/
162 return name;
163 }
164
165 public void setName(String name) {
/*
P/P * Method: void setName(String)
*
* Postconditions:
* this.name == name
* init'ed(this.name)
*/
166 this.name = name;
167 }
168
169 public String getHandle() {
/*
P/P * Method: String getHandle()
*
* Preconditions:
* init'ed(this.handle)
*
* Postconditions:
* return_value == this.handle
* init'ed(return_value)
*/
170 return handle;
171 }
172
173 public void setHandle(String handle) {
/*
P/P * Method: void setHandle(String)
*
* Postconditions:
* this.handle == handle
* init'ed(this.handle)
*/
174 this.handle = handle;
175 }
176
177 public String getPermission() {
/*
P/P * Method: String getPermission()
*
* Preconditions:
* init'ed(this.permission)
*
* Postconditions:
* return_value == this.permission
* init'ed(return_value)
*/
178 return permission;
179 }
180
181 public void setPermission(String permission) {
/*
P/P * Method: void setPermission(String)
*
* Postconditions:
* this.permission == permission
* init'ed(this.permission)
*/
182 this.permission = permission;
183 }
184 }
SofCheck Inspector Build Version : 2.18479
| MemberEntry.java |
2009-Jan-02 14:25:20 |
| MemberEntry.class |
2009-Sep-04 03:12:46 |
| MemberEntry$Permissions.class |
2009-Sep-04 03:12:46 |
| MemberEntry$Tags.class |
2009-Sep-04 03:12:46 |