private String getDSService(ServiceDescriptor service) {
		Formatter formatter = Formatter.getInstance();
		StringBuilder sb = new StringBuilder();
		int i = 0;
		sb.append(formatter.currentIndent()).append("component ").append(service.getUpperCamelCaseName()).append(" \n");
		sb.append(formatter.currentIndent()).append("metamodelVersion 1.30.6 \n");
		sb.append(formatter.currentIndent()).append(" \n");
		
		for (OperationDescriptor operation : service.getOperations()) {
			
			sb.append(formatter.currentIndent()).append("public method ").append(operation.getLowerCamelCaseName()).append(" \n");
			for (String stereoType : operation.getStereotypes()) {
				sb.append(formatter.currentIndent()).append("@t24:").append(stereoType).append(" \n");
			}
			
			formatter.indent();
			
			i = 0;
			sb.append(formatter.currentIndent()).append("(");
			for (ParamDescriptor param : operation.getParameters()){
				if (i > 0) {
					sb.append(", ");
				} else {
					i++;
				}
				
				sb.append(param.getDirection()).append(" ");
				sb.append(param.getName()).append(" ");
				
				if (param.getComplexity().equals(Complexity.PRIMITIVE)){
					sb.append(param.getTypeName().equals("String") ? "string" : param.getTypeName());
				} else {
					sb.append(service.getCompNameOnlyInUpperCamelCase()).append("Domain:").append(param.getTypeName());
				}
				
				if (param.isMandatory()) {
					if (param.getCardinality().equals(Cardinality.SINGLE)) {
						sb.append(" [1..1]");
					} else {
						sb.append(" [1..*]");
					}
				} else {
					if (param.getCardinality().equals(Cardinality.SINGLE)) {
						sb.append(" [0..1]");
					} else {
						sb.append(" [0..*]");
					}
				}
			}
			sb.append(") { jBC: variable } \n");
			
			formatter.outdent();
		}
		return sb.toString();
	}