Class AbstractOperation
- java.lang.Object
- 
- com.ibm.fhir.server.spi.operation.AbstractOperation
 
- 
- All Implemented Interfaces:
- FHIROperation
 - Direct Known Subclasses:
- AbstractCqlOperation,- AbstractDataRequirementsOperation,- AbstractMeasureOperation,- AbstractTermOperation,- ApplyOperation,- BenchOperation,- ConvertOperation,- DocumentOperation,- EraseOperation,- EverythingOperation,- ExportOperation,- HealthcheckOperation,- ImportOperation,- MeasureSubmitDataOperation,- MemberMatchOperation,- ReindexOperation,- RetrieveIndexOperation,- StatusOperation,- ValidateOperation,- VersionsOperation
 
 public abstract class AbstractOperation extends java.lang.Object implements FHIROperation 
- 
- 
Field SummaryFields Modifier and Type Field Description protected OperationDefinitiondefinition
 - 
Constructor SummaryConstructors Constructor Description AbstractOperation()
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected FHIROperationExceptionbuildExceptionWithIssue(java.lang.String msg, IssueType issueType)protected FHIROperationExceptionbuildExceptionWithIssue(java.lang.String msg, IssueType issueType, java.lang.Throwable cause)protected abstract OperationDefinitionbuildOperationDefinition()protected intcountParameters(Parameters parameters, java.lang.String name)protected abstract ParametersdoInvoke(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, java.lang.String logicalId, java.lang.String versionId, Parameters parameters, FHIRResourceHelpers resourceHelper, SearchHelper searchHelper)This is the method that concrete subclasses must implement to perform the operation logic.protected OperationDefinition.ParameterfindOpDefParameter(java.util.List<OperationDefinition.Parameter> parameters, java.lang.String name)Find the operation definition parameter with the specified name.OperationDefinitiongetDefinition()java.lang.StringgetName()protected Parameters.ParametergetParameter(Parameters parameters, java.lang.String name)Get the first instance of a parameter by nameprotected java.util.List<OperationDefinition.Parameter>getParameterDefinitions(OperationParameterUse use)protected java.util.List<Parameters.Parameter>getParameters(Parameters parameters, java.lang.String name)Get all instances of a parameter by nameprotected java.util.List<java.lang.String>getResourceTypeNames()Parametersinvoke(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, java.lang.String logicalId, java.lang.String versionId, Parameters parameters, FHIRResourceHelpers resourceHelper, SearchHelper searchHelper)Invoke the operation.protected booleanisAbstractResourceTypesDisallowed()Determines if the operation disallows abstract resource types, Resource and DomainResource.protected booleanisAdditionalMethodAllowed(java.lang.String method)Determines if any methods (except GET and POST) are allowed for the operation.protected voidvalidateInputParameters(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, java.lang.String logicalId, java.lang.String versionId, Parameters parameters)protected voidvalidateOperationContext(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, Parameters parameters)protected voidvalidateOutputParameters(FHIROperationContext operationContext, Parameters result)protected voidvalidateParameters(FHIROperationContext operationContext, Parameters parameters, OperationParameterUse use)
 
- 
- 
- 
Field Detail- 
definitionprotected final OperationDefinition definition 
 
- 
 - 
Method Detail- 
getDefinitionpublic OperationDefinition getDefinition() - Specified by:
- getDefinitionin interface- FHIROperation
 
 - 
getNamepublic java.lang.String getName() - Specified by:
- getNamein interface- FHIROperation
 
 - 
invokepublic final Parameters invoke(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, java.lang.String logicalId, java.lang.String versionId, Parameters parameters, FHIRResourceHelpers resourceHelper, SearchHelper searchHelper) throws FHIROperationException Description copied from interface:FHIROperationInvoke the operation.- Specified by:
- invokein interface- FHIROperation
- Throws:
- FHIROperationException- if input or output parameters fail validation or an exception occurs
 
 - 
buildOperationDefinitionprotected abstract OperationDefinition buildOperationDefinition() 
 - 
countParametersprotected int countParameters(Parameters parameters, java.lang.String name) 
 - 
doInvokeprotected abstract Parameters doInvoke(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, java.lang.String logicalId, java.lang.String versionId, Parameters parameters, FHIRResourceHelpers resourceHelper, SearchHelper searchHelper) throws FHIROperationException This is the method that concrete subclasses must implement to perform the operation logic.- Returns:
- the Parameters object to return or null if there is no response Parameters object to return
- Throws:
- FHIROperationException
 
 - 
getParameterDefinitionsprotected java.util.List<OperationDefinition.Parameter> getParameterDefinitions(OperationParameterUse use) 
 - 
getParameterprotected Parameters.Parameter getParameter(Parameters parameters, java.lang.String name) Get the first instance of a parameter by name- Parameters:
- parameters-
- name- non-null
- Returns:
- the first parameter that matches the given name; or null if none exist
- Throws:
- java.lang.NullPointerException- if name is null
 
 - 
getParametersprotected java.util.List<Parameters.Parameter> getParameters(Parameters parameters, java.lang.String name) Get all instances of a parameter by name- Parameters:
- parameters-
- name- non-null
- Returns:
- a list of parameters that match the given name; never null
- Throws:
- java.lang.NullPointerException- if name is null
 
 - 
getResourceTypeNamesprotected java.util.List<java.lang.String> getResourceTypeNames() 
 - 
validateInputParametersprotected void validateInputParameters(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, java.lang.String logicalId, java.lang.String versionId, Parameters parameters) throws FHIROperationException - Throws:
- FHIROperationException
 
 - 
validateOperationContextprotected void validateOperationContext(FHIROperationContext operationContext, java.lang.Class<? extends Resource> resourceType, Parameters parameters) throws FHIROperationException - Throws:
- FHIROperationException
 
 - 
isAdditionalMethodAllowedprotected boolean isAdditionalMethodAllowed(java.lang.String method) Determines if any methods (except GET and POST) are allowed for the operation. This can be overridden by an operation to allow additional methods.- Returns:
- true or false
 
 - 
isAbstractResourceTypesDisallowedprotected boolean isAbstractResourceTypesDisallowed() Determines if the operation disallows abstract resource types, Resource and DomainResource. TODO: Remove this method when Issue #2526 is implemented, at which time, abstract resource types will be disallowed for any operation.- Returns:
- true or false
 
 - 
validateOutputParametersprotected void validateOutputParameters(FHIROperationContext operationContext, Parameters result) throws FHIROperationException - Throws:
- FHIROperationException
 
 - 
validateParametersprotected void validateParameters(FHIROperationContext operationContext, Parameters parameters, OperationParameterUse use) throws FHIROperationException - Throws:
- FHIROperationException
 
 - 
findOpDefParameterprotected OperationDefinition.Parameter findOpDefParameter(java.util.List<OperationDefinition.Parameter> parameters, java.lang.String name) Find the operation definition parameter with the specified name.- Parameters:
- parameters- the list of parameters from the OperationDefinition
- name- the name of the parameter to find
- Returns:
- the operation definition parameter with the specified name or null if not found
 
 - 
buildExceptionWithIssueprotected FHIROperationException buildExceptionWithIssue(java.lang.String msg, IssueType issueType) throws FHIROperationException - Throws:
- FHIROperationException
 
 - 
buildExceptionWithIssueprotected FHIROperationException buildExceptionWithIssue(java.lang.String msg, IssueType issueType, java.lang.Throwable cause) throws FHIROperationException - Throws:
- FHIROperationException
 
 
- 
 
-