Package org.openiam.srvc.user
Interface UserDataWebService
-
- All Known Implementing Classes:
UserDataWebServiceImpl
public interface UserDataWebService
WebService interface that clients will access to gain information about users and related information.- Version:
- 2
- Author:
- Suneet Shah
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description Response
acceptITPolicy(String userId)
Deprecated.Response
addPhone(Phone phone)
Add a Phone to this UserResponse
addResourceToUsers(String resourceId, Set<String> rightIds, Set<String> userIds)
This method is written only for testing purposes.ApproveAuthParamResponse
approveAuthParam(String token)
int
count(UserSearchBean userSearchBean)
Response
deleteOrphans(List<Orphan> orphans, boolean deleteFromTarget)
Method is used to delete list of orphansResponse
deleteProfilePictureById(String picId)
Deletes Profile picture by it's IDResponse
deleteProfilePictureByUserId(String userId)
Deletes Profile picture for User by his IDResponse
deleteUser(String userId)
Deletes a user from the database by user idResponse
deProvisionMembershipOnEndDate(Date fromDate, Date toDate)
method to deprovision based on the specified start date range of entitlements.UserListResponse
fetchUsersFromCSVFile(BulkPasswordResetConfig resetConfig)
Fetches UserListResponse from a csv file based on the provided BulkPasswordResetConfig.UserListResponse
findBeans(UserSearchBean userSearchBean, UserCollection[] dependants, int from, int size)
Call to find users by various criteriaList
findEmailBeans(EmailSearchBean searchBean, int from, int size)
Gets a paged List of EmailAddress records associated with a UserOrphanListResponse
findOrphans(OrphanSearchBean orphanSearchBean, int from, int size)
Method is used to return list of orphans by search bean filtersList<Phone>
findPhoneBeans(PhoneSearchBean searchBean, int from, int size)
Gets a paged List of Phones identified by the search beanUserListResponse
findPotentialSupSubs(PotentialSupSubSearchBean userSearchBean, int from, int size)
Retrieves list of potential supervisor/subordinate users that match given search criteria.int
findPotentialSupSubsCount(PotentialSupSubSearchBean userSearchBean)
Counts number of potential supervisor/subordinate users that match given count criteria.Supervisor
findSupervisor(String superiorId, String subordinateId)
gets a supervisor Object based on the Superior ID and Subordinate IDList<Supervisor>
findSupervisors(SupervisorSearchBean supervisorSearchBean)
Call to find supervisors by various criteriaUserITPolicyHistoryListResponse
findUserITPolicyHistory(UserITPolicyHistorySearchBean searchBean, int from, int size)
UserListResponse
findUsersByApplications(AccessCertificationSearchBean searchBean, int from, int size)
int
getActiveUserSessionCount(ActiveSessionRequest request, int from, int size)
Method is used to get a count of user's active sessions.List<AuthStateInfoModel>
getActiveUserSessions(ActiveSessionRequest request, int from, int size)
List<Address>
getAddressBeans(AddressSearchBean sb, int from, int size)
Find Address objects based on the incoming criteriaList<Supervisor>
getAllSuperiors(int from, int size)
returns a paged List of all Supervisors in the systemint
getAllSuperiorsCount()
Get the Number of all supervisors in the systemList<String>
getAllUserAttributeValues(String attributeName)
Method is used to return list of all values of attribute selected by nameList<ApproverInfoBean>
getApproverInfoByIds(Set<String> approverIds)
UserAttribute
getAttribute(String id)
Get a UserAttribute by the idList<EmailAddress>
getEmailAddressList(String userId)
Get all EmailAddress records associated with a UserHelpDeskQuestionsResponse
getHelpDeskQuestionsResponse(HelpdeskQuestionsRequest request)
Date
getLastIndexDateTime(String id)
Checks if user with given id is indexed.int
getNumOfAddressesForUser(String userId)
Gets the number of Addresses for this userint
getNumOfEmailsForUser(String userId)
Gets the number of Emails for this userint
getNumOfPhonesForUser(String userId)
Gets the number of Phones for this UserList<String>
getPossibleAttributeNames()
Method is used to return unique list of all possible attribute namesSupervisor
getPrimarySupervisor(String employeeId)
Returns the primary supervisor for this employee.ProfilePicture
getProfilePictureById(String picId)
Returns Profile picture by it's IDProfilePicture
getProfilePictureByUserId(String userId)
Returns Profile picture for User by his IDProfilePictureUserMapResponse
getProfilePictureUserMap(List<String> ids)
UserListResponse
getSubordinates(String userId, UserCollection[] dependants, int from, int size, List<SortParam> sortList, UserSearchBean filterSearch)
Gets a Paged List of User Objects, representing the subordinates of this userIdint
getSubordinatesCount(String userId)
Gets the number of subordinates for this UserSupervisorListResponse
getSuperiors(String userId, UserCollection[] dependants, int from, int size)
returns a paged List of Supervisors for this UserSupervisorListResponse
getSuperiorsWithTypes(String userId, UserCollection[] dependants, int from, int size)
TerminatedUserListResponse
getTerminatedUserListForReport(Set<String> targetUsers, Date fromDate, Date toDate)
List<UserAttribute>
getUserAttributes(String userId)
Gets list ofUserAttribute
associated with this UserList<UserAuthParam>
getUserAuthParams(String userId)
List<User>
getUserBetweenCreateDate(Date fromDate, Date toDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please usefindBeans(UserSearchBean, UserCollection[], int, int)
instead.List<User>
getUserBetweenLastDate(Date fromDate, Date toDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please usefindBeans(UserSearchBean, UserCollection[], int, int)
instead.List<User>
getUserBetweenStartDate(Date fromDate, Date toDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please useList<User>
getUserByLastDate(Date lastDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please usefindBeans(UserSearchBean, UserCollection[], int, int)
instead.User
getUserByPrincipal(String principal, String managedSysId, UserCollection[] dependants)
Find a User based on his principal, security domain, and the managed systemString
getUserMdTypeId(String userId)
Method is used to return user metadata type ID.UserResponse
getUserWithDependent(String id, UserCollection[] dependants)
Get a user based on his internal IDResponse
isSecretWordFilled(String userId)
Checks if given user answered security question.BooleanResponse
isUserHasPicture(String userId)
Method is used to define, does user has uploaded image or not.Response
linkOrphans(List<Orphan> orphans)
Method is used to link user to selected list of orphansResponse
moveLoginToOrphan(String loginId)
Method is used to move selected user login to orphanvoid
notifyAboutEmailDuplication(String requestId, Set<String> emailAddresses)
Response
provisionMembershipOnStartDate(Date fromDate, Date toDate)
method to provision based on the specified start date range of entitlements.Response
reindexUser(String id)
Reindexes a userResponse
removeUser(String id)
Delete aUser
from the databaseResponse
resetSecretWord(String userId)
Response
saveAlternateContact(AlternateContactModel alternateContactModel)
Response
saveProfilePicture(ProfilePicture pic)
Saves Profile pictureProvisionUserResponse
saveProvisionTemplateUser(UserRequestModel userRequestModel, UserCollection[] dependants)
Save provision user formed by templated Edit User page.ProvisionUserResponse
saveProvisionUser(ProvisionUser provisionUser, UserCollection[] dependants)
Saves ProvisionUser.Response
saveSecretWord(String userId, String secret)
SaveTemplateProfileResponse
saveUserProfile(UserProfileRequestModel request)
Saves a User ProfileResponse
setSecondaryStatus(String userId, UserStatusEnum secondaryStatus)
Sets the Secondary Status of the UserResponse
submitITPolicy(UserITPolicyHistoryRequest request)
UserListResponse
suggest(UserSearchBean userSearchBean, int from, int size)
Call to find users by various criteria.UserResponse
suggestById(String id)
Get a user from Elasticsearch.Response
userTypeConversion(UserTypeConversionModel conversionModel)
Changes the user metadata type using the provided UserTypeConversionModel.Response
validatePhone(Phone phone)
Validate that a phone is valid.Response
validateUserSearchRequest(UserSearchBean userSearchBean)
Validate user search request according to Delegation filter.
-
-
-
Method Detail
-
getUserWithDependent
UserResponse getUserWithDependent(String id, UserCollection[] dependants)
Get a user based on his internal ID- Parameters:
id
- - the internal user ID of the user being requesteddependants
- -UserCollection
collection to be returned.UserCollection.ALL
for all, null for complete shallow object. Otherwise specify the exact collections you want to be returned.- Returns:
- - a User object, or null if not found
-
suggestById
UserResponse suggestById(String id)
Get a user from Elasticsearch. This does not hit the database, uses only elasticsearch- Parameters:
id
- - the internal user ID of the user being requested- Returns:
- - a
UserResponse
object, or null if not found
-
getUserByPrincipal
User getUserByPrincipal(String principal, String managedSysId, UserCollection[] dependants)
Find a User based on his principal, security domain, and the managed system- Parameters:
principal
- - the user's principalLogin
managedSysId
- - the ID of theto which the principal belongs to
dependants
- - dependants to return. ALL for all, null for complete shallow object. Otherwise specify the exact collecitons you want returned.- Returns:
- - a
User
object, or null if not found
-
removeUser
Response removeUser(String id)
Delete aUser
from the database- Parameters:
id
- - the ID of the user- Returns:
- a
Response
Object, containing the result of this operation
-
findBeans
UserListResponse findBeans(UserSearchBean userSearchBean, UserCollection[] dependants, int from, int size)
Call to find users by various criteria- Parameters:
userSearchBean
- -UserSearchBean
from
- - where to start pagingsize
- - how many results to return- Returns:
- a
UserListResponse
of matched User objects
-
suggest
UserListResponse suggest(UserSearchBean userSearchBean, int from, int size)
Call to find users by various criteria. UnlikefindBeans
, this does not go to the database, and only queries elasticsearch.This should be used for autocompletes
- Parameters:
userSearchBean
- -UserSearchBean
from
- - where to start pagingsize
- - how many results to return- Returns:
- a
UserListResponse
of matched User objects
-
count
int count(UserSearchBean userSearchBean)
-
getAttribute
UserAttribute getAttribute(String id)
Get a UserAttribute by the id- Parameters:
id
- - the id of this UserAttribute- Returns:
- a
UserAttribute
object, or null if not found
-
isSecretWordFilled
Response isSecretWordFilled(String userId)
Checks if given user answered security question.- Parameters:
userId
- - id of user to check- Returns:
- - FAILURE status if userId is null or given user doesn't exist. - SUCCESS status if secretWord is not null
-
getUserAttributes
List<UserAttribute> getUserAttributes(String userId)
Gets list ofUserAttribute
associated with this User- Parameters:
userId
- - the id of this User- Returns:
- a List of
UserAttribute
associated with this user
-
getAddressBeans
List<Address> getAddressBeans(AddressSearchBean sb, int from, int size)
Find Address objects based on the incoming criteria- Parameters:
sb
- -AddressSearchBean
the search beanfrom
- - from where to pagesize
- - how many records to return- Returns:
- List of
Address
.
-
addPhone
Response addPhone(Phone phone)
Add a Phone to this User- Parameters:
phone
- - the Phone record- Returns:
- a Response Object, containing the result of this operation
-
validatePhone
Response validatePhone(Phone phone)
Validate that a phone is valid.- Parameters:
phone
-- Returns:
- a Response Object, containing the result of this operation
-
findPhoneBeans
List<Phone> findPhoneBeans(PhoneSearchBean searchBean, int from, int size)
Gets a paged List of Phones identified by the search bean- Parameters:
searchBean
- - the search criteriasize
- - how many records to returnfrom
- - where to start- Returns:
- a paged List of Phone records belonging to this user
-
getEmailAddressList
List<EmailAddress> getEmailAddressList(String userId)
Get all EmailAddress records associated with a User- Parameters:
userId
- - the user ID of interest- Returns:
- a List of EmailAddress records belonging to this User
-
findEmailBeans
List findEmailBeans(EmailSearchBean searchBean, int from, int size)
Gets a paged List of EmailAddress records associated with a User- Parameters:
searchBean
- - search bean to usefrom
- - where to startsize
- - how many records to fetch- Returns:
- a paged List of EmailAddress records associated with the given Search Bean
-
findSupervisor
Supervisor findSupervisor(String superiorId, String subordinateId)
gets a supervisor Object based on the Superior ID and Subordinate ID- Parameters:
superiorId
- - the Superior IDsubordinateId
- - the Subordinate ID- Returns:
- - the Supervisor object
-
getPrimarySupervisor
Supervisor getPrimarySupervisor(String employeeId)
Returns the primary supervisor for this employee. Null if no primary is defined.- Parameters:
employeeId
-- Returns:
-
getSuperiors
SupervisorListResponse getSuperiors(String userId, UserCollection[] dependants, int from, int size)
returns a paged List of Supervisors for this User- Parameters:
userId
- - the User IDfrom
- - where to startsize
- - how many objects to return- Returns:
- a paged List of Supervisors for this User
-
getSuperiorsWithTypes
SupervisorListResponse getSuperiorsWithTypes(String userId, UserCollection[] dependants, int from, int size)
-
getSubordinates
UserListResponse getSubordinates(String userId, UserCollection[] dependants, int from, int size, List<SortParam> sortList, UserSearchBean filterSearch)
Gets a Paged List of User Objects, representing the subordinates of this userId- Parameters:
userId
- - the User IDfrom
- - where to start in the listsize
- - how many to returnsortList
- - for sort- Returns:
- a Paged List of User Objects, representing the subordinates of this userId
-
getSubordinatesCount
int getSubordinatesCount(String userId)
Gets the number of subordinates for this User- Parameters:
userId
- - the User ID- Returns:
- the number of subordinates for this User
-
findPotentialSupSubs
UserListResponse findPotentialSupSubs(PotentialSupSubSearchBean userSearchBean, int from, int size)
Retrieves list of potential supervisor/subordinate users that match given search criteria.- Parameters:
userSearchBean
- PotentialSupSubSearchBean used for search criteria.from
- Index of first user to retrieve.size
- Number of users to retrieve.- Returns:
- List of users that match given criteria.
-
findPotentialSupSubsCount
int findPotentialSupSubsCount(PotentialSupSubSearchBean userSearchBean)
Counts number of potential supervisor/subordinate users that match given count criteria.- Parameters:
userSearchBean
- PotentialSupSubSearchBean bean used for count criteria.- Returns:
- Number of users that match given criteria.
-
deleteUser
Response deleteUser(String userId)
Deletes a user from the database by user id- Parameters:
userId
- - the User ID- Returns:
- a Response Object, containing the result of this operation
-
setSecondaryStatus
Response setSecondaryStatus(String userId, UserStatusEnum secondaryStatus)
Sets the Secondary Status of the User- Parameters:
userId
- - the ID of the UsersecondaryStatus
- - the Secondary Status- Returns:
- a Response Object, containing the result of this operation
-
getNumOfEmailsForUser
int getNumOfEmailsForUser(String userId)
Gets the number of Emails for this user- Parameters:
userId
- - the User ID- Returns:
- the number of Emails for this user
-
getNumOfAddressesForUser
int getNumOfAddressesForUser(String userId)
Gets the number of Addresses for this user- Parameters:
userId
- - the User ID- Returns:
- the number of Addresses for this user
-
getNumOfPhonesForUser
int getNumOfPhonesForUser(String userId)
Gets the number of Phones for this User- Parameters:
userId
- - the User ID- Returns:
- the number of Phones for this User
-
saveUserProfile
SaveTemplateProfileResponse saveUserProfile(UserProfileRequestModel request)
Saves a User Profile- Parameters:
request
- - the User Profile to save- Returns:
- a SaveTemplateProfileResponse, containing the results of this operation
-
getProfilePictureById
ProfilePicture getProfilePictureById(String picId)
Returns Profile picture by it's ID- Parameters:
picId
-- Returns:
-
getProfilePictureByUserId
ProfilePicture getProfilePictureByUserId(String userId)
Returns Profile picture for User by his ID- Parameters:
userId
-- Returns:
-
saveProfilePicture
Response saveProfilePicture(ProfilePicture pic)
Saves Profile picture- Parameters:
pic
-- Returns:
-
deleteProfilePictureById
Response deleteProfilePictureById(String picId)
Deletes Profile picture by it's ID- Parameters:
picId
-- Returns:
-
deleteProfilePictureByUserId
Response deleteProfilePictureByUserId(String userId)
Deletes Profile picture for User by his ID- Parameters:
userId
-- Returns:
-
acceptITPolicy
@Deprecated(since="4.2.2") Response acceptITPolicy(String userId)
Deprecated.Accept an IT policy- Parameters:
userId
- - the User ID who has accepted the IT Policy- Returns:
- a Response Object, containing the result of this operation
-
validateUserSearchRequest
Response validateUserSearchRequest(UserSearchBean userSearchBean)
Validate user search request according to Delegation filter.- Parameters:
userSearchBean
- - UserSearchBean that is represented user search request- Returns:
- a Response Object, containing the result of this operation
-
getUserByLastDate
@Deprecated(since="4.2.1.4") List<User> getUserByLastDate(Date lastDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please usefindBeans(UserSearchBean, UserCollection[], int, int)
instead.Retrieves list of users that have last date before given last date.- Parameters:
lastDate
- Last date used for search criteria.- Returns:
- List of users that have last date before then last date.
-
getUserBetweenCreateDate
@Deprecated List<User> getUserBetweenCreateDate(Date fromDate, Date toDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please usefindBeans(UserSearchBean, UserCollection[], int, int)
instead.Retrieves list of users that has create date between form date and to date.- Parameters:
fromDate
- From date.toDate
- To date.- Returns:
- List of users that has create date between form date and to date.
-
getUserBetweenLastDate
@Deprecated(since="4.2.1.4") List<User> getUserBetweenLastDate(Date fromDate, Date toDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please usefindBeans(UserSearchBean, UserCollection[], int, int)
instead.This method does search by lastDate- Parameters:
fromDate
- From date.toDate
- To date.- Returns:
- List of users that has last date between form date and to date.
-
getAllSuperiors
List<Supervisor> getAllSuperiors(int from, int size)
returns a paged List of all Supervisors in the system- Parameters:
from
- - where to startsize
- - how many objects to return- Returns:
- a paged List of all Supervisors in the system
-
getAllSuperiorsCount
int getAllSuperiorsCount()
Get the Number of all supervisors in the system- Returns:
- the Number of all supervisors in the system
-
getUserBetweenStartDate
@Deprecated(since="4.2.1.4") List<User> getUserBetweenStartDate(Date fromDate, Date toDate)
Deprecated.As of 4.2.1.4 has fix in findBeans please useRetrieves list of users whose startDate is between from date and to date.- Parameters:
fromDate
- From date.toDate
- To date.- Returns:
- list of users whose startDate is between from date and to date.
-
findSupervisors
List<Supervisor> findSupervisors(SupervisorSearchBean supervisorSearchBean)
Call to find supervisors by various criteria- Parameters:
supervisorSearchBean
-- Returns:
- a List Supervisor objects
-
getLastIndexDateTime
Date getLastIndexDateTime(String id)
Checks if user with given id is indexed.- Parameters:
id
- User id.- Returns:
- True if user is indexed, otherwise false.
-
saveProvisionTemplateUser
ProvisionUserResponse saveProvisionTemplateUser(UserRequestModel userRequestModel, UserCollection[] dependants)
Save provision user formed by templated Edit User page.- Parameters:
userRequestModel
-dependants
-- Returns:
-
saveProvisionUser
ProvisionUserResponse saveProvisionUser(ProvisionUser provisionUser, UserCollection[] dependants)
Saves ProvisionUser.- Parameters:
provisionUser
- Provision user which will be saved.- Returns:
- ProvisionUserResponse.
-
getApproverInfoByIds
List<ApproverInfoBean> getApproverInfoByIds(Set<String> approverIds)
-
saveAlternateContact
Response saveAlternateContact(AlternateContactModel alternateContactModel)
-
getProfilePictureUserMap
ProfilePictureUserMapResponse getProfilePictureUserMap(List<String> ids)
-
getHelpDeskQuestionsResponse
HelpDeskQuestionsResponse getHelpDeskQuestionsResponse(HelpdeskQuestionsRequest request)
-
notifyAboutEmailDuplication
void notifyAboutEmailDuplication(String requestId, Set<String> emailAddresses)
-
getPossibleAttributeNames
List<String> getPossibleAttributeNames()
Method is used to return unique list of all possible attribute names
-
getAllUserAttributeValues
List<String> getAllUserAttributeValues(String attributeName)
Method is used to return list of all values of attribute selected by name
-
isUserHasPicture
BooleanResponse isUserHasPicture(String userId)
Method is used to define, does user has uploaded image or not.- Parameters:
userId
- - id for current user, nullable- Returns:
- - return
BooleanResponse
with value true (picture exists) and false (doesn't exists).
-
findOrphans
OrphanListResponse findOrphans(OrphanSearchBean orphanSearchBean, int from, int size)
Method is used to return list of orphans by search bean filters
-
deleteOrphans
Response deleteOrphans(List<Orphan> orphans, boolean deleteFromTarget)
Method is used to delete list of orphans- Parameters:
deleteFromTarget
- if true then delete object from source managed system- Returns:
Response
-
linkOrphans
Response linkOrphans(List<Orphan> orphans)
Method is used to link user to selected list of orphans- Parameters:
orphans
-- Returns:
Response
-
moveLoginToOrphan
Response moveLoginToOrphan(String loginId)
Method is used to move selected user login to orphan- Parameters:
loginId
-- Returns:
-
getActiveUserSessions
List<AuthStateInfoModel> getActiveUserSessions(ActiveSessionRequest request, int from, int size)
-
getActiveUserSessionCount
int getActiveUserSessionCount(ActiveSessionRequest request, int from, int size)
Method is used to get a count of user's active sessions.- Parameters:
request
-from
-size
-- Returns:
-
addResourceToUsers
Response addResourceToUsers(String resourceId, Set<String> rightIds, Set<String> userIds)
This method is written only for testing purposes. Call this only from tests- Parameters:
resourceId
-rightIds
-userIds
-- Returns:
-
approveAuthParam
ApproveAuthParamResponse approveAuthParam(String token)
- Parameters:
token
-- Returns:
-
getUserAuthParams
List<UserAuthParam> getUserAuthParams(String userId)
- Parameters:
userId
-- Returns:
-
findUsersByApplications
UserListResponse findUsersByApplications(AccessCertificationSearchBean searchBean, int from, int size)
-
getUserMdTypeId
String getUserMdTypeId(String userId)
Method is used to return user metadata type ID.- Parameters:
userId
-- Returns:
-
provisionMembershipOnStartDate
Response provisionMembershipOnStartDate(Date fromDate, Date toDate)
method to provision based on the specified start date range of entitlements.- Parameters:
fromDate
- The start date from which users should be provisioned.toDate
- The start date until which users should be provisioned.
-
deProvisionMembershipOnEndDate
Response deProvisionMembershipOnEndDate(Date fromDate, Date toDate)
method to deprovision based on the specified start date range of entitlements.- Parameters:
fromDate
- The end date from which users should be deprovisioned.toDate
- The end date until which users should be deprovisioned.
-
submitITPolicy
Response submitITPolicy(UserITPolicyHistoryRequest request)
-
findUserITPolicyHistory
UserITPolicyHistoryListResponse findUserITPolicyHistory(UserITPolicyHistorySearchBean searchBean, int from, int size)
-
getTerminatedUserListForReport
TerminatedUserListResponse getTerminatedUserListForReport(Set<String> targetUsers, Date fromDate, Date toDate)
-
fetchUsersFromCSVFile
UserListResponse fetchUsersFromCSVFile(BulkPasswordResetConfig resetConfig)
Fetches UserListResponse from a csv file based on the provided BulkPasswordResetConfig. This method retrieves a list of users by processing a csv file according to the configuration specified in the BulkPasswordResetConfig parameter. The configuration contains details about how to read and interpret the csv file. The method then returns a list of User objects representing the users extracted from the csv file.- Parameters:
resetConfig
- The BulkPasswordResetConfig specifying the configuration for processing the csv file.- Returns:
- A List of User objects representing the users extracted from the csv file.
-
userTypeConversion
Response userTypeConversion(UserTypeConversionModel conversionModel)
Changes the user metadata type using the provided UserTypeConversionModel.- Parameters:
conversionModel
- The UserTypeConversionModel containing information for the user type conversion.- Returns:
- A Response representing the result of the user type change operation.
-
-