// Copyright 2000-2003, FreeHEP.
package hep.graphics.heprep.ref;

import java.io.*;
import java.util.zip.*;

import org.freehep.util.*;

import hep.graphics.heprep.*;
import hep.graphics.heprep.xml.*;

/**
 *
 * @author Mark Donszelmann
 *
 * @version $Id: DefaultHepRepFactory.java,v 1.12 2004/05/13 04:06:03 duns Exp $
 */

public class DefaultHepRepFactory extends HepRepFactory {
    public static final String cvsId = "$Id: DefaultHepRepFactory.java,v 1.12 2004/05/13 04:06:03 duns Exp $";

    public DefaultHepRepFactory() {
    }

    public HepRepReader createHepRepReader(InputStream in) throws IOException {
        return new DefaultHepRepReader(in);
    }

    public HepRepReader createHepRepReader(String inputFileName) throws IOException {
        return new DefaultHepRepReader(inputFileName);
    }

    public HepRepWriter createHepRepWriter(OutputStream out, boolean randomAccess, boolean compress) throws IOException {
        return new DefaultHepRepWriter(out, randomAccess, compress);
    }

    public HepRepPoint createHepRepPoint (HepRepInstance instance,
                                   double x, double y, double z) {
        return new DefaultHepRepPoint(instance, x, y, z);
    }

    public HepRepInstance createHepRepInstance (HepRepInstance parent, HepRepType type) {
        return new DefaultHepRepInstance(parent, type);
    }

    public HepRepInstance createHepRepInstance (HepRepInstanceTree parent, HepRepType type) {
        return new DefaultHepRepInstance(parent, type);
    }

    public HepRepTreeID createHepRepTreeID (String name, String version, String qualifier) {
        return new DefaultHepRepTreeID(name, version, qualifier);
    }

    public HepRepAction createHepRepAction (String name, String expression) {
        return new DefaultHepRepAction(name, expression);
    }

    public HepRepInstanceTree createHepRepInstanceTree (String name, String version,
                                                        HepRepTreeID typeTree) {
        return new DefaultHepRepInstanceTree(name, version, typeTree);
    }

    public HepRepType createHepRepType (HepRepType parent, String name) {
        return new DefaultHepRepType(parent, name);
    }

    public HepRepType createHepRepType (HepRepTypeTree parent, String name) {
        return new DefaultHepRepType(parent, name);
    }

    public HepRepTypeTree createHepRepTypeTree (HepRepTreeID treeID) {
        return new DefaultHepRepTypeTree(treeID);
    }

    public HepRep createHepRep () {
        return new DefaultHepRep();
    }
}
