Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / src / generators / RestApiSpecific.java
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);
}