Java tutorial
/******************************************************************************* * 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)); } }