code: public <V> V getValue(ObjectName pObjectName,String pAttribute) {
          ObjectName requestMBean = getRequest().getObjectName();
          if (requestMBean.isPattern()) {
              JSONObject mAttributes = getAttributesForObjectNameWithPatternRequest(pObjectName);
              if (!mAttributes.containsKey(pAttribute)) {
                  throw new IllegalArgumentException("No attribute " + pAttribute + " for ObjectName " + pObjectName + " returned for" +
                          " the given request");
              }
              return (V) mAttributes.get(pAttribute);
          } else {
              return (V) getValue(pAttribute);
          }
      }
docs: Get the value for a certain MBean and a given attribute. This method is especially
  useful if the request leading to this response was done for multiple MBeans (i.e.
  a read for an MBean pattern) and multiple attributes. However, this method can be
  used for a request for single MBeans and single attributes as well, but then the given
  parameters must match the parameters given in the request.
  
  @param pObjectName name of the Mbean or <code>null</code> if the request was only for a single
  Mbeans in which case this single MBean is taken from the request
  @param pAttribute the attribute or <code>null</code> if the request was for a single
  attribute in which case the attribute name is taken from the request
  @param <V> the object type of the return value ({@link String},{@link Map} or {@link List})
  @return the value
  @throws IllegalArgumentException if there was no value for the given parameters or if <code>null</code>
  was given for given for one or both arguments and the request was for multiple MBeans
  or attributes.