FlowSeqGenerator.java
package com.mycim.valueobject.prp;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;
import java.text.DecimalFormat;
/**
* @author Qiansheng.Wang
* @since 2020-09-25
*/
public class FlowSeqGenerator {
private static final String PATTERN = "000000";
private static final int MIN_SEQUENCE = 0;
private static final int MAX_SEQUENCE = 999999;
private FlowSeqGenerator() {
}
public static String generate(String sequence) {
if (StringUtils.isEmpty(sequence)) {
return StringUtils.EMPTY;
}
Assert.isTrue(NumberUtils.isDigits(sequence), Errors.create().content("Flow Seq must be number.").build());
return generate(NumberUtils.toInt(sequence));
}
public static String generate(Integer sequence) {
Integer sequenceTemp = sequence;
if (sequenceTemp == null) {
sequenceTemp = 0;
}
Assert.isFalse(sequenceTemp < MIN_SEQUENCE, Errors.create().content("Flow Seq can not be negative.").build());
Assert.isFalse(sequenceTemp > MAX_SEQUENCE,
Errors.create().content("Flow Seq excedded the maximum serial number.").build());
return new DecimalFormat(PATTERN).format(sequenceTemp);
}
public static Boolean isValid(String sequence) {
return sequence != null && NumberUtils.isDigits(sequence) && sequence.length() == PATTERN.length();
}
}