package org.quickbundle.base.beans.idwrapper;
import org.quickbundle.base.beans.TableIdRuleVo;
public class ShardingInCacheCharWrapper extends ShardingInCacheWrapper {
private int charLength;
private final static String BEGIN_KEY = "char(";
private final static String END_KEY = ")";
public ShardingInCacheCharWrapper(TableIdRuleVo ruleVo) {
super(ruleVo);
String format = ruleVo.getWrapperClassFormat();
if(format != null && format.indexOf(BEGIN_KEY) > -1 && format.indexOf(END_KEY) > format.indexOf(BEGIN_KEY)) {
charLength = Integer.parseInt(format.substring(format.indexOf(BEGIN_KEY) + BEGIN_KEY.length(), format.indexOf(END_KEY)));
}
}
public synchronized String[] nextValue(int length) {
String[] old = super.nextValue(length);
String[] newResult = new String[length];
for(int i=0; i<length; i++) {
StringBuilder sb = new StringBuilder(charLength);
sb.append(old[i]);
for(int j=0; j<charLength-old[i].length(); j++) {
sb.append("0");
}
newResult[i] = sb.toString();
}
return newResult;
}
}