/*
 * PaddingUtil.java
 *
 * Created on 2006/12/27, 4:01
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.itscool.commons.util;

/**
 *
 * @author Kano
 */
public class PaddingUtil {
    
    /**
     * データを指定されたサイズでゼロパディングします
     * @param value タグデータ
     * @param size タグデータのサイズ
     * @return パディング済みのデータ
     */
    public static String zeroPadding(String value, int size){
        if(value==null)value = "";
        value = value.trim();
        int vSize = value.getBytes().length;
        while(vSize < size){
            value = "0"+value;
            vSize = value.getBytes().length;
        }
        return value;
    }
    
    /**
     * データを指定されたサイズでスペースパディングします
     * @param value タグデータ
     * @param size タグデータのサイズ
     * @return パディング済みのデータ
     */
    public static String spacePadding(String value, int size){
        if(value==null)value = "";
        value = value.trim();
        int vSize = value.getBytes().length;
        if( vSize > size ){
            return value.substring(0, size);
        }else if( vSize == size ){
            return value;
        }
        while(vSize < size){
            value = value+" ";
            vSize = value.getBytes().length;
        }
        
        return value;
    }
    
    /**
     * データを指定されたサイズで全角スペースパディングします
     * @param value タグデータ
     * @param size タグデータのサイズ
     * @return パディング済みのデータ
     */
    public static String nSpacePadding(String value, int size){
        if(value==null)value = "";
        value = value.trim();
        int vSize = value.getBytes().length;
        if( vSize > size ){
            return value.substring(0, size);
        }else if( vSize == size ){
            return value;
        }
        while(vSize < size){
            value = value+"　";
            vSize = value.getBytes().length;
        }
        
        return value;
    }
    
    /**
     * データを指定されたサイズでゼロパディングします
     * @param valueInt タグデータ
     * @param size タグデータのサイズ
     * @return パディング済みのデータ
     */
    public static String zeroPadding(int valueInt, int size){
        String value = String.valueOf(valueInt);
        return zeroPadding(value, size);
    }
    
    /**
     * データを指定されたサイズでスペースパディングします
     * @param valueInt タグデータ
     * @param size タグデータのサイズ
     * @return パディング済みのデータ
     */
    public static String spacePadding(int valueInt, int size){
        String value = String.valueOf(valueInt);
        return spacePadding(value, size);
    }
}
