ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.app
Enum RowType

java.lang.Object
  extended by java.lang.Enum<RowType>
      extended by umontreal.iro.lecuyer.contactcenters.app.RowType
All Implemented Interfaces:
Serializable, Comparable<RowType>

public enum RowType
extends Enum<RowType>

Represents the row type for a matrix regrouping performance measures. Each type of performance measure has a row type that affects the number and role of rows in any matrix of performance measures of that type. Of course, the number of rows is also affected by the parameters of the contact center.

Each row of a matrix of performance measures corresponds to one type of event. Usually, there is one row per contact type or agent group, and an extra row for the aggregate measures. If estimates of some performance measures are missing in a matrix of results, e.g., an approximation cannot compute them, they can be replaced by Double.NaN. The aggregate value is often defined as the sum of the values for each event type. In this case, if there is a single event type, the matrix has a single row since the per-type and aggregate values are the same.


Enum Constant Summary
AGENTGROUP
          Rows representing agent groups.
CONTACTTYPE
          Rows representing segments of contact types.
CONTACTTYPEAGENTGROUP
          Rows representing contact types/agent group pairs.
INBOUNDTYPE
          Rows representing segments of inbound contact types.
INBOUNDTYPEAGENTGROUP
          Rows representing inbound contact types/agent group pairs.
INBOUNDTYPEAWT
          Rows representing segments of inbound contact types, for performance measures using acceptable waiting times.
INBOUNDTYPEAWTAGENTGROUP
          Rows representing inbound contact types/agent group pairs, for performance measures using acceptable waiting times.
OUTBOUNDTYPE
          Rows representing segments of outbound contact types.
OUTBOUNDTYPEAGENTGROUP
          Rows representing outbound contact types/agent group pairs.
WAITINGQUEUE
          Rows representing waiting queues.
 
Method Summary
abstract  int count(ContactCenterInfo eval)
          Returns the usual number of rows in a matrix of performance measures with rows of this type estimated by the evaluation system eval.
abstract  String getName(ContactCenterInfo eval, int row)
          Returns the name associated with the row row in a matrix of results for this type of row estimated by eval.
abstract  Map<String,String> getProperties(ContactCenterInfo eval, int row)
          Returns the properties associated with row row.
abstract  String getTitle()
          Returns the title that should identify the rows of matrices of results for this type of row.
 boolean isContactType()
          Determines if this row type corresponds to contact types.
 boolean isContactTypeAgentGroup()
          Determines if this row type corresponds to (contact type, agent group) pairs.
 RowType toContactType()
          Reverse of toContactTypeAgentGroup().
 RowType toContactTypeAgentGroup()
          Returns the equivalent of this row type for pairs with agent groups.
 RowType toInboundType()
          Converts this row type to a row type representing inbound contact types.
 RowType toInboundTypeAWT()
          Similar to toInboundType(), but converts to inbound contact type with acceptable waiting times.
 RowType toOutboundType()
          Converts this row type to a row type representing outbound contact types.
static RowType valueOf(String name)
          Returns the enum constant of this type with the specified name.
static RowType[] values()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

INBOUNDTYPE

public static final RowType INBOUNDTYPE
Rows representing segments of inbound contact types. More specifically, let $ \Ki{^\prime}$$ \Ki$ be the number of rows of this type for a specific model of contact center. If a matrix has rows of this type and if there are $ \Ki$ inbound contact types in the model, row k = 0,…,$ \Ki$ - 1 represents contact type k while row $ \Ki{^\prime}$ - 1 is used to represent all contact types. Rows $ \Ki$,…,$ \Ki{^\prime}$ - 2 represent user-defined segments regrouping inbound contact types. If $ \Ki$ = 1, a single row represents the single inbound contact type, and $ \Ki{^\prime}$ = $ \Ki$.


INBOUNDTYPEAWT

public static final RowType INBOUNDTYPEAWT
Rows representing segments of inbound contact types, for performance measures using acceptable waiting times. This is similar to INBOUNDTYPE, except that there is one group of rows for each matrix of acceptable waiting times. More specifically, if there are $ \Ki{^\prime}$ segments of inbound contact types and M user-specified matrices of acceptable waiting times (often, M = 1), row m$ \Ki{^\prime}$ + k represents segment of inbound contact types k with the mth matrix of AWTs. The total number of rows is M$ \Ki{^\prime}$.


