public static String getTaskName()

in src/main/java/com/amazonaws/services/dynamodbv2/streams/connectors/DynamoDBConnectorUtilities.java [48:77]


    public static String getTaskName(Region sourceRegion, Region destinationRegion, String suppliedTaskName,
                                     String sourceTableName, String destinationTableName) {
        String taskName;
        if (!Strings.isNullOrEmpty(suppliedTaskName)) {
            taskName = DynamoDBConnectorConstants.SERVICE_PREFIX + suppliedTaskName;
            if (taskName.length() > DynamoDBConnectorConstants.DYNAMODB_TABLENAME_LIMIT) {
                throw new IllegalArgumentException("Provided taskname is too long!");
            }
        } else {
            taskName = sourceRegion.getName() + sourceTableName + destinationRegion.getName() + destinationTableName;
            // hash stack name using MD5
            if (DynamoDBConnectorConstants.MD5_DIGEST == null) {
                // see if we can generate a taskname without hashing
                if (taskName.length() > DynamoDBConnectorConstants.DYNAMODB_TABLENAME_LIMIT) { // must hash the taskname
                    throw new IllegalArgumentException(
                        "Generated taskname is too long and cannot be hashed due to improperly initialized MD5 digest object!");
                }
            } else {
                try {
                    taskName = DynamoDBConnectorConstants.SERVICE_PREFIX
                            + new String(Hex.encodeHex(DynamoDBConnectorConstants.MD5_DIGEST.digest(taskName
                            .getBytes(DynamoDBConnectorConstants.BYTE_ENCODING))));
                } catch (UnsupportedEncodingException e) {
                    throw new IllegalArgumentException("taskName was not encoded as " + DynamoDBConnectorConstants.BYTE_ENCODING, e);
                }
            }
        }

        return taskName;
    }