code: public RequestCtx buildRequest(List<Map<URI, List<AttributeValue>>> subjects,
                                     Map<URI, AttributeValue> actions,
                                     Map<URI, AttributeValue> resources,
                                     Map<URI, AttributeValue> environment,
                                     RelationshipResolver relationshipResolver)
              throws MelcoeXacmlException {
          logger.debug("Building request!");
  
          RequestCtx request = null;
  
          // Create the new Request.
          // Note that the Environment must be specified using a valid Set, even
          // if that Set is empty
          try {
              request =
                      new BasicRequestCtx(setupSubjects(subjects),
                                     setupResources(resources, relationshipResolver),
                                     setupAction(actions),
                                     setupEnvironment(environment));
          } catch (Exception e) {
              logger.error("Error creating request.", e);
              throw new MelcoeXacmlException("Error creating request", e);
          }
  
          return request;
      }
docs: Constructs a RequestCtx object.
  
  @param subjects
  list of Subjects
  @param actions
  list of Action attributes
  @param resources
  list of resource Attributes
  @param environment
  list of environment Attributes
  @return the RequestCtx object
  @throws MelcoeXacmlException