class AwsStackRequestHelper {

    @VisibleForTesting
    void addParameterChunks(Collection<Parameter> parameters, String baseParameterKey, String parameterValue, int chunkCount) {
        int chunk = 0;
        String parameterKey = baseParameterKey;
        if (parameterValue == null) {
            parameters.add(new Parameter().withParameterKey(parameterKey).withParameterValue(null));
        } else {
            int len = parameterValue.length();
            int offset = 0;
            int limit = CHUNK_SIZE;
            // Add full chunks
            while ((chunk < chunkCount) && (len > limit)) {
                parameters.add(new Parameter().withParameterKey(parameterKey).withParameterValue(parameterValue.substring(offset, limit)));
                chunk++;
                parameterKey = baseParameterKey + chunk;
                offset = limit;
                limit += CHUNK_SIZE;
            }
            // Add the final partial chunk
            parameters.add(new Parameter().withParameterKey(parameterKey).withParameterValue(parameterValue.substring(offset, len)));
        }
        // Pad with empty chunks if necessary
        while (++chunk < chunkCount) {
            parameterKey = baseParameterKey + chunk;
            parameters.add(new Parameter().withParameterKey(parameterKey).withParameterValue(""));
        }
    }

}