Java SQL Type getPartitionSizeValidationError(int colType, String column, String partitionSize)

Here you can find the source of getPartitionSizeValidationError(int colType, String column, String partitionSize)

Description

get Partition Size Validation Error

License

Apache License

Declaration

public static String getPartitionSizeValidationError(int colType, String column, String partitionSize) 

Method Source Code


//package com.java2s;
/*//  w  w w .  ja  va2 s. c  o m
 * Copyright 2017 StreamSets Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.math.BigDecimal;

import java.sql.JDBCType;

import java.sql.Types;

public class Main {
    public static final String GENERIC_PARTITION_SIZE_GT_ZERO_MSG = "partition size must be greater than zero";

    public static String getPartitionSizeValidationError(int colType, String column, String partitionSize) {
        switch (colType) {
        case Types.TINYINT:
        case Types.SMALLINT:
        case Types.INTEGER:
            try {
                int intVal = Integer.parseInt(partitionSize);
                if (intVal <= 0) {
                    return createPartitionSizeValidationError(column, partitionSize, colType,
                            GENERIC_PARTITION_SIZE_GT_ZERO_MSG);
                }
            } catch (NumberFormatException e) {
                return createPartitionSizeValidationError(column, partitionSize, colType, e.getMessage());
            }
            break;
        case Types.BIGINT:
            // TIME, DATE, and TIMESTAMP are represented as long (epoch)
        case Types.TIME:
        case Types.DATE:
        case Types.TIMESTAMP:
            try {
                long longVal = Long.parseLong(partitionSize);
                if (longVal <= 0) {
                    return createPartitionSizeValidationError(column, partitionSize, colType,
                            GENERIC_PARTITION_SIZE_GT_ZERO_MSG);
                }
            } catch (NumberFormatException e) {
                return createPartitionSizeValidationError(column, partitionSize, colType, e.getMessage());
            }
            break;
        case Types.FLOAT:
        case Types.REAL:
            try {
                float floatVal = Float.parseFloat(partitionSize);
                if (floatVal <= 0) {
                    return createPartitionSizeValidationError(column, partitionSize, colType,
                            GENERIC_PARTITION_SIZE_GT_ZERO_MSG);
                }
            } catch (NumberFormatException e) {
                return createPartitionSizeValidationError(column, partitionSize, colType, e.getMessage());
            }
            break;
        case Types.DOUBLE:
            try {
                double doubleVal = Double.parseDouble(partitionSize);
                if (doubleVal <= 0) {
                    return createPartitionSizeValidationError(column, partitionSize, colType,
                            GENERIC_PARTITION_SIZE_GT_ZERO_MSG);
                }
            } catch (NumberFormatException e) {
                return createPartitionSizeValidationError(column, partitionSize, colType, e.getMessage());
            }
            break;
        case Types.NUMERIC:
        case Types.DECIMAL:
            try {
                BigDecimal decimalValue = new BigDecimal(partitionSize);
                if (decimalValue.signum() < 1) {
                    return createPartitionSizeValidationError(column, partitionSize, colType,
                            GENERIC_PARTITION_SIZE_GT_ZERO_MSG);
                }
            } catch (NumberFormatException e) {
                return createPartitionSizeValidationError(column, partitionSize, colType, e.getMessage());
            }
            break;
        }
        return null;
    }

    private static String createPartitionSizeValidationError(String colName, String partitionSize, int sqlType,
            String errorMsg) {
        return String.format("Partition size of %s is invalid for offset column %s (type %s): %s", partitionSize,
                colName, JDBCType.valueOf(sqlType).getName(), errorMsg);
    }
}

Related

  1. getObject(int sqlType, String value)
  2. getObjectType(Object param)
  3. getObjectType(Object param)
  4. getOdaTypeName(int odaTypeCode)
  5. getParamArray(String signature, int numParam, boolean returnAllParams)
  6. getPreferredHibernateType(int sqlType, int size, int precision, int scale, boolean nullable, boolean generatedIdentifier)
  7. getPreparedStatementSetMethodMap()
  8. getPrimitiveInstance(Type type, String valueString)
  9. getReturnClass(String typeName)