All Downloads are FREE. Search and download functionalities are using the official Maven repository.

holmos.reflect.tool.HolmosArrayAndCollectionFormatter Maven / Gradle / Ivy

package holmos.reflect.tool;

import java.util.Collection;
import java.util.Map;

/**将集合类型和数组类型的日志信息,格式化为一组规定好的字符窜
 * @author 吴银龙(15857164387)
 * */
public class HolmosArrayAndCollectionFormatter {
	/**格式化的最大的数组或者集合的元素个数,之后的将不再日志记录中展示
* 以默认的格式展示,比如"..." * */ protected int maxElementCount; /**普通对象的日志格式化器*/ protected HolmosObjectFormatter objectFormatter; /**{@link HolmosArrayAndCollectionFormatter}构造器
* @param maxElementCount 格式化的最大的数组或者集合的元素个数 * @param objectFormatter 普通对象的日志格式化器*/ public HolmosArrayAndCollectionFormatter(int maxElementCount,HolmosObjectFormatter objectFormatter){ this.maxElementCount=maxElementCount; this.objectFormatter=objectFormatter; } /**格式化给定的数组
* @param array 要进行格式化的数组 * @param currentDepth 当前数组所在的递归层次 * @param result 此格式化器格式化的结果,调用这个方法,会变更result的值 * */ public void formatterArrays(Object array, int currentDepth, StringBuilder result){ if (array instanceof byte[]) { formatByteArray((byte[]) array, result); return; } if (array instanceof short[]) { formatShortArray((short[]) array, result); return; } if (array instanceof int[]) { formatIntArray((int[]) array, result); return; } if (array instanceof long[]) { formatLongArray((long[]) array, result); return; } if (array instanceof char[]) { formatCharArray((char[]) array, result); return; } if (array instanceof float[]) { formatFloatArray((float[]) array, result); return; } if (array instanceof double[]) { formatDoubleArray((double[]) array, result); return; } if (array instanceof boolean[]) { formatBooleanArray((boolean[]) array, result); return; } formatObjectArray((Object[]) array, currentDepth, result); } /**格式化object类型数组 * @param array 待格式化的object类型数组 * @param result 格式化结果信息 * */ private void formatObjectArray(Object[] array, int currentDepth, StringBuilder result) { result.append("["); int i=0; for(;i0){ result.append(','); } //递归调用 formatObjectArray(array, currentDepth+1, result); } if(i0){ result.append(','); }result.append(array[i]); } if(i0){ result.append(','); }result.append(array[i]); } if(i0){ result.append(','); }result.append(array[i]); } if(i0){ result.append(','); }result.append(array[i]); } if(i0){ result.append(','); }result.append(array[i]); } if(i0){ result.append(','); }result.append(array[i]); } if(i0){ result.append(','); }result.append(array[i]); } if(i0){ result.append(','); }result.append(array[i]); } if(i * @param collection 待格式化的collection * @param currentDepth 当前collection所在的递归深度 * @param result 格式化结果信息 * */ public void formatCollection(Collection collection,int currentDepth,StringBuilder result){ result.append("["); int i=0; for(Object element:collection){ if(i>0){ result.append(","); } objectFormatter.formatImpl(element, currentDepth+1, result); if(i>=maxElementCount&&i * @param map 待格式化的map * @param currentDepth 当前map所在的递归深度 * @param result 格式化结果信息 * */ public void formatMap(Mapmap,int currentDepth,StringBuilder result){ result.append("["); int i=0; for(Map.Entry element : map.entrySet()){ if(i>0){ result.append(","); } objectFormatter.formatImpl(element.getKey(), currentDepth, result); result.append("="); objectFormatter.formatImpl(element.getValue(), currentDepth+1, result); if(i>=maxElementCount&&i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy