Class TimesTenHelper
- All Implemented Interfaces:
AutoCloseable
This is highly dependent on server configuration. Required settings are -- The Library Path for the server must be set at runtime. -Djava.library.path=/usr/local/TimesTen/tt_base/lib
The Class Path for the *SERVER* ttjdbc jar must be set. Although we are compiling with a ttjdbc*.jar, this is not the library used at runtime. -cp /server/timesten/library/ttjdbc*.jar
The TimesTen library needs to be set as an available Library in linux. Example - $ export LD_LIBRARY_PATH=/usr/local/TimesTen/tt_base/lib $ ldconfig
- Version:
- $Id: $Id
- Author:
- Matthew Keathley
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic interfacestatic interface -
Method Summary
Modifier and TypeMethodDescriptionbooleanblfListURIIsInUse(String uri) Checks if the provided BLF URI is currently in use.voidclose()intMethod to retrieve a list of Activatable Features from TimesTen.getAgentDetailsForUser(String userId) getAlternateLogins(String userUid) getAnnouncementURL(Group group, String announcementName) Method to get the URL for for a Group Announcement file.getAnnouncementURL(BroadWorksUser user, String announcementName) Method to get the URL for for a User Announcement file.getASUserRowForUser.getASUserRowForUser(String userId) Method to retrieve the AS_USER row for the givenBroadWorksUser.getAutoAttendants(String groupUid) getBLFMonitoredUsers(String userId) getBroadWorksAnywherePortals(String groupUid) BroadWorksProcess<?, ?> getCallCenterAgents(String serviceProviderId, String groupId, String userIdQuery) getCallCenterReportTemplateFileURIForEnterprise(String templateName, Enterprise enterprise) getCallCenterReportTemplateFileURIForGroup(String templateName, Group group) getCallCenters(String serviceProviderId, String groupId, String idQuery) getCallCentersForSupervisor(String userId, String ccQuery) getCollaborateBridges(String groupUid) getCustGroupAttr(Group group, String... attrName) getCustGroupAttr.getCustomTagNamesInGroup(Group group) Retrieves a list of Custom Tag Names that being used within the Group.getCustomTagNamesInServiceProvider(ServiceProvider serviceProvider) Retrieves a list of Custom Tag Names that being used within the Service Provider.Retrieves a list of Custom Tag Names that are being used within the system.getDeviceAccessProtocol(String deviceType) Method to retrieve Device Access Protocols from TimesTen.getDeviceCredentials(AccessDevice accessDevice) Method to retrieve theCredentialsfor the givenAccessDevicegetDNISForCallCenter(String callCenter) getDNISForServiceProvider(ServiceProvider serviceProvider) getEnterprisePreAlertingAnnouncementURL(Enterprise enterprise, String mediaType) Method to retrieve the URL for anEnterprisePreAlerting Announcement.getFeatureAttributeRowsForService(User user, UserService userService) Method to retrieve USR_FTR_ATTR rows related to aUserandUserServicegetFileRepositoryPassword(String fileRepositoryName, String userId) Method to retrieve the Password of a FileRepositoryUser.getFindMeFollowMeInstances(String groupUid) getFlexibleSeatingHosts(String groupUid) getFTPServer(AccessDevice accessDevice) Method to retrieve information regarding an FTP File Server.getGroupAccessDevices(String groupUid) getGroupAdmins(String groupUid) getGroupLevelDeviceTags(Group group) getGroupLevelDeviceTagsForAllGroupsInServiceProvider(ServiceProvider serviceProvider) getGroupsWithService(ServiceProvider serviceProvider, String service) getGroupUid(Group group) getGroupUid(String serviceProviderId, String groupId) getHuntGroups(String groupUid) getInstantGroupCallInstances(String groupUid) Method to retrieve the LOGIN Row for the givenBroadWorksUser.getLoginRowForUserId(String userId) Method to retrieve the LOGIN Row for the given user id.getMeetMeBridges(String groupUid) getPagingGroups(String groupUid) getPbkdf2LoginRowForUserId(String userId) Method to retrieve the PBKDF2_LOGIN Row for the given user id.getRepositoryUrl(AccessDevice device, String fileName) Method to retrieve the Repository URL of a device file from TimesTen.Method to retrieve the Voice Messaging saved messages for the givenBroadWorksUser.getServiceProvider(String serviceProviderId) getServiceProviderAccessDevices(String serviceProviderUid) getServiceProviderAdmins(String serviceProviderUid) getServiceProviderAnswerConfirmationAnnouncementURL(ServiceProvider serviceProvider, String mediaType) Method to retrieve the URL for aServiceProviderAnswer Confirmation AnnouncementgetServiceProviderLevelDeviceTags(ServiceProvider serviceProvider) getServiceProviderUID(ServiceProvider serviceProvider) getServiceProviderVoicePortalBrandingVoiceMessagingGreetingAnnouncementURL(ServiceProvider serviceProvider, String mediaType) getServiceProviderVoicePortalBrandingVoiceMessagingGreetingAnnouncementURL.getServiceProviderVoicePortalBrandingVoicePortalGreetingAnnouncementURL(ServiceProvider serviceProvider, String mediaType) getServiceProviderVoicePortalBrandingVoicePortalGreetingAnnouncementURL.getSVCProviderAuthFtrAttr(ServiceProvider serviceProvider, String ftr_svc_name, String... attrName) getSVCProviderAuthFtrAttr.static TimesTenHelpergetTimesTenHelper(BroadWorksProcess broadWorksProcess) static TimesTenHelpergetTimesTenHelper(BroadWorksProcess broadWorksProcess, boolean trySecondaryFirst) getTrunkGroupAttrRow(Group group, String trunkGroupName) Method to retrieve the Authentication Password and Cipher for a Trunk Group.getTrunkGroups(String groupUid) getUserBLFUri(String userId) getUserCredentialsForFileRepository(String fileRepositoryName) getUserCredentialsForFileRepository.getUserFromDN(String dn) Given a DN in the format +15551239876, lookup the corresponding user.getUsersWithService(Group group, String service) Retrieves the VoiceMessaging Group MailServer credentials for a givenBroadWorksUserRetrieves the VoiceMessaging Personal MailServer credentials for a givenBroadWorksUsergetVoiceXmlInstances(String groupUid) booleanhasActivatableFeature(String featureCode) Checks if the provided feature code is activatedbooleanisCallCenterSupervisor(String userId) booleanmacAddressInUse(String mac) retrieveCommBarrUser.retrieveFileRepositories.voidsetASUserRowForUser(BroadWorksUser user, ASUser asUser) setASUserRowForUser.voidsetASUserRowForUser(String userId, ASUser asUser) Method to set theBroadWorksUserAS_USER row datavoidsetCollaborateBridgeRoomId(String bridgeId, String userId, String roomName, CollaborateRoomType roomType) Updates the TimesTen database to set the BridgeID to the desired value for the provided Collaborate RoomvoidsetCommBarrUser(BroadWorksUser user, CommBarrUser commBarrUser) setCommBarrUser.voidsetCustGroupAttr(Group group, CustGroupAttr custGroupAttr) setCustGroupAttr.voidsetDeviceCredentials(AccessDevice accessDevice, AccessDeviceCredentials credentials) setDeviceCredentials.voidsetFeatureAttributeRowsForService(User user, UserService userService, List<UsrFtrAttr> ftr_attrs) Method to update USR_FTR_ATTR rows related to aUserandUserServicevoidsetGroupMusicOnHoldId(String oldId, String newId, boolean isVideo) Updates a Music On Hold instance's user_idvoidsetLoginLastModified(String userId, long lastModified) Updates the the last modified date of a user's login information using the provided offset in seconds.voidsetLoginRowForUser(BroadWorksUser user, Login login) Method to set theBroadWorksUserLOGIN row data.voidsetLoginRowForUserId(String userId, Login login) Method to set the user id's LOGIN row data.voidsetMeetMeConferenceAccess(String currentConferenceID, String currentModeratorPin, MeetMeConferenceAccess meetMeConferenceAccess) Updates the TimesTen database using the provided MeetMeConferenceAccess object.voidsetPbkdf2LoginRowForUserId(String userId, Pbkdf2Login login) Method to set the user id's PBKDF2_LOGIN row data.voidsetSVCProviderAuthFtrAttr(ServiceProvider serviceProvider, SVCProviderAuthFtrAttr svcProviderAuthFtrAttr, String ftr_svc_name) setSVCProviderAuthFtrAttr.voidsetTrunkGroupAttrRow(TrunkGroupAttr trunkGroupAttr, Group group, String trunkGroupName) Method to set the Authentication Password for a Trunk Group.voidsetVoiceMessagingGroupMailServerCredentialsForUser(BroadWorksUser user, VM_MailServer mailServer) setVoiceMessagingGroupMailServerCredentialsForUser.voidsetVoiceMessagingPersonalMailServerCredentialsForUser(BroadWorksUser user, VM_MailServer mailServer) setVoiceMessagingPersonalMailServerCredentialsForUser.
-
Method Details
-
getTimesTenHelper
public static TimesTenHelper getTimesTenHelper(BroadWorksProcess broadWorksProcess) throws TimesTenException - Throws:
TimesTenException
-
getTimesTenHelper
public static TimesTenHelper getTimesTenHelper(BroadWorksProcess broadWorksProcess, boolean trySecondaryFirst) throws TimesTenException - Throws:
TimesTenException
-
getBroadWorksProcess
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
SQLException
-
getFeatureAttributeRowsForService
Method to retrieve USR_FTR_ATTR rows related to aUserandUserService- Parameters:
user- TheUserto retrieveuserService- TheUserServiceto filter by- Returns:
- A list of row data
-
retrieveCommBarrUser
retrieveCommBarrUser.
- Parameters:
user- aBroadWorksUserobject.- Returns:
- a
CommBarrUserobject.
-
setCommBarrUser
setCommBarrUser.
- Parameters:
user- aBroadWorksUserobject.commBarrUser- aCommBarrUserobject.
-
setFeatureAttributeRowsForService
public void setFeatureAttributeRowsForService(User user, UserService userService, List<UsrFtrAttr> ftr_attrs) Method to update USR_FTR_ATTR rows related to aUserandUserService- Parameters:
user- The user to modifyuserService- TheUserServiceto filter byftr_attrs- The map of row information
-
getLoginRowForUser
Method to retrieve the LOGIN Row for the givenBroadWorksUser.- Parameters:
user- TheBroadWorksUserto retrieve- Returns:
- a
Loginobject. - See Also:
-
getLoginRowForUserId
Method to retrieve the LOGIN Row for the given user id.- Parameters:
userId- The user id of the user to retrieve- Returns:
- a
Loginobject. - See Also:
-
getPbkdf2LoginRowForUserId
Method to retrieve the PBKDF2_LOGIN Row for the given user id.- Parameters:
userId- The user id of the user to retrieve- Returns:
- a
Loginobject. - See Also:
-
setPbkdf2LoginRowForUserId
Method to set the user id's PBKDF2_LOGIN row data.- Parameters:
userId- The user id to modifylogin- The login row data- See Also:
-
setLoginRowForUser
Method to set theBroadWorksUserLOGIN row data.- Parameters:
user- TheBroadWorksUserto modifylogin- The login row data- See Also:
-
setLoginRowForUserId
Method to set the user id's LOGIN row data.- Parameters:
userId- The user id to modifylogin- The login row data- See Also:
-
getASUserRowForUser
getASUserRowForUser.
- Parameters:
user- aBroadWorksUserobject.- Returns:
- a
ASUserobject.
-
getASUserRowForUser
Method to retrieve the AS_USER row for the givenBroadWorksUser.- Parameters:
userId- The id of the user to retrieve the AS_USER row- Returns:
- a
ASUserobject. - See Also:
-
setASUserRowForUser
setASUserRowForUser.
- Parameters:
user- aBroadWorksUserobject.asUser- aASUserobject.
-
setASUserRowForUser
Method to set theBroadWorksUserAS_USER row data- Parameters:
userId- TheBroadWorksUserto modifyasUser- The AS_USER row data- See Also:
-
getTrunkGroupAttrRow
Method to retrieve the Authentication Password and Cipher for a Trunk Group.- Parameters:
group- The Group that the Trunk Group is in.trunkGroupName- The name of the Trunk Group.- Returns:
- An
TrunkGroupAttrcontaining the password and cipher.
-
setTrunkGroupAttrRow
Method to set the Authentication Password for a Trunk Group.- Parameters:
trunkGroupAttr- The TrunkGroupAttr object that hold the values.group- The Group the trunk group belongs to.trunkGroupName- The name of the trunk Group.
-
getCustGroupAttr
getCustGroupAttr.
-
setCustGroupAttr
setCustGroupAttr.
- Parameters:
group- aGroupobject.custGroupAttr- aCustGroupAttrobject.
-
getAnnouncementURL
Method to get the URL for for a Group Announcement file. This file is hashed from the UIDs of the Group and Announcement.- Parameters:
group- TheGroupthat the announcement belongsannouncementName- The name of the announcement file- Returns:
- a
Stringobject. - Throws:
HelperException- Thrown if CUST_GROUP_UID attribute does not exist.- See Also:
-
getAnnouncementURL
public String getAnnouncementURL(BroadWorksUser user, String announcementName) throws HelperException Method to get the URL for for a User Announcement file. This file is hashed from the UIDs of the Group, User, and Announcement.- Parameters:
user- TheBroadWorksUserthat the announcement belongsannouncementName- The name of the announcement file- Returns:
- a
Stringobject. - Throws:
HelperException- Thrown if either the USER_UID or CUST_GROUP_UID attribute does not exist.- See Also:
-
getServiceProviderAnswerConfirmationAnnouncementURL
public String getServiceProviderAnswerConfirmationAnnouncementURL(ServiceProvider serviceProvider, String mediaType) throws HelperException Method to retrieve the URL for aServiceProviderAnswer Confirmation Announcement- Parameters:
serviceProvider- The ServiceProvider to retrieve the URL for.mediaType- The type of media that the Announcement is.- Returns:
- Returns String of the URL of the Announcement.
- Throws:
HelperException- Thrown if the SVC_PROVIDER_UID attribute does not exist.
-
getServiceProviderVoicePortalBrandingVoicePortalGreetingAnnouncementURL
public String getServiceProviderVoicePortalBrandingVoicePortalGreetingAnnouncementURL(ServiceProvider serviceProvider, String mediaType) throws HelperException getServiceProviderVoicePortalBrandingVoicePortalGreetingAnnouncementURL.
- Parameters:
serviceProvider- aServiceProviderobject.mediaType- aStringobject.- Returns:
- a
Stringobject. - Throws:
HelperException- if any.
-
getServiceProviderVoicePortalBrandingVoiceMessagingGreetingAnnouncementURL
public String getServiceProviderVoicePortalBrandingVoiceMessagingGreetingAnnouncementURL(ServiceProvider serviceProvider, String mediaType) throws HelperException getServiceProviderVoicePortalBrandingVoiceMessagingGreetingAnnouncementURL.
- Parameters:
serviceProvider- aServiceProviderobject.mediaType- aStringobject.- Returns:
- a
Stringobject. - Throws:
HelperException- if any.
-
getServiceProviderUID
-
getServiceProviderUID
-
getGroupUid
- Throws:
CannotFindException
-
getGroupUid
- Throws:
CannotFindException
-
getEnterprisePreAlertingAnnouncementURL
public String getEnterprisePreAlertingAnnouncementURL(Enterprise enterprise, String mediaType) throws HelperException Method to retrieve the URL for anEnterprisePreAlerting Announcement.- Parameters:
enterprise- The enterprise to retrieve the URL for.mediaType- The type of media that the Announcement is.- Returns:
- Returns String of the URL of the Announcement.
- Throws:
HelperException- Thrown if the SVC_PROVIDER_UID attribute does not exist.
-
getCallCenterReportBrandingURIForEnterprise
public String getCallCenterReportBrandingURIForEnterprise(Enterprise enterprise) throws CannotFindException - Throws:
CannotFindException
-
getCallCenterReportBrandingURIForGroup
- Throws:
CannotFindException
-
getCallCenterReportTemplateFileURIForEnterprise
public String getCallCenterReportTemplateFileURIForEnterprise(String templateName, Enterprise enterprise) throws CannotFindException - Throws:
CannotFindException
-
getCallCenterReportTemplateFileURIForGroup
public String getCallCenterReportTemplateFileURIForGroup(String templateName, Group group) throws CannotFindException - Throws:
CannotFindException
-
getDeviceCredentials
Method to retrieve theCredentialsfor the givenAccessDevice- Parameters:
accessDevice- TheAccessDeviceto retrieve- Returns:
- A set of credentials
- See Also:
-
setDeviceCredentials
setDeviceCredentials.
- Parameters:
accessDevice- aAccessDeviceobject.credentials- aAccessDeviceCredentialsobject.
-
getSavedVoicemails
Method to retrieve the Voice Messaging saved messages for the givenBroadWorksUser.- Parameters:
user- TheBroadWorksUserto retrieve the saved Voicemails- Returns:
- a
Listobject. - See Also:
-
getVoiceMessagingGroupMailServerCredentialsForUser
Retrieves the VoiceMessaging Group MailServer credentials for a givenBroadWorksUser- Parameters:
user- TheBroadWorksUserto retrieve- Returns:
- the set of credentials if found
-
getVoiceMessagingPersonalMailServerCredentialsForUser
Retrieves the VoiceMessaging Personal MailServer credentials for a givenBroadWorksUser- Parameters:
user- TheBroadWorksUserto retrieve- Returns:
- the set of credentials if found
-
setVoiceMessagingGroupMailServerCredentialsForUser
public void setVoiceMessagingGroupMailServerCredentialsForUser(BroadWorksUser user, VM_MailServer mailServer) throws HelperException setVoiceMessagingGroupMailServerCredentialsForUser.
- Parameters:
user- aBroadWorksUserobject.mailServer- aVM_MailServerobject.- Throws:
HelperException- if any.
-
setVoiceMessagingPersonalMailServerCredentialsForUser
public void setVoiceMessagingPersonalMailServerCredentialsForUser(BroadWorksUser user, VM_MailServer mailServer) throws HelperException setVoiceMessagingPersonalMailServerCredentialsForUser.
- Parameters:
user- aBroadWorksUserobject.mailServer- aVM_MailServerobject.- Throws:
HelperException- if any.
-
getFTPServer
Method to retrieve information regarding an FTP File Server.- Parameters:
accessDevice- TheAccessDevicewhose files are stored on the FTP Server- Returns:
- Returns an FTPServer if the device file access protocol is FTp otherwise returns null.
- See Also:
-
getDeviceAccessProtocol
Method to retrieve Device Access Protocols from TimesTen.- Parameters:
deviceType- The device type that the protocol will be retrieved for.- Returns:
- Returns the device access protocol if one is found. \
-
getActivatableFeatures
Method to retrieve a list of Activatable Features from TimesTen.- Returns:
- The list of Activatable Features
- See Also:
-
hasActivatableFeature
Checks if the provided feature code is activated- Parameters:
featureCode- The code to check.- Returns:
- True if feature is activated, otherwise false
-
setMeetMeConferenceAccess
public void setMeetMeConferenceAccess(String currentConferenceID, String currentModeratorPin, MeetMeConferenceAccess meetMeConferenceAccess) Updates the TimesTen database using the provided MeetMeConferenceAccess object.- Parameters:
currentConferenceID- The conferences current conference IDcurrentModeratorPin- The conferences current moderator pinmeetMeConferenceAccess- The MeetMeConferenceAccess to insert
-
setCollaborateBridgeRoomId
public void setCollaborateBridgeRoomId(String bridgeId, String userId, String roomName, CollaborateRoomType roomType) throws HelperException Updates the TimesTen database to set the BridgeID to the desired value for the provided Collaborate Room- Parameters:
bridgeId- The desired bridge IDuserId- The host user ID of the bridgeroomName- The room nameroomType- The room type- Throws:
HelperException- Thrown if the parameters are null or the room type is invalid- See Also:
-
getSVCProviderAuthFtrAttr
public List<SVCProviderAuthFtrAttr> getSVCProviderAuthFtrAttr(ServiceProvider serviceProvider, String ftr_svc_name, String... attrName) getSVCProviderAuthFtrAttr.
- Parameters:
serviceProvider- aServiceProviderobject.ftr_svc_name- aStringobject.attrName- aStringobject.- Returns:
- a
Listobject.
-
setSVCProviderAuthFtrAttr
public void setSVCProviderAuthFtrAttr(ServiceProvider serviceProvider, SVCProviderAuthFtrAttr svcProviderAuthFtrAttr, String ftr_svc_name) setSVCProviderAuthFtrAttr.
- Parameters:
serviceProvider- aServiceProviderobject.svcProviderAuthFtrAttr- aSVCProviderAuthFtrAttrobject.ftr_svc_name- aStringobject.
-
setGroupMusicOnHoldId
Updates a Music On Hold instance's user_id- Parameters:
oldId- The current id in the dbnewId- The id to set toisVideo- Whether or not the Music On Hold instance supports video
-
getFileRepositoryPassword
Method to retrieve the Password of a FileRepositoryUser.- Parameters:
fileRepositoryName- The file repository to retrieve the Password for.userId- The userId to retrieve the Password for.- Returns:
- The password of the FileRepositoryUser. Null if not found.
-
getRepositoryUrl
Method to retrieve the Repository URL of a device file from TimesTen.- Parameters:
device- The device to retrieve the URL for.fileName- The name of the file to retrieve the URL for.- Returns:
- Returns the repository url.
-
getUserCredentialsForFileRepository
getUserCredentialsForFileRepository.
-
setLoginLastModified
Updates the the last modified date of a user's login information using the provided offset in seconds.- Parameters:
userId- The user to update.lastModified- Timestamp in milliseconds of lastModified date.
-
getDeviceAccessInformation
-
retrieveFileRepositories
retrieveFileRepositories.
- Returns:
- a
Listobject.
-
blfListURIIsInUse
Checks if the provided BLF URI is currently in use.- Parameters:
uri- The uri to check- Returns:
- TRUE IFF the uri is in use, FALSE otherwise
-
getCustomTagNamesInSystem
Retrieves a list of Custom Tag Names that are being used within the system.- Returns:
- The list of tag names.
-
getCustomTagNamesInServiceProvider
Retrieves a list of Custom Tag Names that being used within the Service Provider. Includes tags being used by Group devices.- Parameters:
serviceProvider- The ServiceProvider to retrieve tags for.- Returns:
- The list of tag names.
-
getServiceProviderLevelDeviceTags
-
getAllServiceProviderLevelDeviceTags
-
getGroupLevelDeviceTagsForAllGroupsInServiceProvider
public List<String> getGroupLevelDeviceTagsForAllGroupsInServiceProvider(ServiceProvider serviceProvider) -
getCustomTagNamesInGroup
Retrieves a list of Custom Tag Names that being used within the Group.- Parameters:
group- The Group to retrieve tags for.- Returns:
- The list of tag names.
- Throws:
HelperException
-
getGroupLevelDeviceTags
- Throws:
HelperException
-
getAllGroupLevelDeviceTags
- Throws:
HelperException
-
getTagsInTagSets
- Throws:
HelperException
-
getUserIdFromBLFUri
-
getBLFMonitoredUsers
-
getUsersWithBlf
-
getUserBLFUri
-
getServicePacksAvailableForUse
-
getUserFromDN
Given a DN in the format +15551239876, lookup the corresponding user.- Parameters:
dn- The dn to search the database for.- Returns:
- The associated user, if one is found. NULL otherwise.
-
macAddressInUse
-
countServiceProviders
public int countServiceProviders() -
getServiceProvider
-
getServiceProviders
-
getGroup
-
getGroups
-
getUsers
-
getAlternateLogins
-
getGroupAccessDevices
-
getServiceProviderAccessDevices
-
getSystemAccessDevices
-
getSystemAdmins
-
getServiceProviderAdmins
-
getGroupAdmins
-
getAutoAttendants
-
getCallCenters
-
getHuntGroups
-
getMeetMeBridges
-
getBroadWorksAnywherePortals
-
getCollaborateBridges
-
getFindMeFollowMeInstances
-
getPagingGroups
-
getInstantGroupCallInstances
-
getVoiceXmlInstances
-
getFlexibleSeatingHosts
-
getTrunkGroups
-
getUsersWithService
- Throws:
HelperException
-
getCallCenterAgents
public List<UserServiceRow> getCallCenterAgents(String serviceProviderId, String groupId, String userIdQuery) -
getGroupsWithService
public List<GroupServiceRow> getGroupsWithService(ServiceProvider serviceProvider, String service) throws HelperException - Throws:
HelperException
-
getAgentDetailsForUser
-
getDNISForCluster
-
getDNISForServiceProvider
-
getDNISForCallCenter
-
isCallCenterSupervisor
-
getCallCentersForSupervisor
-