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