List of usage examples for org.springframework.dao DataAccessException getClass
@HotSpotIntrinsicCandidate public final native Class<?> getClass();
From source file:org.sakaiproject.delegatedaccess.dao.impl.DelegatedAccessDaoImpl.java
public List<String> getSitesWithDelegatedAccessTool(String[] siteIds) { try {/*from ww w . ja v a 2 s . com*/ List<String> returnList = new ArrayList<String>(); if (siteIds == null || siteIds.length == 0) { return returnList; } int subArrayIndex = 0; do { int subArraySize = ORACLE_IN_CLAUSE_SIZE_LIMIT; if (subArrayIndex + subArraySize > siteIds.length) { subArraySize = (siteIds.length - subArrayIndex); } String[] subSiteRefs = Arrays.copyOfRange(siteIds, subArrayIndex, subArrayIndex + subArraySize); String query = getStatement("select.delegatedaccess.user.hasworkspacetool"); String inParams = "("; for (int i = 0; i < subSiteRefs.length; i++) { inParams += "?"; if (i < subSiteRefs.length - 1) { inParams += ","; } } inParams += ")"; query = query.replace("(?)", inParams); List<String> results = (List<String>) getJdbcTemplate().query(query, subSiteRefs, new RowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { return resultSet.getString("SITE_ID"); } }); if (results != null) { returnList.addAll(results); } subArrayIndex = subArrayIndex + subArraySize; } while (subArrayIndex < siteIds.length); return returnList; } catch (DataAccessException ex) { log.error("Error executing query: " + ex.getClass() + ":" + ex.getMessage(), ex); return null; } }
From source file:org.sakaiproject.delegatedaccess.dao.impl.DelegatedAccessDaoImpl.java
/** * DAC-40 Highlight Inactive Courses in site search * requires the job "InactiveCoursesJob" attached in the jira *//*from ww w .java2s . c om*/ public List<String> findActiveSites(String[] siteIds) { List<String> returnList = new ArrayList<String>(); if (siteIds == null || siteIds.length == 0) { return returnList; } try { int subArrayIndex = 0; do { int subArraySize = ORACLE_IN_CLAUSE_SIZE_LIMIT; if (subArrayIndex + subArraySize > siteIds.length) { subArraySize = (siteIds.length - subArrayIndex); } String[] subSiteRefs = Arrays.copyOfRange(siteIds, subArrayIndex, subArrayIndex + subArraySize); String query = getStatement("select.activeSites"); String inParams = "("; for (int i = 0; i < subSiteRefs.length; i++) { inParams += "?"; if (i < subSiteRefs.length - 1) { inParams += ","; } } inParams += ")"; query = query.replace("(?)", inParams); List<String> results = (List<String>) getJdbcTemplate().query(query, subSiteRefs, new RowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { return resultSet.getString("SITE_ID"); } }); if (results != null) { returnList.addAll(results); } subArrayIndex = subArrayIndex + subArraySize; } while (subArrayIndex < siteIds.length); return returnList; } catch (DataAccessException ex) { log.error("Error executing query: " + ex.getClass() + ":" + ex.getMessage(), ex); return null; } }
From source file:org.sakaiproject.delegatedaccess.dao.impl.DelegatedAccessDaoImpl.java
public Map<String, List<String>> getNodesBySiteRef(String[] siteRefs, String hierarchyId) { try {/*from w w w . j a v a 2 s .co m*/ Map<String, List<String>> returnMap = new HashMap<String, List<String>>(); if (siteRefs == null || siteRefs.length == 0) { return returnMap; } int subArrayIndex = 0; do { int subArraySize = ORACLE_IN_CLAUSE_SIZE_LIMIT; if (subArrayIndex + subArraySize > siteRefs.length) { subArraySize = (siteRefs.length - subArrayIndex); } String[] subSiteRefs = Arrays.copyOfRange(siteRefs, subArrayIndex, subArrayIndex + subArraySize); String query = getStatement("select.hierarchyNode"); String inParams = "("; for (int i = 0; i < subSiteRefs.length; i++) { inParams += "?"; if (i < subSiteRefs.length - 1) { inParams += ","; } } inParams += ")"; query = query.replace("(?)", inParams); List<String> parameters = new ArrayList<String>(); parameters.add(hierarchyId); parameters.addAll(Arrays.asList(subSiteRefs)); List<String[]> results = (List<String[]>) getJdbcTemplate().query(query, parameters.toArray(), new RowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { return new String[] { resultSet.getString("title"), resultSet.getString("ID") }; } }); if (results != null) { for (String[] result : results) { if (result != null && result.length == 2) { if (!returnMap.containsKey(result[0])) { returnMap.put(result[0], new ArrayList<String>()); } returnMap.get(result[0]).add(result[1]); } } } subArrayIndex = subArrayIndex + subArraySize; } while (subArrayIndex < siteRefs.length); return returnMap; } catch (DataAccessException ex) { log.error("Error executing query: " + ex.getClass() + ":" + ex.getMessage(), ex); return null; } }
From source file:org.sakaiproject.delegatedaccess.dao.impl.DelegatedAccessDaoImpl.java
public Map<String, Set<String>> getNodesAndPermsForUser(String userId, String[] nodeIds) { try {//from w w w. j a va 2 s . co m Map<String, Set<String>> returnMap = new HashMap<String, Set<String>>(); if (nodeIds == null || nodeIds.length == 0) { return returnMap; } int subArrayIndex = 0; do { int subArraySize = ORACLE_IN_CLAUSE_SIZE_LIMIT; if (subArrayIndex + subArraySize > nodeIds.length) { subArraySize = (nodeIds.length - subArrayIndex); } String[] subSiteRefs = Arrays.copyOfRange(nodeIds, subArrayIndex, subArrayIndex + subArraySize); String query = getStatement("select.nodes.and.perms.for.user"); String inParams = "("; for (int i = 0; i < subSiteRefs.length; i++) { inParams += "?"; if (i < subSiteRefs.length - 1) { inParams += ","; } } inParams += ")"; query = query.replace("(?)", inParams); List<String> parameters = new ArrayList<String>(); parameters.add(userId); parameters.addAll(Arrays.asList(subSiteRefs)); List<String[]> results = (List<String[]>) getJdbcTemplate().query(query, parameters.toArray(), new RowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { return new String[] { resultSet.getString("NODEID"), resultSet.getString("PERMISSION") }; } }); if (results != null) { for (String[] result : results) { if (result != null && result.length == 2) { if (!returnMap.containsKey(result[0])) { returnMap.put(result[0], new HashSet<String>()); } returnMap.get(result[0]).add(result[1]); } } } subArrayIndex = subArrayIndex + subArraySize; } while (subArrayIndex < nodeIds.length); return returnMap; } catch (DataAccessException ex) { log.error("Error executing query: " + ex.getClass() + ":" + ex.getMessage(), ex); return null; } }
From source file:org.sakaiproject.delegatedaccess.dao.impl.DelegatedAccessDaoImpl.java
public Map<String, Map<String, String>> searchSitesForProp(String[] props, String[] siteIds) { try {//from ww w . j a va 2 s . c o m Map<String, Map<String, String>> returnMap = new HashMap<String, Map<String, String>>(); if (props == null || props.length == 0 || siteIds == null || siteIds.length == 0) { return returnMap; } int subArrayIndex = 0; do { int subArraySize = ORACLE_IN_CLAUSE_SIZE_LIMIT; if (subArrayIndex + subArraySize > siteIds.length) { subArraySize = (siteIds.length - subArrayIndex); } String[] subSiteRefs = Arrays.copyOfRange(siteIds, subArrayIndex, subArrayIndex + subArraySize); String query = getStatement("select.sitesProp"); String propInParams = "("; for (int i = 0; i < props.length; i++) { propInParams += "'" + props[i].replace("'", "''") + "'"; if (i < props.length - 1) { propInParams += ","; } } propInParams += ")"; query = query.replace("(:props)", propInParams); propInParams += ")"; String inParams = "("; for (int i = 0; i < subSiteRefs.length; i++) { inParams += "'" + subSiteRefs[i].replace("'", "''") + "'"; if (i < subSiteRefs.length - 1) { inParams += ","; } } inParams += ")"; query = query.replace("(:siteIds)", inParams); List<String[]> results = (List<String[]>) getJdbcTemplate().query(query, new RowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { return new String[] { resultSet.getString("SITE_ID"), resultSet.getString("NAME"), resultSet.getString("VALUE") }; } }); if (results != null) { for (String[] result : results) { Map<String, String> propMap = new HashMap<String, String>(); if (returnMap.containsKey(result[0])) { propMap = returnMap.get(result[0]); } propMap.put(result[1], result[2]); returnMap.put(result[0], propMap); } } subArrayIndex = subArrayIndex + subArraySize; } while (subArrayIndex < siteIds.length); return returnMap; } catch (DataAccessException ex) { log.error("Error executing query: " + ex.getClass() + ":" + ex.getMessage(), ex); return null; } }
From source file:org.sakaiproject.delegatedaccess.dao.impl.DelegatedAccessDaoImpl.java
public List<Object[]> searchSites(String titleSearch, Map<String, String> propsMap, String[] instructorIds, String insturctorType, boolean publishedOnly) { try {//from w ww. ja va2s.co m if (titleSearch == null) { titleSearch = ""; } titleSearch = "%" + titleSearch + "%"; Object[] params = new Object[] { titleSearch }; String query = ""; final boolean noInstructors = instructorIds == null || instructorIds.length == 0; //either grab the simple site search based on title or the one that limits by instructor ids if (noInstructors) { query = getStatement("select.siteSearch"); } else { if (DelegatedAccessConstants.ADVANCED_SEARCH_INSTRUCTOR_TYPE_MEMBER.equals(insturctorType)) { query = getStatement("select.siteSearchMembers"); } else { //default is instructor search query = getStatement("select.siteSearchInstructors"); } String inParams = "("; //to be on the safe side, I added oracle limit restriction, but hopefully no one is searching for //more than 1000 instructors for (int i = 0; i < instructorIds.length && i < ORACLE_IN_CLAUSE_SIZE_LIMIT; i++) { inParams += "'" + instructorIds[i].replace("'", "''") + "'"; if (i < instructorIds.length - 1) { inParams += ","; } } inParams += ")"; query = query.replace("(:userIds)", inParams); } //add the site properties restrictions in the where clause if (propsMap != null && propsMap.size() > 0) { params = new Object[1 + (propsMap.size() * 2)]; params[0] = titleSearch; int i = 1; for (Entry<String, String> entry : propsMap.entrySet()) { query += " " + getStatement("select.siteSearchPropWhere"); params[i] = entry.getKey(); i++; params[i] = entry.getValue(); i++; } } if (publishedOnly) { query += " " + getStatement("select.siteSearchPublishedOnly"); } return (List<Object[]>) getJdbcTemplate().query(query, params, new RowMapper() { public Object mapRow(ResultSet resultSet, int i) throws SQLException { if (noInstructors) { return new Object[] { resultSet.getString("SITE_ID"), resultSet.getString("TITLE"), resultSet.getBoolean("PUBLISHED") }; } else { return new Object[] { resultSet.getString("SITE_ID"), resultSet.getString("TITLE"), resultSet.getBoolean("PUBLISHED"), resultSet.getString("USER_ID") }; } } }); } catch (DataAccessException ex) { log.error("Error executing query: " + ex.getClass() + ":" + ex.getMessage(), ex); return new ArrayList<Object[]>(); } }
From source file:org.sakaiproject.dash.dao.impl.DashboardDaoImpl.java
public boolean addAvailabilityCheck(AvailabilityCheck availabilityCheck) { if (log.isDebugEnabled()) { log.debug("addAvailabilityCheck( " + availabilityCheck.toString() + ")"); }/* w w w . j a v a 2 s. com*/ // entity_ref, scheduled_time try { JdbcTemplate template = getJdbcTemplate(); String sql = getStatement("insert.AvailabilityCheck"); template.update(sql, new Object[] { availabilityCheck.getEntityReference(), availabilityCheck.getEntityTypeId(), availabilityCheck.getScheduledTime() }); return true; } catch (DataIntegrityViolationException e) { // this means we're trying to insert a duplicate log.debug("addAvailabilityCheck() " + e); return false; } catch (DataAccessException ex) { log.warn("addAvailabilityCheck: Error executing query: " + ex.getClass() + ":" + ex.getMessage()); return false; } catch (Exception e) { log.warn("addAvailabilityCheck: Error executing query: " + e.getClass() + ":" + e.getMessage()); return false; } }
From source file:org.sakaiproject.dash.dao.impl.DashboardDaoImpl.java
public boolean addCalendarItem(CalendarItem calendarItem) { if (log.isDebugEnabled()) { log.debug("addCalendarItem( " + calendarItem.toString() + ")"); }/*from w w w .j a v a2 s . co m*/ // calendar_time, title , entity_url, entity_ref, source_type, context_id, realm_id String subtype = calendarItem.getSubtype(); // DASH-191 if (subtype != null && subtype.length() > MAX_LENGTH_SUBTYPE_FIELD) { StringBuilder buf = new StringBuilder(); buf.append("addCalendarItem(). Truncating subtype "); buf.append(subtype); buf.append(" for entity "); buf.append(calendarItem.getEntityReference()); log.warn(buf); subtype = subtype.substring(0, MAX_LENGTH_SUBTYPE_FIELD - 1); } try { JdbcTemplate template = getJdbcTemplate(); Object[] params = null; String sql = null; if (calendarItem.getRepeatingCalendarItem() == null) { sql = getStatement("insert.CalendarItem"); params = new Object[] { calendarItem.getCalendarTime(), calendarItem.getCalendarTimeLabelKey(), calendarItem.getTitle(), calendarItem.getEntityReference(), subtype, calendarItem.getSourceType().getId(), calendarItem.getContext().getId() }; } else { sql = getStatement("insert.CalendarItem.repeats"); params = new Object[] { calendarItem.getCalendarTime(), calendarItem.getCalendarTimeLabelKey(), calendarItem.getTitle(), calendarItem.getEntityReference(), subtype, calendarItem.getSourceType().getId(), calendarItem.getContext().getId(), calendarItem.getRepeatingCalendarItem().getId(), calendarItem.getSequenceNumber() }; } int result = template.update(sql, params); return result > 0; } catch (DataIntegrityViolationException e) { // this means we're trying to insert a duplicate log.warn("addCalendarItem() " + e); } catch (DataAccessException ex) { log.warn("addCalendarItem: Error executing query: " + ex.getClass() + ":" + ex.getMessage()); // System.out.println("addCalendarItem: Error executing query: " + ex.getClass() + ":" + ex.getMessage()); } return false; }
From source file:org.sakaiproject.dash.dao.impl.DashboardDaoImpl.java
public boolean addCalendarLink(CalendarLink calendarLink) { if (log.isDebugEnabled()) { log.debug("addCalendarLink( " + calendarLink.toString() + ")"); }/* w w w. j a v a 2s . com*/ // person_id, item_id, context_id, realm_id try { getJdbcTemplate().update(getStatement("insert.CalendarLink"), new Object[] { calendarLink.getPerson().getId(), calendarLink.getCalendarItem().getId(), calendarLink.getContext().getId(), calendarLink.isHidden(), calendarLink.isSticky() }); return true; } catch (DataIntegrityViolationException e) { // this means we're trying to insert a duplicate log.debug("addCalendarLink() " + e); return false; } catch (DataAccessException ex) { log.warn("addCalendarLink: Error executing query: " + ex.getClass() + ":" + ex.getMessage()); return false; } }
From source file:org.sakaiproject.dash.dao.impl.DashboardDaoImpl.java
public int addCalendarLinks(final List<CalendarLink> calendarLinks) { if (log.isDebugEnabled()) { log.debug("addCalendarLinks( " + calendarLinks.size() + ")"); }// w w w . j a va 2 s. co m // person_id, item_id, context_id, realm_id int count = 0; try { String sql = getStatement("insert.CalendarLink"); int[] updates = getJdbcTemplate().batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { CalendarLink calendarLink = calendarLinks.get(i); ps.setLong(1, calendarLink.getPerson().getId()); ps.setLong(2, calendarLink.getCalendarItem().getId()); ps.setLong(3, calendarLink.getContext().getId()); ps.setBoolean(4, calendarLink.isHidden()); ps.setBoolean(5, calendarLink.isSticky()); } @Override public int getBatchSize() { return calendarLinks.size(); } }); if (updates != null && updates.length > 0) { for (int u : updates) { count += u; } } } catch (DataIntegrityViolationException e) { // this means we're trying to insert a duplicate log.debug("addCalendarLinks() " + e); } catch (DataAccessException ex) { log.warn("addCalendarLinks: Error executing query: " + ex.getClass() + ":" + ex.getMessage()); } return count; }