code: protected final String[] addAttribute(String key, String value) {
          this._toString = null;
          ArrayList<String> array = this._attributes.get(key);
          String[] old_array = null;
          if (array != null) {
              if (array.size() > 0) {
                  old_array = new String[array.size()];
                  old_array = array.toArray(old_array);
                  if (key.equals("u")) {
                      /**
                       * Do not set multiple values for accessID
                       **/
                      return old_array;
                  }
              }
          } else {
              array = new ArrayList<String>();
              this._attributes.put(key, array);
          }
          // Add the String to the array list
          array.add(value);
          return old_array;
      }
docs: Add the attribute name/value pair to a String[] list of values for
  the specified key. Once an attribute is set, it cannot only be
  appended to but not overwritten. Returns the previous value(s)
  set for key, not including the current value being set, or null
  if not previously set.
  
  @param key The name of a attribute
  @param value The value of the attribute
  @return String[] A list of the attribute values previously binded with the
  specified key