OUTBOUNDTYPE

public static final RowType OUTBOUNDTYPE
Rows representing segments of outbound contact types. More specifically, let $ \Ko{^\prime}$$ \Ko$ be the number of rows of this type for a specific model of contact center. If a matrix has rows of this type and if there are $ \Ko$ outbound contact types in the model, row k = 0,…,$ \Ko$ - 1 represents outbound contact type k while row $ \Ko{^\prime}$ - 1 is used to represent all contact types. Rows $ \Ko$,…,$ \Ko{^\prime}$ - 2 represent user-defined segments regrouping outbound contact types. If $ \Ko$ = 1, a single row represents the single outbound contact type, and $ \Ko{^\prime}$ = $ \Ko$.


CONTACTTYPE

public static final RowType CONTACTTYPE
Rows representing segments of contact types. More specifically, let K'K be the number of rows of this type for a specific model of contact center. If a matrix has rows of this type and if there are K contact types in the model, row k = 0,…, K - 1 represents contact type k while row K' - 1 is used for representing all contact types. Rows K,…, K' - 2 represent user-defined segments regrouping contact types. If K = 1, a single row represents the single contact type, and K' = K.


INBOUNDTYPEAGENTGROUP

public static final RowType INBOUNDTYPEAGENTGROUP
Rows representing inbound contact types/agent group pairs. More specifically, let $ \Ki{^\prime}$ be the number of segments of inbound contact types, and I' be the number of segments of agent groups. If a matrix has this type of row, row kI' + i, for k = 0,…,$ \Ki{^\prime}$ - 1 and i = 0,…, I' - 1, represents inbound contact types in segment k served by agents in segment of groups i. The total number of rows is $ \Ki{^\prime}$I'.


INBOUNDTYPEAWTAGENTGROUP

public static final RowType INBOUNDTYPEAWTAGENTGROUP
Rows representing inbound contact types/agent group pairs, for performance measures using acceptable waiting times. This is similar to INBOUNDTYPEAGENTGROUP, except that there is one group of rows for each matrix of acceptable waiting times. More specifically, if there are $ \Ki$ segments of inbound contact types, I' segments of agent groups, and M matrices of acceptable waiting times (often, M = 1), row m$ \Ki{^\prime}$I' + kI' + i represents segment of inbound contact types k and agent group i with the mth matrix of AWTs. The total number of rows is M$ \Ki{^\prime}$I'.


OUTBOUNDTYPEAGENTGROUP

public static final RowType OUTBOUNDTYPEAGENTGROUP
Rows representing outbound contact types/agent group pairs. More specifically, let $ \Ko{^\prime}$ be the number of segments of outbound contact types, and I' be the number of segments of agent groups. If a matrix has this type of row, row kI' + i, for k = 0,…,$ \Ko{^\prime}$ - 1 and i = 0,…, I' - 1, represents outbound contact types in segment k served by agents in segment of groups i. The total number of rows is $ \Ko{^\prime}$I'.


CONTACTTYPEAGENTGROUP

public static final RowType CONTACTTYPEAGENTGROUP
Rows representing contact types/agent group pairs. More specifically, let K' be the number of segments of contact types, and I' be the number of segments of agent groups. If a matrix has this type of row, row kI' + i, for k = 0,…, K' - 1 and i = 0,…, I' - 1, represents contact types in segment k served by agents in segment of groups i. The total number of rows is K'I'.


WAITINGQUEUE

public static final RowType WAITINGQUEUE
Rows representing waiting queues. More specifically, let Q'Q be the number of rows of this type for a specific model of contact center. If a matrix has rows of this type and if there are Q waiting queues in the model, row q = 0,…, Q - 1 represents waiting queue q while row Q' - 1 is used for representing all waiting queues. Rows Q,…, Q' - 2 represent user-defined segments regrouping waiting queues. If Q = 1, a single row represents the single waiting queue, and Q' = Q.


AGENTGROUP

