code: public EvaluationResult getSubjectAttribute(URI type, URI id, URI issuer,
                                                  URI category) {
          // This is the same as the other three lookups except that this
          // has an extra level of indirection that needs to be handled first
          Map map = (Map)(subjectMap.get(category));
  
          if (map == null) {
              // the request didn't have that category, so we should try asking
              // the attribute finder
              return callHelper(type, id, issuer, category,
                                AttributeDesignator.SUBJECT_TARGET);
          }
          
          return getGenericAttributes(type, id, issuer, map, category,
                                      AttributeDesignator.SUBJECT_TARGET);
      }
docs: Returns attribute value(s) from the subject section of the request.
  
  @param type the type of the attribute value(s) to find
  @param id the id of the attribute value(s) to find
  @param issuer the issuer of the attribute value(s) to find or null
  @param category the category the attribute value(s) must be in
  
  @return a result containing a bag either empty because no values were
  found or containing at least one value, or status associated with an
  Indeterminate result