/** * Determines if a list of Resource objects is valid, containing either all NotResource elements or all Resource * elements * * @param resourceList the list of Resource objects * @throws IllegalArgumentException if the resource list is invalid */ public static void validateResourceList(final List<Resource> resourceList) { boolean hasNotResource = false; boolean hasResource = false; for (Resource resource : resourceList) { if (resource.isNotType()) { hasNotResource = true; } else { hasResource = true; } if (hasResource && hasNotResource) { // right now only validate that there are only NotResource or only Resource elements // in the future could do more validation throw new IllegalArgumentException(PolicyUtils.INVALID_RESOURCE); } } } }
/** * Writes the list of <code>Resource</code>s to the JSONGenerator. * * @param resources * the list of resources to be written. */ private void writeResources(List<Resource> resources) throws JsonGenerationException, IOException { PolicyUtils.validateResourceList(resources); List<String> resourceStrings = new ArrayList<String>(); for (Resource resource : resources) { resourceStrings.add(resource.getId()); } // all resources are validated to be of the same type, so it is safe to take the type of the first one if (resources.get(0).isNotType()) { writeJsonArray(JsonDocumentFields.NOT_RESOURCE, resourceStrings); } else { writeJsonArray(JsonDocumentFields.RESOURCE, resourceStrings); } }
/** * Determines if a list of Resource objects is valid, containing either all NotResource elements or all Resource * elements * * @param resourceList the list of Resource objects * @throws IllegalArgumentException if the resource list is invalid */ public static void validateResourceList(final List<Resource> resourceList) { boolean hasNotResource = false; boolean hasResource = false; for (Resource resource : resourceList) { if (resource.isNotType()) { hasNotResource = true; } else { hasResource = true; } if (hasResource && hasNotResource) { // right now only validate that there are only NotResource or only Resource elements // in the future could do more validation throw new IllegalArgumentException(PolicyUtils.INVALID_RESOURCE); } } } }
/** * Writes the list of <code>Resource</code>s to the JSONGenerator. * * @param resources * the list of resources to be written. */ private void writeResources(List<Resource> resources) throws JsonGenerationException, IOException { PolicyUtils.validateResourceList(resources); List<String> resourceStrings = new ArrayList<String>(); for (Resource resource : resources) { resourceStrings.add(resource.getId()); } // all resources are validated to be of the same type, so it is safe to take the type of the first one if (resources.get(0).isNotType()) { writeJsonArray(JsonDocumentFields.NOT_RESOURCE, resourceStrings); } else { writeJsonArray(JsonDocumentFields.RESOURCE, resourceStrings); } }