|
package mypack;
import java.io.*;
import java.util.*;
import mmexec.utils.*;
import mmexec.evaluator.*;
import mmexec.clang.*;
public class MyLanguage extends CustomLanguage {
/* Functions */
private final static int __ReserveProduct = 1;
private final static int __InformDepot = 2;
private final static int __AddToCart = 3;
private final static int __ApplyDiscount = 4;
private static LanguageSyntax lang;
private MMServletRequest request;
static {
/*
* Define the syntax of the "MyLanguage"
*/
lang =
new LanguageSyntax("MyLanguage", new FunctionSyntax[] {
new FunctionSyntax(__ReserveProduct, "ReserveProduct", new ParameterSyntax[] {
new ParameterSyntax( ParameterSyntax.PT_INT, "Product Id", true),
new ParameterSyntax( ParameterSyntax.PT_INT, "Quantity", true),
new ParameterSyntax( ParameterSyntax.PT_INT, "Duration", true)
}
),
new FunctionSyntax(__InformDepot, "InformDepot", new ParameterSyntax[] {
new ParameterSyntax( ParameterSyntax.PT_STRING, "Message", true),
new ParameterSyntax( ParameterSyntax.PT_INT, "Product Id", true)
}
),
new FunctionSyntax(__AddToCart, "AddToCart", new ParameterSyntax[] {
new ParameterSyntax( ParameterSyntax.PT_INT, "Product Id", true),
new ParameterSyntax( ParameterSyntax.PT_INT, "Quantity", true)
}
),
new FunctionSyntax(__ApplyDiscount, "ApplyDiscount", new ParameterSyntax[] {
new ParameterSyntax( ParameterSyntax.PT_INT, "Product Id", true),
new ParameterSyntax( ParameterSyntax.PT_INT, "Quantity", true),
new ParameterSyntax( ParameterSyntax.PT_INT, "Customer Id", true)
}
)
}
);
}
public MyLanguage(MMServletRequest request, int debugLevel) {
super(request, debugLevel);
this.request = request;
}
public int execute(String str) throws CLException {
return super.execute(str);
}
public int executeFunction(int funcid, Object[] parms) throws CLException {
int result = 0;
try {
switch (funcid) {
case __ReserveProduct:
result = executeReserveProduct( (Integer)parms[0], (Integer)parms[1], (Integer)parms[2]);
break;
case __InformDepot:
result = executeInformDepot( (String)parms[0], (Integer)parms[1]);
break;
case __AddToCart:
result = executeAddToCart( (Integer)parms[0], (Integer)parms[1] );
break;
case __ApplyDiscount:
result = executeApplyDiscount( (Integer)parms[0], (Integer)parms[1]] (Integer)parms[2] );
break;
}
} catch (Exception e) {
throw new CLException(e);
}
return 0;
}
public LanguageSyntax getSyntax() {
return lang;
}
private int executeReserveProduct(Integer productId, Integer quantity, Integer duration)
throws FMLException {
// ...
return 0;
}
private int executeInformDepot(String message, Integer productId)
throws FMLException {
// ...
return 0;
}
private int executeAddToCart(Integer productId, Integer quantity)
throws FMLException {
// ...
return 0;
}
private int executeApplyDiscount(Integer productId, Integer quantity, Integer customerId)
throws FMLException {
// ...
return 0;
}
}
|