// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3)
// Source File Name: FileClassFactory.java
package hep.rootio.implementation;
import hep.rootio.*;
import hep.rootio.interfaces.*;
import java.io.IOException;
import java.util.*;
// Referenced classes of package hep.rootio.implementation:
// StreamerInfoNew, DefaultClassFactory, SpecificRootClass, GenericRootClass
public class FileClassFactory
implements RootClassFactory
{
public FileClassFactory(TKey streamerInfo, RootClassFactory defaultClassFactory, RootFileReader rfr)
throws IOException
{
classMap = new Hashtable();
this.defaultClassFactory = defaultClassFactory;
this.rfr = rfr;
List tList = (List)streamerInfo.getObject();
for(Iterator i = tList.iterator(); i.hasNext();)
{
TStreamerInfo element = (TStreamerInfo)i.next();
String key = element.getName();
StreamerInfo info = new StreamerInfoNew(element);
Class c = ((DefaultClassFactory)defaultClassFactory).findClass(key);
if(c != null)
classMap.put(key, new SpecificRootClass(c, key, info, rfr));
else
classMap.put(key, new GenericRootClass(key, info, rfr));
}
try
{
RootClass info;
for(Enumeration e = classMap.elements(); e.hasMoreElements(); info.resolve(this))
info = (RootClass)e.nextElement();
}
catch(RootClassNotFound x)
{
x.printStackTrace();
throw new RuntimeException("Could not resolve class " + x.getClassName());
}
}
public RootClass create(String name)
throws RootClassNotFound
{
RootClass klass = (RootClass)classMap.get(name);
if(klass != null)
return klass;
else
return defaultClassFactory.create(name);
}
private RootClassFactory defaultClassFactory;
private RootFileReader rfr;
private Hashtable classMap;
}
Ads help maintain this website.