Package com.buschmais.cdo.impl.bootstrap

Source Code of com.buschmais.cdo.impl.bootstrap.CdoBootstrapServiceImpl

package com.buschmais.cdo.impl.bootstrap;

import com.buschmais.cdo.api.CdoException;
import com.buschmais.cdo.api.CdoManagerFactory;
import com.buschmais.cdo.api.ValidationMode;
import com.buschmais.cdo.api.bootstrap.CdoBootstrapService;
import com.buschmais.cdo.impl.CdoManagerFactoryImpl;
import com.buschmais.cdo.spi.bootstrap.CdoDatastoreProvider;
import com.buschmais.cdo.api.bootstrap.CdoUnit;
import com.buschmais.cdo.spi.datastore.Datastore;

import java.net.URL;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Properties;

import com.buschmais.cdo.api.TransactionAttribute;

public class CdoBootstrapServiceImpl implements CdoBootstrapService {

    private CdoUnitFactory cdoUnitFactory;

    public CdoBootstrapServiceImpl() {
        cdoUnitFactory = new CdoUnitFactory();
    }

    @Override
    public CdoManagerFactory createCdoManagerFactory(String name) {
        CdoUnit cdoUnit = cdoUnitFactory.getCdoUnit(name);
        return createCdoManagerFactory(cdoUnit);
    }

    @Override
    public CdoManagerFactory createCdoManagerFactory(CdoUnit cdoUnit) {
        Class<?> providerType = cdoUnit.getProvider();
        if (providerType == null) {
            throw new CdoException("No provider specified for CDO unit '" + cdoUnit.getName() + "'.");
        }
        if (!CdoDatastoreProvider.class.isAssignableFrom(providerType)) {
            throw new CdoException(providerType.getName() + " specified as CDO provider must implement " + CdoDatastoreProvider.class.getName());
        }
        CdoDatastoreProvider cdoDatastoreProvider = CdoDatastoreProvider.class.cast(ClassHelper.newInstance(providerType));
        Datastore<?, ?, ?> datastore = cdoDatastoreProvider.createDatastore(cdoUnit);
        return new CdoManagerFactoryImpl(cdoUnit, datastore);
    }

}
TOP

Related Classes of com.buschmais.cdo.impl.bootstrap.CdoBootstrapServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.