package edu.internet2.middleware.grouper;
import java.io.InputStream;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Properties;
import java.util.Set;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;
class HibernateHelper
{
private static final Configuration CFG;
private static final SessionFactory FACTORY;
protected static void delete(Object paramObject)
throws HibernateException
{
LinkedHashSet localLinkedHashSet = new LinkedHashSet();
localLinkedHashSet.add(paramObject);
delete(localLinkedHashSet);
}
protected static void delete(Set paramSet)
throws HibernateException
{
Object localObject1 = null;
String str = "delete";
DebugLog.info(HibernateHelper.class, str + ": will delete " + paramSet.size());
try
{
Session localSession = getSession();
Transaction localTransaction = localSession.beginTransaction();
Iterator localIterator = paramSet.iterator();
try
{
while (localIterator.hasNext())
{
Object localObject2 = localIterator.next();
localObject1 = localObject2;
DebugLog.info(HibernateHelper.class, str + ": deleting " + localObject2);
localSession.delete(_getPersistent(localSession, localObject2));
DebugLog.info(HibernateHelper.class, str + ": deleted " + localObject2);
}
localTransaction.commit();
}
catch (HibernateException localHibernateException2)
{
str = str + ": unable to delete " + localObject1 + ": " + localHibernateException2.getMessage();
localTransaction.rollback();
throw new HibernateException(str, localHibernateException2);
}
finally
{
localSession.close();
}
}
catch (HibernateException localHibernateException1)
{
str = "hibernate error: " + localHibernateException1.getMessage();
ErrorLog.error(HibernateHelper.class, str);
throw new HibernateException(str, localHibernateException1);
}
DebugLog.info(HibernateHelper.class, str + ": deleted " + paramSet.size());
}
protected static Session getSession()
throws HibernateException
{
return FACTORY.openSession();
}
protected static void save(Object paramObject)
throws HibernateException
{
LinkedHashSet localLinkedHashSet = new LinkedHashSet();
localLinkedHashSet.add(paramObject);
save(localLinkedHashSet);
}
protected static void save(Set paramSet)
throws HibernateException
{
Object localObject1 = null;
String str = "save";
DebugLog.info(HibernateHelper.class, str + ": will save " + paramSet.size());
try
{
Session localSession = getSession();
Transaction localTransaction = localSession.beginTransaction();
Iterator localIterator = paramSet.iterator();
try
{
while (localIterator.hasNext())
{
Object localObject2 = localIterator.next();
localObject1 = localObject2;
DebugLog.info(HibernateHelper.class, str + ": saving " + localObject2);
localSession.saveOrUpdate(localObject2);
DebugLog.info(HibernateHelper.class, str + ": saved " + localObject2);
}
localTransaction.commit();
}
catch (HibernateException localHibernateException2)
{
str = str + ": unable to save " + localObject1 + ": " + localHibernateException2.getMessage();
localTransaction.rollback();
throw new HibernateException(str, localHibernateException2);
}
finally
{
localSession.close();
}
}
catch (HibernateException localHibernateException1)
{
str = "hibernate error: " + localHibernateException1.getMessage();
ErrorLog.error(HibernateHelper.class, str);
throw new HibernateException(str, localHibernateException1);
}
DebugLog.info(HibernateHelper.class, str + ": saved " + paramSet.size());
}
protected static void saveAndDelete(Set paramSet1, Set paramSet2)
throws HibernateException
{
try
{
Session localSession = getSession();
Transaction localObject1 = localSession.beginTransaction();
Iterator localIterator1 = paramSet2.iterator();
Iterator localIterator2 = paramSet1.iterator();
try
{
String str;
while (localIterator1.hasNext())
{
Object localObject2 = localIterator1.next();
try
{
localSession.delete(_getPersistent(localSession, localObject2));
}
catch (HibernateException localHibernateException2)
{
str = "hibernate error: unable to delete " + localObject2 + ": " + localHibernateException2.getMessage();
throw new HibernateException(str, localHibernateException2);
}
}
while (localIterator2.hasNext())
{
Object localObject3 = localIterator2.next();
try
{
localSession.saveOrUpdate(localObject3);
}
catch (HibernateException localHibernateException3)
{
str = "hibernate error: unable to save " + localObject3 + ": " + localHibernateException3.getMessage();
throw new HibernateException(str, localHibernateException3);
}
}
try
{
((Transaction)localObject1).commit();
}
catch (HibernateException localHibernateException4)
{
str = "hibernate commit error: " + localHibernateException4.getMessage();
throw new HibernateException(str, localHibernateException4);
}
}
catch (HibernateException localHibernateException5)
{
((Transaction)localObject1).rollback();
throw new HibernateException(localHibernateException5.getMessage(), localHibernateException5);
}
finally
{
localSession.close();
}
}
catch (HibernateException localHibernateException1)
{
Object localObject1 = localHibernateException1.getMessage();
ErrorLog.error(HibernateHelper.class, (String)localObject1);
throw new HibernateException((String)localObject1, localHibernateException1);
}
DebugLog.info(HibernateHelper.class, "saved: " + paramSet1.size() + " deleted: " + paramSet2.size());
}
private static Object _getPersistent(Session paramSession, Object paramObject)
{
int i = 0;
if (paramSession.contains(paramObject))
i = 1;
else
try
{
paramSession.update(paramObject);
if (paramSession.contains(paramObject))
i = 1;
}
catch (HibernateException localHibernateException)
{
ErrorLog.error(HibernateHelper.class, "error getting persistent object: " + localHibernateException.getMessage());
}
if (i == 0)
try
{
throw new GrouperRuntimeException();
}
catch (GrouperRuntimeException localGrouperRuntimeException)
{
String str = "error getting persistent object: " + paramObject + ":" + localGrouperRuntimeException.getMessage();
ErrorLog.fatal(HibernateHelper.class, str);
localGrouperRuntimeException.printStackTrace();
throw new GrouperRuntimeException(str, localGrouperRuntimeException);
}
return paramObject;
}
static
{
try
{
CFG = new Configuration().addProperties(GrouperConfig.getHibernateProperties()).addClass(Attribute.class).addClass(Field.class).addClass(GrouperSession.class).addClass(GroupType.class).addClass(HibernateSubject.class).addClass(HibernateSubjectAttribute.class).addClass(Member.class).addClass(Membership.class).addClass(Owner.class).addClass(Settings.class);
FACTORY = CFG.buildSessionFactory();
}
catch (Throwable localThrowable)
{
Object localObject = "unable to initialize hibernate: " + localThrowable.getMessage();
ErrorLog.fatal(HibernateHelper.class, (String)localObject);
throw new ExceptionInInitializerError(localThrowable);
}
}
}
/* Location: /Users/cmelean/Documents/Developer/source/cagrid/git/caGrid2/cagrid-gridgrouper/cagrid-gridgrouper-internet2/src/main/resources/grouper.jar
* Qualified Name: edu.internet2.middleware.grouper.HibernateHelper
* JD-Core Version: 0.6.2
*/