| 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; +      }     }  } | 


