summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'instance-calculator/src/VHDLProcess.java')
-rw-r--r--instance-calculator/src/VHDLProcess.java76
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;
+ }
}
}