org.opentestsystem.delivery.testreg.upload.parser.ParserTextUtils.java Source code

Java tutorial

Introduction

Here is the source code for org.opentestsystem.delivery.testreg.upload.parser.ParserTextUtils.java

Source

/*******************************************************************************
 * Educational Online Test Delivery System
 * Copyright (c) 2013 American Institutes for Research
 * 
 * Distributed under the AIR Open Source License, Version 1.0
 * See accompanying file AIR-License-1_0.txt or at
 * http://www.smarterapp.org/documents/American_Institutes_for_Research_Open_Source_Software_License.pdf
 ******************************************************************************/

package org.opentestsystem.delivery.testreg.upload.parser;

import static org.apache.commons.lang.StringUtils.trimToEmpty;

import java.util.Arrays;

import org.apache.commons.lang.ArrayUtils;

/**
 * Internal class for Parser specific utilities.
 * 
 */
public abstract class ParserTextUtils {

    public static boolean areAllElementsNull(String[] values) {

        for (String str : values) {
            if (str != null) {
                return false;
            }
        }

        return true;
    }

    public static boolean isEmptyRecord(String[] records) {

        for (String value : records) {
            if (!trimToEmpty(value).isEmpty()) {
                return false;
            }
        }

        return true;
    }

    public static String[] trimRecords(String[] records) {
        return Arrays.copyOf(trimTextValues(records), records.length, String[].class);
    }

    public static Object[] trimTextValues(Object[] records) {

        Object[] trimmedRecordArray = new Object[records.length];

        for (int i = 0; i < records.length; i++) {
            Object record = records[i];

            if (record instanceof String || record instanceof Number) {
                trimmedRecordArray[i] = record.toString().trim();
            } else {
                trimmedRecordArray[i] = record;
            }
        }

        return trimmedRecordArray;
    }

    public static Object[] padEmptyIfNoColumnAtEnd(int totalColumns, Object[] records) {
        if (records.length < totalColumns) {
            return padEmptyIfNoColumnAtEnd(totalColumns, ArrayUtils.add(records, ""));
        }
        return records;
    }

    public static String[] padEmptyTextIfNoColumnAtEnd(int totalColumns, String[] records) {
        Object[] paddedCols = padEmptyIfNoColumnAtEnd(totalColumns, records);
        return Arrays.asList(paddedCols).toArray(new String[paddedCols.length]);
    }
}