package generators; import java.util.ArrayList; import java.util.List; import code.ast.Annotation; import code.ast.CompilationUnit; import code.ast.FieldDeclaration; import code.ast.ImportDeclaration; import code.ast.MethodDeclaration; import code.ast.TypeDeclaration; import code.ast.VariableDeclaration; import models.algebra.Type; abstract public class RestApiSpecific implements IPlatformSpecific { protected ILanguageSpecific langSpec = null; @Override public boolean hasMain() { return false; } @Override public boolean isMonolithic() { return false; } @Override public boolean isDifferentTreesAsDifferentServices() { return true; } abstract public void addComponentAnnotations(TypeDeclaration component, String resourcePath); abstract public void addGetAnnotations(MethodDeclaration getMethod); abstract public void addPutAnnotations(MethodDeclaration putMethod); abstract public void addPostAnnotations(MethodDeclaration postMethod); abstract public void addDeleteAnnotations(MethodDeclaration deleteMethod); abstract public void addPathAnnotation(MethodDeclaration method, String resourcePath); abstract public void addPathParamAnnotation(VariableDeclaration var, String paramName); abstract public void addFormParamAnnotation(VariableDeclaration var, String paramName); abstract public void addClientFieldDeclaration(TypeDeclaration component); abstract public void addPlatformSpecificImports(CompilationUnit cu); abstract public String getConversionFromJsonString(String fromStrVarName, String toVarName, String toVarType); abstract public void addJsonException(MethodDeclaration method); }