/**********************************************************************************
* $URL: https://source.sakaiproject.org/contrib/rsmart/dbrefactor/user/user-impl/impl/src/java/org/sakaiproject/user/impl/UserServiceSqlDefault.java $
* $Id: UserServiceSqlDefault.java 3560 2007-02-19 22:08:01Z jbush@rsmart.com $
***********************************************************************************
*
* Copyright (c) 2007, 2008 Sakai Foundation
*
* Licensed under the Educational Community License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.user.impl;
/**
* methods for accessing user data in a database.
*/
public class UserServiceSqlDefault implements UserServiceSql
{
/**
* return the sql statement which deletes an external user id for a given user from the sakai_user_id_map table.
*/
public String getDeleteUserIdSql()
{
return "delete from SAKAI_USER_ID_MAP where USER_ID=?";
}
/**
* return the sql statement which inserts a user id and an external user id into the sakai_user_id_map table.
*/
public String getInsertUserIdSql()
{
return "insert into SAKAI_USER_ID_MAP (USER_ID, EID) values (?,?)";
}
/**
* return the sql statement which updates an external user id for a given user in the sakai_user_id_map table.
*/
public String getUpdateUserIdSql()
{
return "update SAKAI_USER_ID_MAP set EID=? where USER_ID=?";
}
/**
* return the sql statement which retrieves the external user id for a given user from the sakai_user_id_map table.
*/
public String getUserEidSql()
{
return "select EID from SAKAI_USER_ID_MAP where USER_ID=?";
}
/**
* return the sql statement which retrieves the user id for a given user from the sakai_user_id_map table.
*/
public String getUserIdSql()
{
return "select USER_ID from SAKAI_USER_ID_MAP where EID=?";
}
/**
* return the sql statement which retrieves the where clause from the sakai_user_id_map table.
*/
public String getUserWhereSql()
{
return "SAKAI_USER.USER_ID = SAKAI_USER_ID_MAP.USER_ID AND (SAKAI_USER.USER_ID = ? OR UPPER(EID) LIKE UPPER(?) OR EMAIL_LC LIKE ? OR UPPER(FIRST_NAME) LIKE UPPER(?) OR UPPER(LAST_NAME) LIKE UPPER(?))";
}
/**
* @see org.sakaiproject.user.impl.UserServiceSql#getUsersWhereEidsInSql(int)
*/
public String getUsersWhereEidsInSql(int numberOfSearchValues) {
StringBuilder sqlBuilder = new StringBuilder(
"select SAKAI_USER_ID_MAP.USER_ID, SAKAI_USER_ID_MAP.EID, SAKAI_USER.USER_ID AS USER_USER_ID, SAKAI_USER.EMAIL, SAKAI_USER.FIRST_NAME, SAKAI_USER.LAST_NAME, SAKAI_USER.TYPE, SAKAI_USER.PW, SAKAI_USER.CREATEDBY, SAKAI_USER.MODIFIEDBY, SAKAI_USER.CREATEDON, SAKAI_USER.MODIFIEDON from SAKAI_USER_ID_MAP left join SAKAI_USER on SAKAI_USER_ID_MAP.USER_ID=SAKAI_USER.USER_ID where SAKAI_USER_ID_MAP.EID in (");
for (int i = 0; i < (numberOfSearchValues - 1); i++)
{
sqlBuilder.append("?,");
}
sqlBuilder.append("?)");
return sqlBuilder.toString();
}
/**
* @see org.sakaiproject.user.impl.UserServiceSql#getUsersWhereEidsInSql(int)
*/
public String getUsersWhereIdsInSql(int numberOfSearchValues) {
StringBuilder sqlBuilder = new StringBuilder(
"select SAKAI_USER_ID_MAP.USER_ID, SAKAI_USER_ID_MAP.EID, SAKAI_USER.USER_ID AS USER_USER_ID, SAKAI_USER.EMAIL, SAKAI_USER.FIRST_NAME, SAKAI_USER.LAST_NAME, SAKAI_USER.TYPE, SAKAI_USER.PW, SAKAI_USER.CREATEDBY, SAKAI_USER.MODIFIEDBY, SAKAI_USER.CREATEDON, SAKAI_USER.MODIFIEDON from SAKAI_USER_ID_MAP left join SAKAI_USER on SAKAI_USER_ID_MAP.USER_ID=SAKAI_USER.USER_ID where SAKAI_USER_ID_MAP.USER_ID in (");
for (int i = 0; i < (numberOfSearchValues - 1); i++)
{
sqlBuilder.append("?,");
}
sqlBuilder.append("?)");
return sqlBuilder.toString();
}
/**
* @see org.sakaiproject.user.impl.UserServiceSql#getMaxInputsForSelectWhereInQueries()
*/
public int getMaxInputsForSelectWhereInQueries() {
// For Oracle, the maximum supported number of expressions in a list is 1000.
return 1000;
}
}