jeaf.JEAFOperation.xpt Maven / Gradle / Ivy
«EXTENSION java::Naming»
«EXTENSION java::GeneratorCommons»
«EXTENSION entity::ModelProperties»
«EXTENSION functions::DefaultOperation»
«EXTENSION functions::JEAFService»
«IMPORT uml»
«IMPORT JMM»
«IMPORT java»
«IMPORT entity»
//Operations for JEAF services are created here
//Operation is a stereotype which caries the Exception information
//interface methods are returned
«DEFINE PlainInterfaceOperation(String context, boolean reactive) FOR Operation»
«EXPAND functions::Javadoc::JavadocForOperation»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
«EXPAND java::Helper::GenerateDeprecationAnnotation FOR this.getReturnResult() -»
«EXPAND Validation::ValidationAnnotation FOR this.getReturnResult()»
«EXPAND java::Helper::NotNullAnnotationForParameter(context) FOR this.getReturnResult()»
«getReturnTypeName().getReactiveAwareTypeName(reactive)» «name» («EXPAND ParameterSignature(true, context)»)«getThrownExceptionsAsString()»;
«ENDDEFINE»
«DEFINE ServiceInterfaceOperation(boolean reactive) FOR Operation»
«EXPAND functions::Javadoc::JavadocForOperation»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
«EXPAND java::Helper::GenerateDeprecationAnnotation FOR this.getReturnResult() -»
«EXPAND Validation::ValidationAnnotation FOR this.getReturnResult()»
«EXPAND java::Helper::NotNullAnnotationForParameter("JEAFService") FOR this.getReturnResult()»
«IF this.isDefaultOperation()»default «ENDIF»«getReturnTypeName().getReactiveAwareTypeName(reactive)» «name» («EXPAND ParameterSignature(true, "JEAFService")»)«getThrownExceptionsAsString()»
«IF this.isDefaultOperation()»
«LET this.asDefaultOperation().operationType AS operationType»
{
«IF operationType.name == "THROW_NOT_YET_IMPLMENTED_EXCEPTION"»
throw new NotYetImplementedException("«this.name»('...') is not yet implemented.");
«ELSEIF operationType.name == "DO_NOTHING"»
«IF getReturnTypeName() != "void"»
«IF getReturnType().type.isBooleanType()»
return true;
«ELSEIF getReturnType().type.isPrimitiveType()»
return 0;
«ELSEIF getReturnType().type.isBasicType()»
return «getReturnType().type.fqn()».valueOf(0);
«ELSE»
return null;
«ENDIF»
«ELSE»
// Nothing to do.
«ENDIF»
«ELSEIF operationType.name == "CUSTOM_GENERATOR_TEMPLATE"»
«EXPAND jeafgenerator::api::ServiceInterfaceHook::ProvideDefaultImplementation»
«ELSE»
«IF getReturnTypeName() != "void"»
«IF getReturnType().type.isPrimitiveType() || getReturnType().type.isBasicType()»
«IF getReturnType().hasDefaultValueForBasicType()»
«IF getReturnType().type.isBasicType()»
return «getReturnType().type.fqn()».valueOf(«getReturnType().getDefaultValueForBasicType()»);
«ELSE»
return «getReturnType().getDefaultValueForBasicType()»;
«ENDIF»
«ELSE»
«IF getReturnType().type.isBooleanType()»
return true;
«ELSEIF getReturnType().type.isPrimitiveType()»
return 0;
«ELSE»
return «getReturnType().type.fqn()».valueOf(0);
«ENDIF»
«ENDIF»
«ELSEIF getReturnType().type.isEnumeration()»
return «getReturnType().type.fqn()».«getReturnType().getDefaultValueForEnum()»;
«ELSE»
return null;
«ENDIF»
«ENDIF»
«ENDIF»
}
«ENDLET»
«ELSE»
;
«ENDIF»
«ENDDEFINE»
«DEFINE ServiceOperationImpl(String context, boolean reactive) FOR Operation»
«EXPAND functions::Javadoc::JavadocForOperation»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
«EXPAND java::Helper::GenerateDeprecationAnnotation FOR this.getReturnResult() -»
«EXPAND java::Helper::NotNullAnnotationForParameter(context) FOR this.getReturnResult()»
@Override
«visibility» «getReturnTypeName().getReactiveAwareTypeName(reactive)» «name» («EXPAND ParameterSignatureNoValidationAnnotation»)«getThrownExceptionsAsString()» {
«IF getReturnTypeName() != "void"»
// TODO Implement method and return real result
«IF returnsPrimitiveType()»
«IF getReturnTypeName() != "boolean"» return 0; «ELSE» return false;«ENDIF»
«ELSE»
return null;
«ENDIF»
«ENDIF»
}
«ENDDEFINE»
//abstract methods are returned
«DEFINE BusinessOperation FOR Operation»
«EXPAND functions::Javadoc::JavadocForOperation»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
«EXPAND java::Helper::GenerateDeprecationAnnotation FOR this.getReturnResult() -»
«EXPAND Validation::ValidationAnnotation FOR this.getReturnResult()»
«EXPAND java::Helper::NotNullAnnotationForParameter("BusinessOperation") FOR this.getReturnResult()»
«visibility» abstract «getReturnTypeName()» «name» («EXPAND ParameterSignature(true, "BusinessOperation")»)«getThrownExceptionsAsString()»;
«ENDDEFINE»
//interfaceImpl methods are returned
«DEFINE BusinessOperationImpl FOR Operation»
«EXPAND functions::Javadoc::JavadocForOperation»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
«EXPAND java::Helper::GenerateDeprecationAnnotation FOR this.getReturnResult()»
«EXPAND java::Helper::NotNullAnnotationForParameter("BusinessOperation") FOR this.getReturnResult()»
@Override
«visibility» «getReturnTypeName()» «name» («EXPAND ParameterSignature(true, "BusinessOperation")»)«getThrownExceptionsAsString()» {
// TODO: Implement business logic for method.
«IF getReturnTypeName() != "void"»
«IF getReturnTypeName() != "boolean"»
«IF this.returnsPrimitiveType()»
return 0;
«ELSE»
return null;
«ENDIF»
«ELSE»
return false;
«ENDIF»
«ENDIF»
}
«ENDDEFINE»
«DEFINE ParameterSignature(boolean addValidation, String context) FOR Operation»
«EXPAND ParameterDefinition(addValidation, context) FOREACH ownedParameter.select(e| e.isInputParameter() && e.isParameterSuppressed() == false) SEPARATOR ", "»
«ENDDEFINE»
«DEFINE ParameterDefinition(boolean addValidation, String context) FOR Parameter»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
«IF addValidation»«EXPAND Validation::ValidationAnnotation» «ENDIF» «EXPAND java::Helper::NotNullAnnotationForParameter(context)» «this.getTypeName()» «this.name»
«ENDDEFINE»
«DEFINE ParameterSignatureNoValidationAnnotation FOR Operation»
«EXPAND ParameterDefinitionNoValidationAnnotation FOREACH ownedParameter.select(e| e.isInputParameter() && e.isParameterSuppressed() == false) SEPARATOR ", "»
«ENDDEFINE»
«DEFINE ParameterDefinitionNoValidationAnnotation FOR Parameter»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
«this.getTypeName()» «this.name»
«ENDDEFINE»