@Override public int getDistinctCountByPeriodUser( List<WAPrimaryKey> primaryKeys, int action, String objectType, Date startDate, Date endDate, List<String> userIds) { int nb = 0; Connection con = getConnection(); if (userIds != null && !userIds.isEmpty()) { Set<String> distinctObjectIds = new HashSet<>(userIds.size()); try { for (String userId : userIds) { List<String> objectIds = HistoryObjectDAO.getListObjectAccessByPeriodAndUser( con, primaryKeys, objectType, startDate, endDate, userId); distinctObjectIds.addAll(objectIds); } nb = distinctObjectIds.size(); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().getDistinctCountByPeriod()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_GET_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } } return nb; }
/* * (non-Javadoc) * @see * FormsOnlineDAO#createInstance(com.silverpeas.formsonline.model * .FormInstance) */ public FormInstance createInstance(FormInstance instance) throws FormsOnlineDatabaseException { Connection con = getConnection(); try (PreparedStatement stmt = con.prepareStatement(QUERY_INSERT_FORMINSTANCE)) { int id = DBUtil.getNextId(FORMS_INSTANCES_TABLENAME, "id"); stmt.setInt(1, id); stmt.setInt(2, instance.getFormId()); stmt.setInt(3, instance.getState()); stmt.setString(4, instance.getCreatorId()); prepareDateStatement(stmt, 5, instance.getCreationDate()); stmt.setString(6, instance.getValidatorId()); prepareDateStatement(stmt, 7, instance.getValidationDate()); stmt.setString(8, instance.getComments()); stmt.setString(9, instance.getComponentInstanceId()); stmt.executeUpdate(); instance.setId(id); return instance; } catch (SQLException se) { throw new FormsOnlineDatabaseException( "FormsOnlineDAOJdbc.createInstance()", SilverpeasException.ERROR, "formsOnline.INSERTING_FORMINSTANCE_FAILED", se); } finally { freeConnection(con); } }
/** * Method declaration * * @param con * @param pk * @param coordinatePoints * @throws SQLException * @see */ public static void removeCoordinatesByPoints( Connection con, CoordinatePK pk, List<String> coordinatePoints) throws SQLException { StringBuilder deleteQuery = new StringBuilder("DELETE FROM sb_coordinates_coordinates WHERE "); if (coordinatePoints != null) { Iterator<String> it = coordinatePoints.iterator(); deleteQuery.append("("); while (it.hasNext()) { String pointId = it.next(); deleteQuery.append(" nodeId = ").append(pointId); if (it.hasNext()) { deleteQuery.append(" or "); } } deleteQuery.append(" ) "); } deleteQuery.append(" AND instanceId ='").append(pk.getComponentName()).append("'"); Statement stmt = null; try { stmt = con.createStatement(); stmt.executeUpdate(deleteQuery.toString()); } finally { DBUtil.close(stmt); } }
@Override public int getCountByPeriodAndUser( List<WAPrimaryKey> primaryKeys, String objectType, Date startDate, Date endDate, List<String> userIds) { int nb = 0; Connection con = getConnection(); try { if (!userIds.isEmpty()) { for (String userId : userIds) { for (WAPrimaryKey primaryKey : primaryKeys) { nb += HistoryObjectDAO.getCountByPeriodAndUser( con, primaryKey, objectType, startDate, endDate, userId); } } } } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().getCountByPeriodAndUser()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_GET_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } return nb; }
public static List<String> getHolidayDates( Connection con, String userId, Date beginDate, Date endDate) throws SQLException { List<String> holidayDates = new ArrayList<String>(); StringBuilder query = new StringBuilder(128); query.append("select * "); query.append("from ").append(AGENDA_HOLIDAYS_TABLENAME); query.append(" where userId = ? "); query.append(" and ? <= holidayDate "); query.append(" and holidayDate <= ? "); query.append("order by holidayDate ASC"); PreparedStatement stmt = null; ResultSet rs = null; try { stmt = con.prepareStatement(query.toString()); stmt.setInt(1, Integer.parseInt(userId)); stmt.setString(2, DateUtil.date2SQLDate(beginDate)); stmt.setString(3, DateUtil.date2SQLDate(endDate)); rs = stmt.executeQuery(); while (rs.next()) { holidayDates.add(rs.getString("holidayDate")); } } finally { DBUtil.close(rs, stmt); } return holidayDates; }
public FormDetail createForm(FormDetail formDetail) throws FormsOnlineDatabaseException { Connection con = getConnection(); try (PreparedStatement stmt = con.prepareStatement(QUERY_INSERT_FORM)) { int id = DBUtil.getNextId(FORMS_TABLENAME, "id"); stmt.setInt(1, id); stmt.setString(2, formDetail.getXmlFormName()); stmt.setString(3, formDetail.getName()); stmt.setString(4, formDetail.getDescription()); stmt.setString(5, formDetail.getTitle()); stmt.setString(6, formDetail.getCreatorId()); prepareDateStatement(stmt, 7, formDetail.getCreationDate()); stmt.setInt(8, formDetail.getState()); stmt.setInt(9, (formDetail.isAlreadyUsed()) ? 1 : 0); stmt.setString(10, formDetail.getInstanceId()); stmt.executeUpdate(); formDetail.setId(id); return formDetail; } catch (SQLException se) { throw new FormsOnlineDatabaseException( "FormsOnlineDAOJdbc.createForm()", SilverpeasException.ERROR, "formsOnline.INSERTING_FORM_FAILED", se); } finally { freeConnection(con); } }
private Connection getConnection() { try { return DBUtil.openConnection(); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().getConnection()", SilverpeasRuntimeException.ERROR, "root.EX_CONNECTION_OPEN_FAILED", e); } }
private static List<String> selectCoordinateIdsByNodeIds( Connection con, List<String> fatherPaths, CoordinatePK pk) throws SQLException { ResultSet rs = null; String fatherPath = ""; String whereClause = ""; String fatherId = ""; String rootFatherId = ""; int axisToMatch = fatherPaths.size(); if (fatherPaths != null) { Iterator<String> it = fatherPaths.iterator(); while (it.hasNext()) { fatherPath = it.next(); // enleve le premier /0/ fatherPath = fatherPath.substring(1); fatherPath = fatherPath.substring(fatherPath.indexOf('/') + 1, fatherPath.length()); // extrait l'id fatherId = fatherPath.substring(fatherPath.lastIndexOf('/') + 1, fatherPath.length()); // extrait l'id de la racine rootFatherId = fatherPath.substring(0, fatherPath.indexOf('/')); whereClause += " nodeId = " + fatherId; whereClause += " or (nodeId = " + rootFatherId + " and coordinatesLeaf = '1') "; if (it.hasNext()) { whereClause += " Or "; } } } String selectStatement = "select coordinatesId, count(*) " + "from " + pk.getTableName() + " "; if (fatherPaths != null && fatherPaths.size() > 0) { selectStatement += "where " + whereClause; } selectStatement += " And instanceId = '" + pk.getComponentName() + "' "; selectStatement += " GROUP BY coordinatesId"; PreparedStatement prepStmt = null; try { prepStmt = con.prepareStatement(selectStatement); rs = prepStmt.executeQuery(); List<String> list = new ArrayList<String>(); int coordinateId = 0; int nbMatches = 0; while (rs.next()) { coordinateId = rs.getInt(1); nbMatches = rs.getInt(2); if (nbMatches == axisToMatch) { list.add(new Integer(coordinateId).toString()); } } return list; } finally { DBUtil.close(rs, prepStmt); } }
protected final synchronized void createConnection() throws UtilException { try { if (this.connection != null) { DBUtil.close(this.connection); } this.connection = DBUtil.openConnection(); if (!this.connection.getAutoCommit()) { managed = true; } else { managed = false; this.connection.setAutoCommit(false); } isLocalConnection = true; } catch (SQLException e) { throw new UtilException( "Schema.createConnection", SilverpeasException.ERROR, "root.EX_DATASOURCE_INVALID", e); } }
/** * Get a new connection. * * @return the initialized connection. * @throws FormsOnlineDatabaseException if a database error occured while getting connection */ protected Connection getConnection() throws FormsOnlineDatabaseException { try { return DBUtil.openConnection(); } catch (SQLException e) { throw new FormsOnlineDatabaseException( "FormsOnlineDAOJdbc.getConnection()", SilverpeasException.FATAL, "root.EX_CONNECTION_OPEN_FAILED", e); } }
public synchronized void close() { /* * for (Object o : statementsMap.values()) { DBUtil.close((Statement) o); } * statementsMap.clear(); */ try { DBUtil.close(this.connection); } finally { connection = null; } }
/** * Deletes the resources belonging to the specified component instance. This method is invoked by * Silverpeas when a component instance is being deleted. * * @param componentInstanceId the unique identifier of a component instance. */ @Override @Transactional public void delete(final String componentInstanceId) { Connection con = getConnection(); try { HistoryObjectDAO.deleteStatsOfComponent(con, componentInstanceId); } catch (Exception e) { throw new RuntimeException( "A failure occurred when deleting the statistics relative to the component instance " + componentInstanceId, e); } finally { DBUtil.close(con); } }
@Override public int getCount(List<ForeignPK> foreignPKs, int action, String objectType) { Connection con = getConnection(); try { return HistoryObjectDAO.getCount(con, foreignPKs, objectType); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().getCount()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_GET_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } }
/** * Method declaration * * @param con * @param pk * @return * @throws SQLException * @see */ static Collection<String> getCoordinateIds(Connection con, CoordinatePK pk) throws SQLException { List<String> coordinateIds = new ArrayList<String>(); PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = con.prepareStatement(SELECT_BY_COMPONENT); pstmt.setString(1, pk.getComponentName()); rs = pstmt.executeQuery(); while (rs.next()) { coordinateIds.add(rs.getString("coordinatesid")); } } finally { DBUtil.close(rs, pstmt); } return coordinateIds; }
/** * Method declaration * * @param con * @param pk * @return * @throws SQLException * @see */ private static int getMaxDisplayOrder(Connection con, CoordinatePK pk) throws SQLException { int maxFromTable = 0; PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = con.prepareStatement(SELECT_MAX_ORDER); pstmt.setString(1, pk.getComponentName()); rs = pstmt.executeQuery(); if (rs.next()) { maxFromTable = rs.getInt(1); } } finally { DBUtil.close(rs, pstmt); } return maxFromTable; }
@Override public void deleteStats(ForeignPK foreignPK, String objectType) { Connection con = getConnection(); try { HistoryObjectDAO.deleteHistoryByObject(con, foreignPK, objectType); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().deleteHistoryByAction", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_DELETE_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } }
@Override public void addStat(String userId, ForeignPK foreignPK, int actionType, String objectType) { Connection con = getConnection(); try { HistoryObjectDAO.add(con, userId, foreignPK, actionType, objectType); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().addStat()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_ADD_VISITE_NODE", e); } finally { DBUtil.close(con); } }
public boolean isRead(SilverpeasContent content, String userId) { Connection con = getConnection(); try { int numberOfReading = HistoryObjectDAO.getCountByPeriodAndUser( con, getForeignPK(content), content.getContributionType(), null, null, userId); return numberOfReading > 0; } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().isRead()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_GET_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } }
@Override public void moveStat(ForeignPK toForeignPK, int actionType, String objectType) { SilverTrace.info( "statistic", "DefaultStatisticService.deleteHistoryByAction", "root.MSG_GEN_ENTER_METHOD"); Connection con = getConnection(); try { HistoryObjectDAO.move(con, toForeignPK, actionType, objectType); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().addObjectToHistory()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_ADD_VISITE_NODE", e); } finally { DBUtil.close(con); } }
public static void removeHolidayDate(Connection con, HolidayDetail holiday) throws SQLException { StringBuilder deleteStatement = new StringBuilder(128); deleteStatement.append("delete from ").append(AGENDA_HOLIDAYS_TABLENAME); deleteStatement.append(" where holidayDate = ? "); deleteStatement.append(" and userId = ? "); PreparedStatement prepStmt = null; try { prepStmt = con.prepareStatement(deleteStatement.toString()); prepStmt.setString(1, DateUtil.date2SQLDate(holiday.getDate())); prepStmt.setInt(2, Integer.parseInt(holiday.getUserId())); prepStmt.executeUpdate(); } finally { DBUtil.close(prepStmt); } }
/** * Method declaration * * @param con * @param pk * @param nodeId * @return * @throws SQLException * @see */ public static Collection<String> getCoordinateIdsByNodeId( Connection con, CoordinatePK pk, String nodeId) throws SQLException { List<String> coordinateIds = new ArrayList<String>(); PreparedStatement prepStmt = null; ResultSet rs = null; try { prepStmt = con.prepareStatement(SELECT_BY_NODEID); prepStmt.setInt(1, new Integer(nodeId).intValue()); prepStmt.setString(2, pk.getComponentName()); rs = prepStmt.executeQuery(); while (rs.next()) { coordinateIds.add(rs.getString("id")); } } finally { DBUtil.close(rs, prepStmt); } return coordinateIds; }
@Override public Collection<HistoryObjectDetail> getLastHistoryOfObjectsForUser( String userId, int actionType, String objectType, int nbObjects) { Connection con = getConnection(); try { return HistoryObjectDAO.getLastHistoryDetailOfObjectsForUser( con, userId, actionType, objectType, nbObjects); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().getLastHistoryOfObjectsForUser()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_GET_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } }
/** * Method declaration * * @param con * @param pk * @param point * @param coordinateId * @throws SQLException * @see */ private static void addCoordinatePoint( Connection con, CoordinatePK pk, CoordinatePoint point, int coordinateId) throws SQLException { PreparedStatement prepStmt = null; try { prepStmt = con.prepareStatement(INSERT_COORDINATE); prepStmt.setInt(1, coordinateId); prepStmt.setInt(2, point.getNodeId()); if (point.isLeaf()) { prepStmt.setString(3, "1"); } else { prepStmt.setString(3, "0"); } prepStmt.setInt(4, point.getOrder()); prepStmt.setString(5, pk.getComponentName()); prepStmt.executeUpdate(); } finally { DBUtil.close(prepStmt); } }
/** * Method declaration * * @param con * @param pk * @return * @throws SQLException * @see */ private static Coordinate selectCoordinateByCoordinatePK(Connection con, CoordinatePK pk) throws SQLException { List<CoordinatePoint> list = new ArrayList<CoordinatePoint>(); int id = Integer.parseInt(pk.getId()); PreparedStatement prepStmt = null; ResultSet rs = null; try { prepStmt = con.prepareStatement(SELECT_BY_PK); prepStmt.setInt(1, id); prepStmt.setString(2, "1"); prepStmt.setString(3, pk.getComponentName()); rs = prepStmt.executeQuery(); while (rs.next()) { list.add(getCoordinatePointFromResultSet(rs)); } } finally { DBUtil.close(rs, prepStmt); } return new Coordinate(id, list); }
@Override public Collection<HistoryObjectDetail> getHistoryByObjectAndUser( ForeignPK foreignPK, int action, String objectType, String userId) { SilverTrace.info( "statistic", "DefaultStatisticService.getHistoryByObjectAndUser", "root.MSG_GEN_ENTER_METHOD"); Connection con = getConnection(); try { return HistoryObjectDAO.getHistoryDetailByObjectAndUser(con, foreignPK, objectType, userId); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().getHistoryByObjectAndUser()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_GET_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } }
/** * Method declaration * * @param con the Connection to database * @param fatherIds an ArrayList of nodeId * @param pk a CoordinatePK * @return an ArrayList which contains CoordinatePoint corresponding to fatherIds * @throws SQLException * @see */ private static List<CoordinatePoint> selectCoordinatePointsByNodeIds( Connection con, List<Integer> fatherIds, CoordinatePK pk) throws SQLException { List<CoordinatePoint> list = new ArrayList<CoordinatePoint>(); StringBuilder whereClause = new StringBuilder(20 * fatherIds.size() + 200); if (fatherIds != null) { Iterator<Integer> it = fatherIds.iterator(); whereClause.append("("); while (it.hasNext()) { whereClause.append(" nodeId = ").append(it.next()); if (it.hasNext()) { whereClause.append(" OR "); } else { whereClause.append(" ) "); } } } String selectQuery = "SELECT coordinatesId, nodeId, coordinatesLeaf, coordinatesDisplayOrder, " + "instanceId FROM sb_coordinates_coordinates WHERE " + whereClause + " AND instanceId = '" + pk.getComponentName() + "' " + " ORDER BY coordinatesId, nodeId ASC"; Statement stmt = null; ResultSet rs = null; try { stmt = con.createStatement(); rs = stmt.executeQuery(selectQuery); while (rs.next()) { CoordinatePoint coordinatePoint = getCoordinatePointFromResultSet(rs); list.add(coordinatePoint); } } finally { DBUtil.close(rs, stmt); } return list; }
public static void addHolidayDate(Connection con, HolidayDetail holiday) throws SQLException, UtilException { if (!isHolidayDate(con, holiday)) { StringBuilder insertStatement = new StringBuilder(128); insertStatement.append("insert into ").append(AGENDA_HOLIDAYS_TABLENAME); insertStatement.append(" values ( ? , ? )"); PreparedStatement prepStmt = null; try { prepStmt = con.prepareStatement(insertStatement.toString()); prepStmt.setInt(1, Integer.parseInt(holiday.getUserId())); prepStmt.setString(2, DateUtil.date2SQLDate(holiday.getDate())); prepStmt.executeUpdate(); } finally { DBUtil.close(prepStmt); } } }
@Override public int getDistinctCountByPeriod( List<WAPrimaryKey> primaryKeys, int action, String objectType, Date startDate, Date endDate) { int nb = 0; Connection con = getConnection(); try { List<String> objectIds = HistoryObjectDAO.getListObjectAccessByPeriod( con, primaryKeys, objectType, startDate, endDate); Set<String> distinctObjectIds = new HashSet<String>(objectIds); nb = distinctObjectIds.size(); } catch (Exception e) { throw new StatisticRuntimeException( "DefaultStatisticService().getDistinctCountByPeriod()", SilverpeasRuntimeException.ERROR, "statistic.CANNOT_GET_HISTORY_STATISTICS_PUBLICATION", e); } finally { DBUtil.close(con); } return nb; }
public static boolean isHolidayDate(Connection con, HolidayDetail holiday) throws SQLException { StringBuilder query = new StringBuilder(128); query.append("select * "); query.append("from ").append(AGENDA_HOLIDAYS_TABLENAME); query.append(" where holidayDate = ? "); query.append(" and userId = ? "); PreparedStatement stmt = null; ResultSet rs = null; try { stmt = con.prepareStatement(query.toString()); stmt.setString(1, DateUtil.date2SQLDate(holiday.getDate())); stmt.setInt(2, Integer.parseInt(holiday.getUserId())); rs = stmt.executeQuery(); return rs.next(); } finally { DBUtil.close(rs, stmt); } }