Example usage for org.springframework.dao DataAccessException getClass

List of usage examples for org.springframework.dao DataAccessException getClass

Introduction

In this page you can find the example usage for org.springframework.dao DataAccessException getClass.

Prototype

@HotSpotIntrinsicCandidate
public final native Class<?> getClass();

Source Link

Document

Returns the runtime class of this Object .

Usage

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;
}