io.automatiko.engine.codegen.DefaultResourceGeneratorFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of automatiko-engine-codegen Show documentation
Show all versions of automatiko-engine-codegen Show documentation
The Code generation for Automatiko Engine
The newest version!
package io.automatiko.engine.codegen;
import java.util.NoSuchElementException;
import java.util.Optional;
import io.automatiko.engine.api.definition.process.WorkflowProcess;
import io.automatiko.engine.codegen.process.AbstractResourceGenerator;
import io.automatiko.engine.codegen.process.ReactiveResourceGenerator;
import io.automatiko.engine.codegen.process.ResourceGenerator;
/**
* This should be used to only create JAX-RS Resource Generators. IMPORTANT: it
* will not consider Spring Generators.
*/
public class DefaultResourceGeneratorFactory extends ResourceGeneratorFactory {
@Override
public Optional create(GeneratorContext context, WorkflowProcess process,
String modelfqcn, String processfqcn, String appCanonicalName) {
return GeneratorType.from(context).map(type -> {
switch (type) {
case QUARKUS:
return new ResourceGenerator(context, process, modelfqcn, processfqcn, appCanonicalName);
case QUARKUS_REACTIVE:
return new ReactiveResourceGenerator(context, process, modelfqcn, processfqcn, appCanonicalName);
default:
throw new NoSuchElementException("No Resource Generator for: " + type);
}
});
}
}