GeomConverter/src/org/lcsim/material
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