@Override public Task updateImpl(com.rivetlogic.portlet.todo.model.Task task) throws SystemException { task = toUnwrappedModel(task); boolean isNew = task.isNew(); TaskModelImpl taskModelImpl = (TaskModelImpl) task; Session session = null; try { session = openSession(); if (task.isNew()) { session.save(task); task.setNew(false); } else { session.merge(task); } } catch (Exception e) { throw processException(e); } finally { closeSession(session); } FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST_WITH_PAGINATION); if (isNew || !TaskModelImpl.COLUMN_BITMASK_ENABLED) { FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION); } else { if ((taskModelImpl.getColumnBitmask() & FINDER_PATH_WITHOUT_PAGINATION_FIND_BY_USERID.getColumnBitmask()) != 0) { Object[] args = new Object[] {taskModelImpl.getOriginalUserId()}; FinderCacheUtil.removeResult(FINDER_PATH_COUNT_BY_USERID, args); FinderCacheUtil.removeResult(FINDER_PATH_WITHOUT_PAGINATION_FIND_BY_USERID, args); args = new Object[] {taskModelImpl.getUserId()}; FinderCacheUtil.removeResult(FINDER_PATH_COUNT_BY_USERID, args); FinderCacheUtil.removeResult(FINDER_PATH_WITHOUT_PAGINATION_FIND_BY_USERID, args); } } EntityCacheUtil.putResult( TaskModelImpl.ENTITY_CACHE_ENABLED, TaskImpl.class, task.getPrimaryKey(), task); return task; }
protected Task toUnwrappedModel(Task task) { if (task instanceof TaskImpl) { return task; } TaskImpl taskImpl = new TaskImpl(); taskImpl.setNew(task.isNew()); taskImpl.setPrimaryKey(task.getPrimaryKey()); taskImpl.setTaskId(task.getTaskId()); taskImpl.setUserId(task.getUserId()); taskImpl.setName(task.getName()); taskImpl.setDescription(task.getDescription()); taskImpl.setDate(task.getDate()); taskImpl.setCompleted(task.getCompleted()); taskImpl.setCalendarBookingId(task.getCalendarBookingId()); return taskImpl; }