From 35e6857fb09b006da9f8cc3f59f239f078cc69a1 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Tue, 29 Aug 2017 13:54:43 +0200 Subject: Still working on the implementation. --- instance-calculator/src/VHDLProcess.java | 76 ++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 3 deletions(-) (limited to 'instance-calculator/src/VHDLProcess.java') 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 accessed_wfm; + private final Collection accessed_wfm; + private final Collection instances; private final String id; + private int instances_count; private VHDLProcess (final String id) { this.id = id; + accessed_wfm = new ArrayList(); + instances = new ArrayList(); + instances_count = 0; + } + + public static class Instance + { + private final String id; + private final VHDLProcess parent; + private final Map iwfm_map; + private final VHDLEntity visibility; + + private Instance + ( + final String id, + final VHDLProcess parent, + final VHDLEntity visibility, + final Map 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 convertion + ) + { + final VHDLProcess.Instance result; + final Set> iwfm_set; + final Map new_iwfm_map; + + iwfm_set = iwfm_map.entrySet(); + + new_iwfm_map = new HashMap(); - ports = new ArrayList(); + for + ( + final Map.Entry 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; + } } } -- cgit v1.2.3-70-g09d2