Print

Print


Commit in GeomConverter/src/org/lcsim/material on MAIN
MaterialManager.java+62-511.2 -> 1.3
Methods added to define materials for elements.

GeomConverter/src/org/lcsim/material
MaterialManager.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- MaterialManager.java	30 Jun 2005 00:53:16 -0000	1.2
+++ MaterialManager.java	1 Jul 2005 00:07:38 -0000	1.3
@@ -15,94 +15,105 @@
  */
 public class MaterialManager
 {
+    private static MaterialManager _instance = null;
+    private static boolean _definedElements = false;
+    
     private static Map<String, Material> _materials = new HashMap<String, Material>();
+    private static Map<String, MaterialElement> _elements = new HashMap<String, MaterialElement>();
     
     /** Creates a new instance of MaterialManager */
     private MaterialManager()
-    {}
+    {
+        if ( !_definedElements )
+        {
+            defineElements();
+            defineMaterialsForElements();
+        }
+    }
+    
+    public static MaterialManager instance()
+    {
+        if ( _instance == null )
+        {
+            _instance = new MaterialManager();
+        }
+        
+        return _instance;
+    }
     
-    static Map<String, Material> materials()
+    public static Map<String, Material> materials()
     {
         return _materials;
     }
     
-    static Map<String, MaterialElement> elements()
+    public static Map<String, MaterialElement> elements()
     {
-        return MaterialElement.elements();
+        return _elements;
     }
     
-    static void addMaterial(Material material)
+    public static void addMaterial(Material material)
     {
-        System.out.println("add material: " + material.getName() );
-        
-        if ( material == null ) 
+        if ( material == null )
         {
             throw new IllegalArgumentException("Material argument is null.");
         }
         
+        //System.out.println("MaterialManager.addMaterial() - " + material.getName() );
+        
         /* Only add the material if doesn't exist already. */
         if ( getMaterial(material.getName()) == null )
-        {        
+        {
             _materials.put(material.getName(), material);
         }
     }
-
-    static Material getMaterial(String materialName)
+    
+    public static Material getMaterial(String materialName)
     {
-        for ( Material m : materials().values())
-        {
-            System.out.println("defined material: " + m.getName());
-        }
-        
         return _materials.get(materialName);
-    }    
+    }
     
-    static MaterialElement getElement(String elementName)
+    public static MaterialElement getElement(String elementName)
     {
-        //String realName = getElementNameFromRef(elementName);
-        
-        //System.out.println("Looking up element: " + realName);
-        
-        MaterialElement me = (MaterialElement) MaterialElement.elements().get(elementName);
-        
-        //if ( me == null )
+  //      System.out.println("nelem defs: " + elements().values().size());
+        //for ( MaterialElement me : elements().values() )
         //{
-        //    System.err.println("element not found: " + elementName);
-        //}
+//            System.out.println( me.name() + " is defined");
+//        }
         
-        Object o;        
-        return me;
-    }        
+        return (MaterialElement) elements().get(elementName);
+    }
     
-    static void addElement(MaterialElement me)
+    public static void addElement(MaterialElement me)
     {
         MaterialElement meCheck = (MaterialElement) MaterialManager.getElement( me.name() );
         
         if ( meCheck == null )
         {
-            MaterialElement.elements().put(me.name(), me);
+            elements().put(me.name(), me);
         }
-        else 
+        else
         {
-            System.err.println("MaterialElement already exists: " + me.name() );
+            throw new RuntimeException("MaterialElement already exists: " + me.name() );
         }
     }
-       
-    /*
-    public static String getElementNameFromRef(String ref) 
-    {       
-        String elemName;
-        if ( ref.contains("_e") )
-        {
-            elemName = ref.replace("_e","");
-            System.out.println("normalized ref: " + ref + " -> " + elemName);
-        }
-        else 
+    
+    public static void defineElements()
+    {
+        MaterialElementData.defineElements();        
+    }
+    
+    public static void defineMaterialsForElements()
+    {
+        for ( MaterialElement me : elements().values() )
         {
-            elemName = ref;        
-        }
-
-        return elemName;
+            Material material = new Material( me.fullName(), 
+                    1,
+                    me.getDensity(), 
+                    MaterialState.UNKNOWN, 
+                    Material.DEFAULT_TEMPERATURE, 
+                    Material.DEFAULT_PRESSURE );
+            
+            material.addElement( me, 1.0);
+        }        
     }
-    */
-}
+}
\ No newline at end of file
CVSspam 0.2.8