private <T> T doAction(final T graph, final UpdateFilter filter, final UpdateAction<T> action) { final Session session = session(); T retVal; beforeUpdate(graph, filter); retVal = action.run(graph, filter, session); afterUpdate(filter, session); return retVal; }
@Override public IObject run(IObject value, UpdateFilter filter, Session s) { internalDelete(value, filter, s); return null; } });
@Override public IObject run(IObject value, UpdateFilter filter, Session s) { return internalMerge(value, filter, s); } });
private void beforeUpdate(Object argument, UpdateFilter filter) { if (argument == null) { throw new IllegalArgumentException( "Argument to save cannot be null."); } if (getBeanHelper().getLogger().isDebugEnabled()) { getBeanHelper().getLogger().debug(" Saving event before merge. "); } }
@RolesAllowed("user") public void saveObject(IObject graph) { doAction(graph, new UpdateAction<IObject>() { @Override public IObject run(IObject value, UpdateFilter filter, Session s) { return internalMerge(value, filter, s); } }); }
@RolesAllowed("user") public List<Long> saveAndReturnIds(IObject[] graph) { if (graph == null || graph.length == 0) { return Collections.emptyList(); // EARLY EXIT! } final List<Long> ids = new ArrayList<Long>(graph.length); final ReloadFilter filter = new ReloadFilter(session()); doAction(graph, filter, new UpdateAction<IObject[]>() { @Override public IObject[] run(IObject[] value, UpdateFilter filter, Session s) { for (int i = 0; i < value.length; i++) { ids.add(i, internalSave(value[i], (ReloadFilter) filter, s)); } return null; } }); return ids; }
@Override public IObject[] run(IObject[] value, UpdateFilter filter, Session s) { for (int i = 0; i < value.length; i++) { ids.add(i, internalSave(value[i], (ReloadFilter) filter, s)); } return null; } });
private Session session() { return SessionFactoryUtils.getSession(getSessionFactory(), false); } }
@RolesAllowed("user") public void flush() { session().flush(); }
public void setSessionManager(SessionManager sessionManager) { getBeanHelper().throwIfAlreadySet(this.sessionManager, sessionManager); this.sessionManager = sessionManager; }
@RolesAllowed("user") public IObject saveAndReturnObject(IObject graph) { return doAction(graph, new UpdateAction<IObject>() { @Override public IObject run(IObject value, UpdateFilter filter, Session s) { return internalMerge(value, filter, s); } }); }
public void setFullTextBridge(FullTextBridge fullTextBridge) { getBeanHelper().throwIfAlreadySet(this.fullTextBridge, fullTextBridge); this.fullTextBridge = fullTextBridge; }
@RolesAllowed("user") public IObject[] saveAndReturnArray(IObject[] graph) { return doAction(graph, new UpdateAction<IObject[]>() { @Override public IObject[] run(IObject[] value, UpdateFilter filter, Session s) { IObject[] copy = new IObject[value.length]; for (int i = 0; i < value.length; i++) { copy[i] = internalMerge(value[i], filter, s); } return copy; } }); }
@Override public IObject[] run(IObject[] value, UpdateFilter filter, Session s) { IObject[] copy = new IObject[value.length]; for (int i = 0; i < value.length; i++) { copy[i] = internalMerge(value[i], filter, s); } return copy; } });
public final void setQueryService(LocalQuery query) { getBeanHelper().throwIfAlreadySet(this.localQuery, query); this.localQuery = query; }
private <T> T doAction(final T graph, final UpdateAction<T> action) { final UpdateFilter filter = new UpdateFilter(); return doAction(graph, filter, action); }
@Override public IObject[] run(IObject[] value, UpdateFilter filter, Session s) { IObject[] copy = new IObject[value.length]; for (int i = 0; i < value.length; i++) { copy[i] = internalMerge(value[i], filter, s); } return copy; } });
public void setExecutor(Executor executor) { getBeanHelper().throwIfAlreadySet(this.executor, executor); this.executor = executor; }
@RolesAllowed("user") public void saveArray(IObject[] graph) { doAction(graph, new UpdateAction<IObject[]>() { @Override public IObject[] run(IObject[] value, UpdateFilter filter, Session s) { IObject[] copy = new IObject[value.length]; for (int i = 0; i < value.length; i++) { copy[i] = internalMerge(value[i], filter, s); } return copy; } }); }
@Override public IObject run(IObject value, UpdateFilter filter, Session s) { return internalMerge(value, filter, s); } });