1 23 24 package org.objectweb.fractal.adl.implementations; 25 26 import java.io.PrintWriter ; 27 import java.util.Map ; 28 import java.util.WeakHashMap ; 29 30 35 36 public class StaticJavaImplementationBuilder implements ImplementationBuilder { 37 38 private Map primitiveCounters = new WeakHashMap (); 39 40 private Map compositeCounters = new WeakHashMap (); 41 42 46 public Object createComponent ( 47 final Object type, 48 final String name, 49 final String definition, 50 final Object controllerDesc, 51 final Object contentDesc, 52 final Object context) 53 { 54 if (contentDesc == null) { 55 Integer i = (Integer )compositeCounters.get(context); 56 if (i == null) { 57 i = new Integer (0); 58 } 59 String id = "C" + i; 60 PrintWriter pw = (PrintWriter )((Map )context).get("printwriter"); 61 pw.print("Map "); 62 pw.print(id); 63 pw.println(" = new HashMap();"); 64 compositeCounters.put(context, new Integer (i.intValue() + 1)); 65 return id; 66 } else { 67 Integer i = (Integer )primitiveCounters.get(context); 68 if (i == null) { 69 i = new Integer (0); 70 } 71 String id = "P" + i; 72 PrintWriter pw = (PrintWriter )((Map )context).get("printwriter"); 73 pw.print(contentDesc); 74 pw.print(' '); 75 pw.print(id); 76 pw.print(" = new "); 77 pw.print(contentDesc); 78 pw.println("();"); 79 primitiveCounters.put(context, new Integer (i.intValue() + 1)); 80 return id; 81 } 82 } 83 } 84 | Popular Tags |