Files
VisualSapfor/src/ProjectData/SapforData/Functions/FuncParam.java
2023-09-17 22:13:42 +03:00

61 lines
1.9 KiB
Java

package ProjectData.SapforData.Functions;
import java.util.Vector;
public class FuncParam {
static final int IN_BIT = 16;
static final int OUT_BIT = 256;
Vector<Integer> inout_types;
Vector<String> identificators;
Vector<String> parametersT;
int countOfPars;
public FuncParam() {
countOfPars = 0;
}
public void Init(int numPar) {
countOfPars = numPar;
if (numPar != 0) {
parametersT = new Vector<>(numPar);
inout_types = new Vector<>(numPar);
identificators = new Vector<>(numPar);
for (int z = 0; z < numPar; ++z) {
parametersT.add("NONE_T");
inout_types.add(0);
identificators.add("");
}
}
}
boolean IsArgIn(int num) {
if (num >= countOfPars)
return false;
else
return (inout_types.get(num) & IN_BIT) != 0;
}
boolean IsArgOut(int num) {
if (num >= countOfPars)
return false;
else
return (inout_types.get(num) & OUT_BIT) != 0;
}
boolean IsArgInOut(int num) {
if (num >= countOfPars)
return false;
else
return IsArgIn(num) && IsArgOut(num);
}
public void FillParam(int num, String type, String ident, int inout) {
parametersT.set(num, type);
inout_types.set(num, inout);
identificators.set(num, ident);
}
@Override
public String toString() {
Vector<String> res = new Vector<>();
for (int i = 0; i < countOfPars; ++i) {
String ps = IsArgInOut(i) ? "inout" :
(IsArgOut(i) ? "out" : (IsArgIn(i) ? "in" : "?!"));
ps += " " + inout_types.get(i) + " " + identificators.get(i) + " " + parametersT.get(i);
res.add(ps);
}
return String.join(",", res);
}
}