public static final RowType AGENTGROUP
Rows representing agent groups. More specifically, let I'I be the number of rows of this type for a specific model of contact center. If a matrix has rows of this type and if there are I agent groups in the model, row i = 0,…, I - 1 represents agent group i while row I' - 1 is used for representing all agent groups. Rows I,…, I' - 2 represent user-defined segments regrouping agent groups. If I = 1, a single row represents the single agent group, and I' = I.

Method Detail

values

public static RowType[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (RowType c : RowType.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static RowType valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null

isContactType

public boolean isContactType()
Determines if this row type corresponds to contact types. Returns true if and only if this row type corresponds to INBOUNDTYPE, INBOUNDTYPEAWT, OUTBOUNDTYPE, or CONTACTTYPE.

Returns:
true if and only if this row type is related to contact types.

isContactTypeAgentGroup

public boolean isContactTypeAgentGroup()
Determines if this row type corresponds to (contact type, agent group) pairs. Returns true if and only if this row type corresponds to INBOUNDTYPEAGENTGROUP, INBOUNDTYPEAWTAGENTGROUP, OUTBOUNDTYPEAGENTGROUP, or CONTACTTYPEAGENTGROUP.

Returns:
true if and only if this row type is related to (contact type, agent group) pairs.

toInboundType

public RowType toInboundType()
Converts this row type to a row type representing inbound contact types. Returns INBOUNDTYPE if this row type corresponds to CONTACTTYPE, and INBOUNDTYPEAGENTGROUP if this row type corresponds to CONTACTTYPEAGENTGROUP. Otherwise, throws an illegal-argument exception.

Returns:
the equivalent of this row type for inbound contact types.

toInboundTypeAWT

public RowType toInboundTypeAWT()
Similar to toInboundType(), but converts to inbound contact type with acceptable waiting times. Returns INBOUNDTYPEAWT if this row type corresponds to CONTACTTYPE, and INBOUNDTYPEAWTAGENTGROUP if this row type corresponds to CONTACTTYPEAGENTGROUP. Otherwise, throws an illegal-argument exception.

Returns:
the equivalent of this row type for inbound contact types.

toOutboundType

public RowType toOutboundType()
Converts this row type to a row type representing outbound contact types. Returns OUTBOUNDTYPE if this row type corresponds to CONTACTTYPE, and OUTBOUNDTYPEAGENTGROUP if this row type corresponds to CONTACTTYPEAGENTGROUP. Otherwise, throws an illegal-argument exception.

Returns:
the equivalent of this row type for outbound contact types.

toContactTypeAgentGroup

public RowType toContactTypeAgentGroup()
Returns the equivalent of this row type for pairs with agent groups. This method returns INBOUNDTYPEAGENTGROUP if this row type is INBOUNDTYPE, CONTACTTYPEAGENTGROUP if this row type is CONTACTTYPE, etc.

Returns:
the equivalent of this row type for pairs with agent groups.

toContactType

public RowType toContactType()
Reverse of toContactTypeAgentGroup(). For example, this returns INBOUNDTYPE if this row type is INBOUNDTYPEAGENTGROUP, CONTACTTYPE if this row type is CONTACTTYPEAGENTGROUP, etc.


getTitle

public abstract String getTitle()
Returns the title that should identify the rows of matrices of results for this type of row. For example, this may return Groups for AGENTGROUP.

Returns:
the row title.

getName

public abstract String getName(ContactCenterInfo eval,
                               int row)
Returns the name associated with the row row in a matrix of results for this type of row estimated by eval. For example, if the method is called for INBOUNDTYPE and row 0, it may return inbound type 0.

Parameters:
eval - the contact center evaluation object.
row - the row index.
Returns:
the row name.

getProperties

public abstract Map<String,String> getProperties(ContactCenterInfo eval,
                                                 int row)
Returns the properties associated with row row. Properties are additional strings describing a row. This can include, e.g., the language of the customers, the originating region, etc. If no property is defined for the given row, this method returns an empty map.

Parameters:
eval - the evaluation system.
row - the row index.
Returns:
the properties.

count

public abstract int count(ContactCenterInfo eval)
Returns the usual number of rows in a matrix of performance measures with rows of this type estimated by the evaluation system eval.

Parameters:
eval - the queried evaluation system.
Returns:
the number of rows.

ContactCenters
V. 0.9.9.

To submit a bug or ask questions, send an e-mail to Richard Simard.