blob: 96a965cd4fa6d5b354452fb567f0960f7dd320b2 [file] [log] [blame]
package org.eclipse.ecf.internal.storage;
import org.eclipse.ecf.core.*;
import org.eclipse.ecf.core.identity.*;
import org.eclipse.ecf.core.provider.BaseContainerInstantiator;
import org.eclipse.ecf.storage.IStorableContainerAdapter;
public class StorableContainerInstantiator extends BaseContainerInstantiator {
private static long nextBaseContainerID = 0L;
public IContainer createInstance(ContainerTypeDescription description,
Object[] parameters) throws ContainerCreateException {
try {
if (parameters != null && parameters.length > 0) {
if (parameters[0] instanceof ID)
return new StorableBaseContainer((ID) parameters[0]);
if (parameters[0] instanceof String)
return new StorableBaseContainer(IDFactory.getDefault()
.createStringID((String) parameters[0]));
}
} catch (IDCreateException e) {
throw new ContainerCreateException(
"Could not create StorableBaseContainer"); //$NON-NLS-1$
}
return new StorableBaseContainer(nextBaseContainerID++);
}
public String[] getSupportedAdapterTypes(
ContainerTypeDescription description) {
return new String[] { IStorableContainerAdapter.class.getName() };
}
}