| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'instance-calculator/src/VHDLProcess.java')
| -rw-r--r-- | instance-calculator/src/VHDLProcess.java | 76 |
1 files changed, 73 insertions, 3 deletions
diff --git a/instance-calculator/src/VHDLProcess.java b/instance-calculator/src/VHDLProcess.java index a017ef4..f85fe9a 100644 --- a/instance-calculator/src/VHDLProcess.java +++ b/instance-calculator/src/VHDLProcess.java @@ -23,18 +23,88 @@ public class VHDLProcess final String ps_id ) { + /* TODO */ return false; } /******************************************************************************/ - - private final List<String> accessed_wfm; + private final Collection<VHDLWaveform> accessed_wfm; + private final Collection<VHDLProcess.Instance> instances; private final String id; + private int instances_count; private VHDLProcess (final String id) { this.id = id; + accessed_wfm = new ArrayList<VHDLWaveform>(); + instances = new ArrayList<VHDLProcess.Instance>(); + instances_count = 0; + } + + public static class Instance + { + private final String id; + private final VHDLProcess parent; + private final Map<VHDLWaveform.Instance, VHDLWaveform> iwfm_map; + private final VHDLEntity visibility; + + private Instance + ( + final String id, + final VHDLProcess parent, + final VHDLEntity visibility, + final Map<VHDLWaveform.Instance, VHDLWaveform> iwfm_map + ) + { + this.id = id; + this.parent = parent; + this.visibility = visibility; + this.iwfm_map = iwfm_map; + } + + public VHDLProcess get_parent () + { + return parent; + } + + public VHDLProcess.Instance add_instance + ( + final VHDLEntity visibility, + final Map<VHDLWaveform.Instance, VHDLWaveform.Instance> convertion + ) + { + final VHDLProcess.Instance result; + final Set<Map.Entry<VHDLWaveform.Instance, VHDLWaveform>> iwfm_set; + final Map<VHDLWaveform.Instance, VHDLWaveform> new_iwfm_map; + + iwfm_set = iwfm_map.entrySet(); + + new_iwfm_map = new HashMap<VHDLWaveform.Instance, VHDLWaveform>(); - ports = new ArrayList<String>(); + for + ( + final Map.Entry<VHDLWaveform.Instance, VHDLWaveform> me: iwfm_set + ) + { + new_iwfm_map.put + ( + convertion.get(me.getKey()), + me.getValue() + ); + } + + result = + new VHDLProcess.Instance + ( + Instances.get_id_for(parent.instances_count), + parent, + visibility, + new_iwfm_map + ); + + parent.instances_count += 1; + + return result; + } } } |


