/*
* RmiStoreFactory.java
*
* Created on October 14, 2003, 7:18 PM
*/
package hep.aida.ref.remote.rmi.client;
import hep.aida.dev.IStoreFactory;
import hep.aida.ref.remote.RemoteTable;
import hep.aida.ref.remote.rmi.converters.RmiCloud1DConverter;
import hep.aida.ref.remote.rmi.converters.RmiCloud2DConverter;
import hep.aida.ref.remote.rmi.converters.RmiDataPointSetConverter;
import hep.aida.ref.remote.rmi.converters.RmiHist1DConverter;
import hep.aida.ref.remote.rmi.converters.RmiHist2DConverter;
import hep.aida.ref.remote.rmi.converters.RmiProfile1DConverter;
import hep.aida.ref.remote.rmi.converters.RmiTableConverter;
import org.freehep.util.FreeHEPLookup;
/**
*
* @author serbo
*/
public class RmiStoreFactory implements IStoreFactory {
public static String storeType = "aidaRmi";
/** Creates a new instance of RmiStoreFactory */
public RmiStoreFactory() {
FreeHEPLookup lookup = FreeHEPLookup.instance();
// Register needed RMI Converters
Object item = lookup.lookup(RmiHist1DConverter.class);
if (item == null) {
lookup.add(RmiHist1DConverter.getInstance(), "IHistogram1D");
}
item = lookup.lookup(RmiHist2DConverter.class);
if (item == null) {
lookup.add(RmiHist2DConverter.getInstance(), "IHistogram2D");
}
item = lookup.lookup(RmiDataPointSetConverter.class);
if (item == null) {
lookup.add(RmiDataPointSetConverter.getInstance(), "IDataPointSet");
}
item = lookup.lookup(RmiCloud1DConverter.class);
if (item == null) {
lookup.add(RmiCloud1DConverter.getInstance(), "ICloud1D");
}
item = lookup.lookup(RmiCloud2DConverter.class);
if (item == null) {
lookup.add(RmiCloud2DConverter.getInstance(), "ICloud2D");
}
item = lookup.lookup(RmiProfile1DConverter.class);
if (item == null) {
lookup.add(RmiProfile1DConverter.getInstance(), "IProfile1D");
}
item = lookup.lookup(RmiTableConverter.class);
if (item == null) {
RemoteTable rt = new RemoteTable("tmp");
lookup.add(RmiTableConverter.getInstance(), rt.type());
}
}
public hep.aida.dev.IStore createStore() {
return new RmiMutableStore();
}
public String description() {
return storeType;
}
public boolean supportsType(String type) {
return storeType.equalsIgnoreCase(type);
}
}