it.archiworld.util.EJBPreferenceStoreBean.java Source code

Java tutorial

Introduction

Here is the source code for it.archiworld.util.EJBPreferenceStoreBean.java

Source

/*******************************************************************************
 * Copyright (C) 2008  CS-Computer.
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * Contributors:
 *     CS-Computer - initial API and implementation
 ******************************************************************************/
package it.archiworld.util;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.hibernate.envers.AuditReader;
import org.hibernate.envers.AuditReaderFactory;
import org.hibernate.envers.query.AuditEntity;

@Stateless
public class EJBPreferenceStoreBean implements EJBPreferenceStore {

    @PersistenceContext
    private EntityManager manager;

    private AuditReader reader;

    public EJBPreferenceStoreBean() {
        super();
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#contains(java.lang.String)
     */
    public boolean contains(String name) {
        // TODO Auto-generated method stub
        return false;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getBoolean(java.lang.String)
     */
    @SuppressWarnings("unchecked")
    public boolean getBoolean(String name) {
        List result = manager.createQuery("Select ejbprefobject from EjbPreferenceObject where name=?")
                .setParameter(1, name).getResultList();
        return !result.isEmpty();
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getDefaultBoolean(java.lang.String)
     */
    public boolean getDefaultBoolean(String name) {
        // TODO Auto-generated method stub
        return false;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getDefaultDouble(java.lang.String)
     */
    public double getDefaultDouble(String name) {
        // TODO Auto-generated method stub
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getDefaultFloat(java.lang.String)
     */
    public float getDefaultFloat(String name) {
        // TODO Auto-generated method stub
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getDefaultInt(java.lang.String)
     */
    public int getDefaultInt(String name) {
        // TODO Auto-generated method stub
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getDefaultLong(java.lang.String)
     */
    public long getDefaultLong(String name) {
        // TODO Auto-generated method stub
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getDefaultString(java.lang.String)
     */
    public String getDefaultString(String name) {
        // TODO Auto-generated method stub
        return null;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getDouble(java.lang.String)
     */
    @SuppressWarnings("unchecked")
    public double getDouble(String name) {
        List<Double> list = manager
                .createQuery(
                        "Select ejbprefobj.dvalue from EJBPreferenceObject as ejbprefobj where ejbprefobj.name=?")
                .setParameter(1, name).getResultList();
        if (!list.isEmpty())
            return list.get(0);
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getFloat(java.lang.String)
     */
    @SuppressWarnings("unchecked")
    public float getFloat(String name) {
        List<Float> list = manager
                .createQuery(
                        "Select ejbprefobj.fvalue from EJBPreferenceObject as ejbprefobj where ejbprefobj.name=?")
                .setParameter(1, name).getResultList();
        if (!list.isEmpty())
            return list.get(0);
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getInt(java.lang.String)
     */
    @SuppressWarnings("unchecked")
    public int getInt(String name) {
        List<Integer> list = manager
                .createQuery(
                        "Select ejbprefobj.ivalue from EJBPreferenceObject as ejbprefobj where ejbprefobj.name=?")
                .setParameter(1, name).getResultList();
        if (!list.isEmpty())
            return list.get(0);
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getLong(java.lang.String)
     */
    @SuppressWarnings("unchecked")
    public long getLong(String name) {
        List<Long> list = manager
                .createQuery(
                        "Select ejbprefobj.lvalue from EJBPreferenceObject as ejbprefobj where ejbprefobj.name=?")
                .setParameter(1, name).getResultList();
        if (!list.isEmpty())
            return list.get(0);
        return 0;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#getString(java.lang.String)
     */
    @SuppressWarnings("unchecked")
    public String getString(String name) {
        List<String> list = manager
                .createQuery(
                        "Select ejbprefobj.svalue from EJBPreferenceObject as ejbprefobj where ejbprefobj.name=?")
                .setParameter(1, name).getResultList();
        if (!list.isEmpty())
            return list.get(0);
        return null;
    }

    @SuppressWarnings("unchecked")
    public List<String> getStringList(String name, Timestamp timestamp) {
        List<EJBPreferenceObject> list = null;
        if (timestamp != null) {
            System.out.println("Getting Stringlist " + name + " with Timestamp: " + timestamp);
            try {
                reader = AuditReaderFactory.get(manager);
                Number revision = reader.getRevisionNumberForDate(new Date(timestamp.getTime()));
                System.out.println(revision);
                list = reader.createQuery().forEntitiesAtRevision(EJBPreferenceObject.class, revision)
                        .add(AuditEntity.id().eq(name)).setMaxResults(1).getResultList();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        } else {
            System.out.println("Getting Stringlist without Timestamp");
            list = manager
                    .createQuery("Select ejbprefobj from EJBPreferenceObject as ejbprefobj where ejbprefobj.name=?")
                    .setParameter(1, name).getResultList();
        }
        if (list != null && !list.isEmpty() && list.get(0) != null)
            return list.get(0).getListString();
        return null;
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#putValue(java.lang.String, java.lang.String)
     */
    public void putValue(String name, String value) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setDefault(java.lang.String, double)
     */
    public void setDefault(String name, double value) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setDefault(java.lang.String, float)
     */
    public void setDefault(String name, float value) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setDefault(java.lang.String, int)
     */
    public void setDefault(String name, int value) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setDefault(java.lang.String, long)
     */
    public void setDefault(String name, long value) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setDefault(java.lang.String, java.lang.String)
     */
    public void setDefault(String name, String defaultObject) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setDefault(java.lang.String, boolean)
     */
    public void setDefault(String name, boolean value) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setToDefault(java.lang.String)
     */
    public void setToDefault(String name) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setValue(java.lang.String, double)
     */
    public void setValue(String name, double value) {
        manager.merge(new EJBPreferenceObject(name, value));
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setValue(java.lang.String, float)
     */
    public void setValue(String name, float value) {
        manager.merge(new EJBPreferenceObject(name, value));
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setValue(java.lang.String, int)
     */
    public void setValue(String name, int value) {
        manager.merge(new EJBPreferenceObject(name, value));
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setValue(java.lang.String, long)
     */
    public void setValue(String name, long value) {
        manager.merge(new EJBPreferenceObject(name, value));
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setValue(java.lang.String, java.lang.String)
     */
    public void setValue(String name, String value) {
        manager.merge(new EJBPreferenceObject(name, value));
    }

    /* (non-Javadoc)
     * @see it.archiworld.util.EJBPreferenceStore#setValue(java.lang.String, boolean)
     */
    public void setValue(String name, boolean value) {
        manager.merge(new EJBPreferenceObject(name, value));
    }

    public void setValue(String name, List<String> value) {
        manager.merge(new EJBPreferenceObject(name, value));
    }

}