private Object toReturnType(IBaseResource resource) { Object retVal = null; switch (getMethodReturnType()) { case LIST_OF_RESOURCES: retVal = Collections.emptyList(); if (resource != null) { retVal = Collections.singletonList(resource); } break; case RESOURCE: retVal = resource; break; case BUNDLE_RESOURCE: retVal = resource; break; case METHOD_OUTCOME: MethodOutcome outcome = new MethodOutcome(); outcome.setOperationOutcome((IBaseOperationOutcome) resource); retVal = outcome; break; } return retVal; }
IBaseResource outcome = parser.parseResource(reader); if (outcome instanceof IBaseOperationOutcome) { retVal.setOperationOutcome((IBaseOperationOutcome) outcome); } else { retVal.setResource(outcome);
@Override public MethodOutcome execute() { BaseHttpClientInvocation invocation = ValidateMethodBindingDstu2Plus.createValidateInvocation(myContext, myResource); ResourceResponseHandler<BaseOperationOutcome> handler = new ResourceResponseHandler<BaseOperationOutcome>(null, null); IBaseOperationOutcome outcome = invoke(null, handler, invocation); MethodOutcome retVal = new MethodOutcome(); retVal.setOperationOutcome(outcome); return retVal; }
@Validate public MethodOutcome validatePatient(@ResourceParam Patient thePatient, @Validate.Mode ValidationModeEnum theMode, @Validate.Profile String theProfile) { // Actually do our validation: The UnprocessableEntityException // results in an HTTP 422, which is appropriate for business rule failure if (thePatient.getIdentifierFirstRep().isEmpty()) { /* It is also possible to pass an OperationOutcome resource * to the UnprocessableEntityException if you want to return * a custom populated OperationOutcome. Otherwise, a simple one * is created using the string supplied below. */ throw new UnprocessableEntityException("No identifier supplied"); } // This method returns a MethodOutcome object MethodOutcome retVal = new MethodOutcome(); // You may also add an OperationOutcome resource to return // This part is optional though: OperationOutcome outcome = new OperationOutcome(); outcome.addIssue().setSeverity(IssueSeverity.WARNING).setDiagnostics("One minor issue detected"); retVal.setOperationOutcome(outcome); return retVal; } //END SNIPPET: validate
retVal.setOperationOutcome(outcome);
@Override public Object invokeServer(IRestfulServer<?> theServer, RequestDetails theRequest) throws BaseServerResponseException, IOException { Object[] params = createParametersForServerRequest(theRequest); addParametersForServerRequest(theRequest, params); /* * No need to catch and handle exceptions here, we already handle them one level up including invoking interceptors * on them */ MethodOutcome response; Object methodReturn = invokeServerMethod(theServer, theRequest, params); if (methodReturn instanceof IBaseOperationOutcome) { response = new MethodOutcome(); response.setOperationOutcome((IBaseOperationOutcome) methodReturn); } else { response = (MethodOutcome) methodReturn; } if (response != null && response.getId() != null && response.getId().hasResourceType()) { if (getContext().getResourceDefinition(response.getId().getResourceType()) == null) { throw new InternalErrorException("Server method returned invalid resource ID: " + response.getId().getValue()); } } IBaseOperationOutcome outcome = response != null ? response.getOperationOutcome() : null; IBaseResource resource = response != null ? response.getResource() : null; return returnResponse(theServer, theRequest, response, outcome, resource); }
retVal.setOperationOutcome(outcome);
retVal.setOperationOutcome(result.toOperationOutcome()); return retVal; } else {
private Object toReturnType(IBaseResource resource) { Object retVal = null; switch (getMethodReturnType()) { case LIST_OF_RESOURCES: retVal = Collections.emptyList(); if (resource != null) { retVal = Collections.singletonList(resource); } break; case RESOURCE: retVal = resource; break; case BUNDLE_RESOURCE: retVal = resource; break; case METHOD_OUTCOME: MethodOutcome outcome = new MethodOutcome(); outcome.setOperationOutcome((IBaseOperationOutcome) resource); retVal = outcome; break; } return retVal; }
retVal.setOperationOutcome(result.toOperationOutcome()); return retVal; } else {
retVal.setOperationOutcome(result.toOperationOutcome()); return retVal; } else {
IBaseResource outcome = parser.parseResource(reader); if (outcome instanceof IBaseOperationOutcome) { retVal.setOperationOutcome((IBaseOperationOutcome) outcome); } else { retVal.setResource(outcome);
@Override public MethodOutcome execute() { BaseHttpClientInvocation invocation = ValidateMethodBindingDstu2Plus.createValidateInvocation(myContext, myResource); ResourceResponseHandler<BaseOperationOutcome> handler = new ResourceResponseHandler<BaseOperationOutcome>(null, null); IBaseOperationOutcome outcome = invoke(null, handler, invocation); MethodOutcome retVal = new MethodOutcome(); retVal.setOperationOutcome(outcome); return retVal; }
@Override public Object invokeServer(IRestfulServer<?> theServer, RequestDetails theRequest) throws BaseServerResponseException, IOException { Object[] params = createParametersForServerRequest(theRequest); addParametersForServerRequest(theRequest, params); /* * No need to catch and handle exceptions here, we already handle them one level up including invoking interceptors * on them */ MethodOutcome response; Object methodReturn = invokeServerMethod(theServer, theRequest, params); if (methodReturn instanceof IBaseOperationOutcome) { response = new MethodOutcome(); response.setOperationOutcome((IBaseOperationOutcome) methodReturn); } else { response = (MethodOutcome) methodReturn; } if (response != null && response.getId() != null && response.getId().hasResourceType()) { if (getContext().getResourceDefinition(response.getId().getResourceType()) == null) { throw new InternalErrorException("Server method returned invalid resource ID: " + response.getId().getValue()); } } IBaseOperationOutcome outcome = response != null ? response.getOperationOutcome() : null; IBaseResource resource = response != null ? response.getResource() : null; return returnResponse(theServer, theRequest, response, outcome, resource); }
retVal.setOperationOutcome(result.toOperationOutcome()); return retVal; } else {
retVal.setOperationOutcome(result.toOperationOutcome()); return retVal; } else {
retVal.setOperationOutcome(result.toOperationOutcome()); return retVal; } else {