/* * $Id$ * * Copyright 2009 Glencoe Software, Inc. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ package ome.tools.hibernate; import ome.model.IObject; import ome.security.SecureAction; import ome.security.auth.SimpleRoleProvider; import org.hibernate.Session; /** * Helper originally from {@link SimpleRoleProvider} for merging admin objects. * * @author Josh Moore, josh at glencoesoftware.com * @since 4.0 * */ public class SecureMerge implements SecureAction { private final Session session; private final boolean flush; public SecureMerge(Session session) { this(session, false); } public SecureMerge(Session session, boolean flush) { this.flush = flush; this.session = session; } @SuppressWarnings("unchecked") public <T extends IObject> T updateObject(T... objs) { T t = (T) session.merge(objs[0]); if (flush) { session.flush(); } return t; } }