EmbASP-Java
Handler.java
1 package it.unical.mat.embasp.base;
2 
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7 
19 public abstract class Handler {
24  protected Map<Integer, InputProgram> programs;
29  protected Map<Integer, OptionDescriptor> options;
30 
31  public Handler() {
32  programs = new HashMap<>();
33  options = new HashMap<>();
34  }
35 
44  public int addOption(final OptionDescriptor o) {
45 
46  int last_index = options.size();
47  final int current_value = last_index;
48  options.put(last_index++, o);
49  return current_value;
50  }
51 
60  public int addProgram(final InputProgram program) {
61 
62  int last_index = programs.size();
63  final int current_value = last_index;
64  programs.put(last_index++, program);
65  return current_value;
66  }
67 
68  protected List<OptionDescriptor> collect_options(final List<Integer> option_index) {
69  final List<OptionDescriptor> input_option = new ArrayList<>();
70 
71  if (option_index == null)
72  for (final Map.Entry<Integer, OptionDescriptor> option : options.entrySet())
73  input_option.add(options.get(option.getKey()));
74  else
75  for (final int index : option_index)
76  input_option.add(options.get(index));
77  return input_option;
78  }
79 
80  protected List<InputProgram> collect_programs(final List<Integer> program_index) {
81 
82  final List<InputProgram> input_programs = new ArrayList<>();
83 
84  if (program_index == null)
85  for (final Map.Entry<Integer, InputProgram> program : programs.entrySet())
86  input_programs.add(programs.get(program.getKey()));
87  else
88  for (final int index : program_index)
89  input_programs.add(programs.get(index));
90  return input_programs;
91  }
92 
100  public InputProgram getInputProgram(final int key) {
101  return programs.get(key);
102  }
103 
111  public OptionDescriptor getOptionDescriptor(final int key) {
112  return options.get(key);
113  }
114 
116  public void removeAll() {
117 
118  programs.clear();
119  options.clear();
120 
121  }
122 
129  public void removeOption(final int option_id) {
130 
131  options.remove(option_id);
132 
133  }
134 
142  public boolean removeOption(final OptionDescriptor o) {
143 
144  boolean result = false;
145  for (final Map.Entry<Integer, OptionDescriptor> entry : options.entrySet())
146  if (entry.getValue().equals(o)) {
147  options.remove(entry.getKey());
148  result = true;
149  }
150 
151  return result;
152 
153  }
154 
163  public boolean removeProgram(final InputProgram p) {
164 
165  boolean result = false;
166  for (final Map.Entry<Integer, InputProgram> entry : programs.entrySet())
167  if (entry.getValue().equals(p)) {
168  programs.remove(entry.getKey());
169  result = true;
170  }
171  return result;
172  }
173 
181  public void removeProgram(final int program_id) {
182 
183  programs.remove(program_id);
184  }
185 
187  public void startAsync(final Callback c) {
188  startAsync(c, (List<Integer>) null, (List<Integer>) null);
189  }
190 
195  public void startAsync(final Callback c, final List<Integer> program_index, final List<Integer> option_index) {
196  }
197 
199  public Output startSync() {
200 
201  return startSync((List<Integer>) null, (List<Integer>) null);
202  }
203 
210  public Output startSync(final List<Integer> program_index, final List<Integer> option_index) {
211  return null;
212  }
213 }
it.unical.mat.embasp.base.InputProgram
Definition: InputProgram.java:9
it.unical.mat.embasp.base.Callback
Definition: Callback.java:8
it.unical.mat.embasp.base.Handler.programs
Map< Integer, InputProgram > programs
Definition: Handler.java:24
it.unical.mat.embasp.base.Handler.startAsync
void startAsync(final Callback c, final List< Integer > program_index, final List< Integer > option_index)
Definition: Handler.java:195
it.unical.mat.embasp.base.Handler.getOptionDescriptor
OptionDescriptor getOptionDescriptor(final int key)
Definition: Handler.java:111
it.unical.mat.embasp.base.Handler.startSync
Output startSync(final List< Integer > program_index, final List< Integer > option_index)
Definition: Handler.java:210
it.unical.mat.embasp.base.Output
Definition: Output.java:4
it.unical.mat.embasp.base.Handler
Definition: Handler.java:19
it.unical.mat.embasp.base.Handler.removeAll
void removeAll()
Definition: Handler.java:116
it.unical.mat.embasp.base.Handler.startAsync
void startAsync(final Callback c)
Definition: Handler.java:187
it.unical.mat.embasp.base.Handler.addOption
int addOption(final OptionDescriptor o)
Definition: Handler.java:44
it.unical.mat.embasp.base.Handler.removeOption
boolean removeOption(final OptionDescriptor o)
Definition: Handler.java:142
it.unical.mat.embasp.base.Handler.removeProgram
void removeProgram(final int program_id)
Definition: Handler.java:181
it.unical.mat.embasp.base.Handler.addProgram
int addProgram(final InputProgram program)
Definition: Handler.java:60
it.unical.mat.embasp.base.Handler.options
Map< Integer, OptionDescriptor > options
Definition: Handler.java:29
it.unical.mat.embasp.base.Handler.getInputProgram
InputProgram getInputProgram(final int key)
Definition: Handler.java:100
it.unical.mat.embasp.base.Handler.removeProgram
boolean removeProgram(final InputProgram p)
Definition: Handler.java:163
it.unical.mat.embasp.base.Handler.removeOption
void removeOption(final int option_id)
Definition: Handler.java:129
it.unical.mat.embasp.base.Handler.startSync
Output startSync()
Definition: Handler.java:199
it.unical.mat.embasp.base.OptionDescriptor
Definition: OptionDescriptor.java:4