Package com.impetus.client.crud.datatypes

Source Code of com.impetus.client.crud.datatypes.MongoBase

package com.impetus.client.crud.datatypes;

import java.lang.reflect.Field;
import java.util.Map;

import javax.persistence.EntityManager;

import com.impetus.client.mongodb.MongoDBClient;
import com.impetus.kundera.client.Client;
import com.impetus.kundera.datatypes.datagenerator.DataGenerator;
import com.impetus.kundera.datatypes.datagenerator.DataGeneratorFactory;
import com.mongodb.DB;

public abstract class MongoBase
{
    public static final boolean RUN_IN_EMBEDDED_MODE = false;

    public static final boolean AUTO_MANAGE_SCHEMA = false;

    protected static final String PERSISTENCE_UNIT = "MongoDataTypeTest";

    DataGenerator<?> dataGenerator;

    DataGeneratorFactory factory = new DataGeneratorFactory();

    protected Object getMaxValue(Class<?> clazz)
    {
        dataGenerator = factory.getDataGenerator(clazz);
        return dataGenerator.maxValue();
    }

    protected Object getMinValue(Class<?> clazz)
    {
        dataGenerator = factory.getDataGenerator(clazz);
        return dataGenerator.minValue();
    }

    protected Object getRandomValue(Class<?> clazz)
    {
        dataGenerator = factory.getDataGenerator(clazz);
        return dataGenerator.randomValue();
    }

    protected Object getPartialValue(Class<?> clazz)
    {
        dataGenerator = factory.getDataGenerator(clazz);
        return dataGenerator.partialValue();
    }

    /**
     *
     */
    protected void truncateMongo(EntityManager em, final String persistenceUnit, final String tableName)
    {
        Map<String, Client> clients = (Map<String, Client>) em.getDelegate();
        MongoDBClient client = (MongoDBClient) clients.get(persistenceUnit);
        if (client != null)
        {
            try
            {
                Field db = client.getClass().getDeclaredField("mongoDb");
                if (!db.isAccessible())
                {
                    db.setAccessible(true);
                }
                DB mongoDB = (DB) db.get(client);
                mongoDB.getCollection(tableName).drop();
            }
            catch (SecurityException e)
            {
                // TODO Auto-generated catch block
               
            }
            catch (NoSuchFieldException e)
            {
                // TODO Auto-generated catch block
               
            }
            catch (IllegalArgumentException e)
            {
                // TODO Auto-generated catch block
               
            }
            catch (IllegalAccessException e)
            {
                // TODO Auto-generated catch block
               
            }
        }

    }

    protected abstract void startCluster();

    protected abstract void stopCluster();

    protected abstract void createSchema();

    protected abstract void dropSchema();
}
TOP

Related Classes of com.impetus.client.crud.datatypes.MongoBase

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.