01: /*
02: * $Id: CompilableFunction.java,v 1.14 2002/09/16 08:05:03 jkl Exp $
03: *
04: * Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
05: *
06: * Use is subject to license terms, as defined in
07: * Anvil Sofware License, Version 1.1. See LICENSE
08: * file, or http://njet.org/license-1.1.txt
09: */
10: package anvil.script;
11:
12: import anvil.core.Any;
13: import anvil.codec.ConstantPool;
14: import anvil.doc.Doc;
15:
16: /**
17: * interface CompilableFunction
18: *
19: * @author: Jani Lehtimäki
20: */
21: public interface CompilableFunction extends Function {
22:
23: public static final int PARAMETER_CONTEXT = 0;
24: public static final int PARAMETER_ANY = 1;
25: public static final int PARAMETER_STRING = 2;
26: public static final int PARAMETER_OBJECT = 3;
27: public static final int PARAMETER_DOUBLE = 4;
28: public static final int PARAMETER_INT = 5;
29: public static final int PARAMETER_LONG = 6;
30: public static final int PARAMETER_BOOLEAN = 7;
31: /* these four are exclusive and unique and they must be last */
32: public static final int PARAMETER_ARRAY = 8;
33: public static final int PARAMETER_ANYLIST = 9;
34: public static final int PARAMETER_LIST = 10;
35: public static final int PARAMETER_REST = 11;
36:
37: public static final String[] CLASSES = { "anvil.script.Context",
38: "anvil.core.Any", String.class.getName(),
39: Object.class.getName(), Double.TYPE.getName(),
40: Integer.TYPE.getName(), Long.TYPE.getName(),
41: Boolean.TYPE.getName(), "anvil.core.Array",
42: "anvil.core.AnyTuple", "[Lanvil.core.Any;",
43: "anvil.core.Any" };
44:
45: public static final String[] SIGNATURES = {
46: "Lanvil/script/Context;", "Lanvil/core/Any;",
47: "Ljava/lang/String;", "Ljava/lang/Object;", "D", "I", "J",
48: "Z", "Lanvil/core/Array;", "Lanvil/core/AnyTuple;",
49: "[Lanvil/core/Any;", "Lanvil/core/Any;", };
50:
51: public int getMinimumParameterCount();
52:
53: public int getParameterCount();
54:
55: public int getParameterType(int index);
56:
57: public String getParameterName(int index);
58:
59: public Any getParameterDefault(int index);
60:
61: public Doc getParameterDoc(int index);
62:
63: public Any getAttribute(String name);
64:
65: public boolean isInnerFunction();
66:
67: public FunctionDispatcher getDispatcher(Context context);
68:
69: }
|