Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/* SPDX-License-Identifier: Apache 2.0 */
/* Copyright Contributors to the ODPi Egeria project. */
package org.odpi.openmetadata.commonservices.generichandlers;
import org.odpi.openmetadata.commonservices.ffdc.InvalidParameterHandler;
import org.odpi.openmetadata.commonservices.repositoryhandler.RepositoryHandler;
import org.odpi.openmetadata.frameworks.auditlog.AuditLog;
import org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException;
import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException;
import org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException;
import org.odpi.openmetadata.metadatasecurity.server.OpenMetadataServerSecurityVerifier;
import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSRepositoryHelper;
import java.util.Date;
import java.util.List;
/**
* ContactDetailHandler manages the ContactDetails entity. The ContactDetails entity describes a contact method for an actor profile.
*/
public class ContactDetailsHandler extends OpenMetadataAPIGenericHandler
{
/**
* Construct the handler information needed to interact with the repository services
*
* @param converter specific converter for this bean class
* @param beanClass name of bean class that is represented by the generic class B
* @param serviceName name of this service
* @param serverName name of the local server
* @param invalidParameterHandler handler for managing parameter errors
* @param repositoryHandler manages calls to the repository services
* @param repositoryHelper provides utilities for manipulating the repository services objects
* @param localServerUserId userId for this server
* @param securityVerifier open metadata security services verifier
* @param supportedZones list of zones that the access service is allowed to serve Asset instances from.
* @param defaultZones list of zones that the access service should set in all new Asset instances.
* @param publishZones list of zones that the access service sets up in published Asset instances.
* @param auditLog destination for audit log events.
*/
public ContactDetailsHandler(OpenMetadataAPIGenericConverter converter,
Class beanClass,
String serviceName,
String serverName,
InvalidParameterHandler invalidParameterHandler,
RepositoryHandler repositoryHandler,
OMRSRepositoryHelper repositoryHelper,
String localServerUserId,
OpenMetadataServerSecurityVerifier securityVerifier,
List supportedZones,
List defaultZones,
List publishZones,
AuditLog auditLog)
{
super(converter,
beanClass,
serviceName,
serverName,
invalidParameterHandler,
repositoryHandler,
repositoryHelper,
localServerUserId,
securityVerifier,
supportedZones,
defaultZones,
publishZones,
auditLog);
}
/**
* Return the ContactDetails attached to a supplied actor profile.
*
* @param userId calling user
* @param profileGUID identifier for the entity that the contact details are attached to
* @param profileGUIDParameterName name of parameter supplying the GUID
* @param startingFrom where to start from in the list
* @param pageSize maximum number of results that can be returned
* @param effectiveTime the time that the retrieved elements must be effective for (null for any time, new Date() for now)
* @param methodName calling method
* @return list of objects or null if none found
* @throws InvalidParameterException the input properties are invalid
* @throws UserNotAuthorizedException user not authorized to issue this request
* @throws PropertyServerException problem accessing the property server
*/
public List getContactDetails(String userId,
String profileGUID,
String profileGUIDParameterName,
int startingFrom,
int pageSize,
Date effectiveTime,
String methodName) throws InvalidParameterException,
PropertyServerException,
UserNotAuthorizedException
{
return this.getAttachedElements(userId,
null,
null,
profileGUID,
profileGUIDParameterName,
OpenMetadataAPIMapper.ACTOR_PROFILE_TYPE_NAME,
OpenMetadataAPIMapper.CONTACT_THROUGH_RELATIONSHIP_TYPE_GUID,
OpenMetadataAPIMapper.CONTACT_THROUGH_RELATIONSHIP_TYPE_NAME,
OpenMetadataAPIMapper.CONTACT_DETAILS_TYPE_NAME,
null,
null,
0,
false,
false,
supportedZones,
startingFrom,
pageSize,
effectiveTime,
methodName);
}
/**
* Create a new contact method for a profile.
*
* @param userId userId of user making request.
* @param externalSourceGUID guid of the software server capability entity that represented the external source - null for local
* @param externalSourceName name of the software server capability entity that represented the external source
* @param profileGUID unique identifier for the connected entity (Referenceable).
* @param profileGUIDParameterName parameter supplying the profileGUID
* @param contactMethodType ordinal for contact type
* @param contactMethodService name of the service to call
* @param contactMethodValue identity value to use for this profile through this contact method
* @param methodName calling method
* @return unique identifier of the contact method
*
* @throws InvalidParameterException the endpoint bean properties are invalid
* @throws UserNotAuthorizedException user not authorized to issue this request
* @throws PropertyServerException problem accessing the property server
*/
public String createContactMethod(String userId,
String externalSourceGUID,
String externalSourceName,
String profileGUID,
String profileGUIDParameterName,
int contactMethodType,
String contactMethodService,
String contactMethodValue,
String methodName) throws InvalidParameterException,
PropertyServerException,
UserNotAuthorizedException
{
ContactDetailsBuilder builder = new ContactDetailsBuilder(contactMethodType,
contactMethodService,
contactMethodValue,
repositoryHelper,
serviceName,
serverName);
if (profileGUID != null)
{
builder.setAnchors(userId, profileGUID, methodName);
}
String contactMethodGUID = this.createBeanInRepository(userId,
externalSourceGUID,
externalSourceName,
OpenMetadataAPIMapper.CONTACT_DETAILS_TYPE_GUID,
OpenMetadataAPIMapper.CONTACT_DETAILS_TYPE_NAME,
null,
null,
builder,
methodName);
if ((contactMethodGUID != null) && (profileGUID != null))
{
final String contactMethodGUIDParameterName = "contactMethodGUID";
this.linkElementToElement(userId,
externalSourceGUID,
externalSourceName,
profileGUID,
profileGUIDParameterName,
OpenMetadataAPIMapper.ACTOR_PROFILE_TYPE_NAME,
contactMethodGUID,
contactMethodGUIDParameterName,
OpenMetadataAPIMapper.CONTACT_DETAILS_TYPE_NAME,
false,
false,
supportedZones,
OpenMetadataAPIMapper.CONTACT_THROUGH_RELATIONSHIP_TYPE_GUID,
OpenMetadataAPIMapper.CONTACT_THROUGH_RELATIONSHIP_TYPE_NAME,
null,
methodName);
}
return contactMethodGUID;
}
/**
* Remove the requested contact method.
*
* @param userId calling user
* @param externalSourceGUID guid of the software server capability entity that represented the external source - null for local
* @param externalSourceName name of the software server capability entity that represented the external source
* @param contactMethodGUID unique identifier for the connected entity (Referenceable).
* @param contactMethodGUIDParameterName parameter supplying the contactMethodGUID
* @param methodName calling method
*
* @throws InvalidParameterException one of the parameters is null or invalid.
* @throws UserNotAuthorizedException user not authorized to issue this request
* @throws PropertyServerException problem accessing the property server
*/
public void removeContactDetail(String userId,
String externalSourceGUID,
String externalSourceName,
String contactMethodGUID,
String contactMethodGUIDParameterName,
String methodName) throws InvalidParameterException,
PropertyServerException,
UserNotAuthorizedException
{
this.deleteBeanInRepository(userId,
externalSourceGUID,
externalSourceName,
contactMethodGUID,
contactMethodGUIDParameterName,
OpenMetadataAPIMapper.CONTACT_DETAILS_TYPE_GUID,
OpenMetadataAPIMapper.CONTACT_DETAILS_TYPE_NAME,
null,
null,
false,
false,
new Date(),
methodName);
}
}