// Path: de.hatoka.common/src/main/java/de/hatoka/common/capi/dao/SequenceProvider.java
// public interface SequenceProvider
// {
//     /**
//      * Creates new sequence for a given name
//      *
//      * @param name
//      *            of sequence
//      * @return next number of sequence
//      */
//     public UUIDGenerator create(String name);
// 
//     /**
//      * Create a new sequence for a given name and last number, so the sequence can
//      * start with the next number
//      *
//      * @param name
//      * @param number
//      */
//     public UUIDGenerator create(String name, long number);
// }
// 
// Path: de.hatoka.common/src/main/java/de/hatoka/common/capi/dao/UUIDGenerator.java
// public interface UUIDGenerator
// {
//     public String generate();
// }


import com.google.inject.Binder;
import com.google.inject.Module;
import de.hatoka.common.capi.dao.EncryptionUtils;
import de.hatoka.common.capi.dao.SequenceProvider;
import de.hatoka.common.capi.dao.UUIDGenerator;
import de.hatoka.common.internal.dao.EncryptionUtilsImpl;
import de.hatoka.common.internal.dao.SequenceProviderImpl;
import de.hatoka.common.internal.dao.UUIDGeneratorImpl;
package de.hatoka.common.capi.modules;



public class CommonDaoModule implements Module
{
    private long start;

    public CommonDaoModule()
    {
        this(0);
    }

    public CommonDaoModule(long sequenceStartPosition)
    {
        start = sequenceStartPosition;
    }

    @Override
    public void configure(Binder binder)
    {
        binder.bind(UUIDGenerator.class).to(UUIDGeneratorImpl.class).asEagerSingleton();
        binder.bind(EncryptionUtils.class).to(EncryptionUtilsImpl.class).asEagerSingleton();
// Path: de.hatoka.common/src/main/java/de/hatoka/common/capi/dao/SequenceProvider.java
// public interface SequenceProvider
// {
//     /**
//      * Creates new sequence for a given name
//      *
//      * @param name
//      *            of sequence
//      * @return next number of sequence
//      */
//     public UUIDGenerator create(String name);
// 
//     /**
//      * Create a new sequence for a given name and last number, so the sequence can
//      * start with the next number
//      *
//      * @param name
//      * @param number
//      */
//     public UUIDGenerator create(String name, long number);
// }
// 
// Path: de.hatoka.common/src/main/java/de/hatoka/common/capi/dao/UUIDGenerator.java
// public interface UUIDGenerator
// {
//     public String generate();
// }


// Path: de.hatoka.common/src/main/java/de/hatoka/common/capi/modules/CommonDaoModule.java
import com.google.inject.Binder;
import com.google.inject.Module;
import de.hatoka.common.capi.dao.EncryptionUtils;
import de.hatoka.common.capi.dao.SequenceProvider;
import de.hatoka.common.capi.dao.UUIDGenerator;
import de.hatoka.common.internal.dao.EncryptionUtilsImpl;
import de.hatoka.common.internal.dao.SequenceProviderImpl;
import de.hatoka.common.internal.dao.UUIDGeneratorImpl;

package de.hatoka.common.capi.modules;



public class CommonDaoModule implements Module
{
    private long start;

    public CommonDaoModule()
    {
        this(0);
    }

    public CommonDaoModule(long sequenceStartPosition)
    {
        start = sequenceStartPosition;
    }

    @Override
    public void configure(Binder binder)
    {
        binder.bind(UUIDGenerator.class).to(UUIDGeneratorImpl.class).asEagerSingleton();
        binder.bind(EncryptionUtils.class).to(EncryptionUtilsImpl.class).asEagerSingleton();
        binder.bind(SequenceProvider.class).toInstance(new SequenceProviderImpl(start));