All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
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(Map,?>map,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