public XACMLRootElement getXACMLRoot() {
    Policy policy = new Policy();

    policy.setPolicyId(policyName);
    policy.setRuleCombiningAlgId(ruleCombiner);
    policy.setTarget((Target) target.getXACMLRoot());

    List<Object> elements =
        policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();

    for (XACML3PolicyRule r : rules) {
      elements.add(r.getXACMLRoot());
    }

    return policy;
  }