// 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.