EOS 2  1.1.0
Einfache Objektbasierte Sprache
Parameters.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.baseparser;
2 
3 import java.util.LinkedList;
4 import java.util.List;
5 
6 import de.lathanda.eos.vm.Marker;
7 
14 public class Parameters {
15  private final LinkedList<Parameter> parameters;
16  private final LinkedList<String> nameBuffer;
17 
18  public Parameters() {
19  parameters = new LinkedList<>();
20  nameBuffer = new LinkedList<>();
21  }
22 
23  public void append(Parameter parameter) {
24  parameters.add(parameter);
25  }
26 
27  public int size() {
28  return parameters.size();
29  }
30 
31  public List<Parameter> getParameters() {
32  return parameters;
33  }
34 
35  public Type[] getTypes() {
36  Type[] para = new Type[parameters.size()];
37  for (int i = 0; i < para.length; i++) {
38  para[i] = parameters.get(i).getType();
39  }
40  return para;
41  }
42 
43  public void registerParameters(Environment env) {
44  for (Parameter p : parameters) {
45  p.registerParameter(env);
46  }
47  }
48 
49  public void addName(String name) {
50  nameBuffer.add(name);
51  }
52 
53  public void setType(Type type, Marker marker) {
54  nameBuffer.stream().forEachOrdered(name -> append(new Parameter(name, type, marker)));
55  nameBuffer.clear();
56  }
57 
58  @Override
59  public String toString() {
60  StringBuilder res = new StringBuilder();
61  boolean first = true;
62  res.append("(");
63  for (Parameter p : parameters) {
64  if (first) {
65  res.append(p);
66  } else {
67  res.append(",").append(p);
68  first = false;
69  }
70  }
71  res.append(")");
72  return res.toString();
73  }
74 }
void setType(Type type, Marker marker)
Definition: Parameters.java:53
void registerParameters(Environment env)
Definition: Parameters.java:43
void append(Parameter parameter)
Definition: Parameters.java:23
Impressum