private void validateResourceTypes(Iterable<String> resourceNames, List<ResourceTypeInfo> resourceTypes) { for (String resourceName : resourceNames) { if (!resourceTypes.stream().anyMatch(e -> e.getName().equals(resourceName))) { throw new ResourceNotFoundException("Unknown resource: " + resourceName); } } }
protected void throwExceptionWhenArrayOutOfBound(int index) { String exceptionMsg = String.format( "Trying to access ResourceInformation for given index=%d. " + "Acceptable index range is [0,%d), please double check " + "configured resources in resource-types.xml", index, ResourceUtils.getNumberOfKnownResourceTypes()); throw new ResourceNotFoundException(exceptionMsg); }
/** * Set the percentage of the resource if this object is setup to use * percentages. If this object is set to use percentages, this method has * no effect. * * @param name the name of the resource * @param value the percentage */ void setPercentage(String name, double value) { if (percentages != null) { Integer index = ResourceUtils.getResourceTypeIndex().get(name); if (index != null) { percentages[index] = value; } else { throw new ResourceNotFoundException("The requested resource, \"" + name + "\", could not be found."); } } } }
/** * Get ResourceInformation for a specified resource. * * @param resource name of the resource * @return the ResourceInformation object for the resource */ @Public @InterfaceStability.Unstable public ResourceInformation getResourceInformation(String resource) { Integer index = ResourceUtils.getResourceTypeIndex().get(resource); if (index != null) { return resources[index]; } throw new ResourceNotFoundException(this, resource); }
@Override public ResourceInformation[] getResources() { if (resources.length != ResourceUtils.getNumberOfKnownResourceTypes()) { // Retry once to reinitialize resource information. initResourceMap(); if (resources.length != ResourceUtils.getNumberOfKnownResourceTypes()) { throw new ResourceNotFoundException("Failed to reinitialize " + "FixedValueResource to get number of resource types same " + "as configured"); } } return resources; }