package ca.uhn.fhir.tinder.model; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.Validate; import ca.uhn.fhir.model.dstu.resource.Conformance.RestResource; import ca.uhn.fhir.model.dstu.resource.Conformance.RestResourceOperation; import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum; public class RestResourceTm { private String myResourceType; private Map<RestfulOperationTypeEnum, RestResourceOperationTm> mySupportedOperations = new HashMap<RestfulOperationTypeEnum, RestResourceOperationTm>(); private ArrayList<SearchParameter> mySearchParams; public RestResourceTm(RestResource theResource) { myResourceType = theResource.getType().getValue(); Validate.notNull(myResourceType, "Found a resource definition in Conformance resource with no type (or an invalid type) specified: " + theResource.getType().getValue()); for (RestResourceOperation next : theResource.getOperation()) { mySupportedOperations.put(next.getCode().getValueAsEnum(), new RestResourceOperationTm(next)); } } public RestResourceOperationTm getReadOperation() { return mySupportedOperations.get(RestfulOperationTypeEnum.READ); } public RestResourceOperationTm getVReadOperation() { return mySupportedOperations.get(RestfulOperationTypeEnum.VREAD); } public RestResourceOperationTm getSearchOperation() { return mySupportedOperations.get(RestfulOperationTypeEnum.SEARCH_TYPE); } public boolean isHasReadOperation() { return mySupportedOperations.containsKey(RestfulOperationTypeEnum.READ); } public boolean isHasVReadOperation() { return mySupportedOperations.containsKey(RestfulOperationTypeEnum.VREAD); } public boolean isHasSearchOperation() { return mySupportedOperations.containsKey(RestfulOperationTypeEnum.SEARCH_TYPE); } public String getResourceType() { return myResourceType; } public List<SearchParameter> getSearchParams() { if (mySearchParams == null) { mySearchParams = new ArrayList<SearchParameter>(); } return mySearchParams; } }