package com.bazaarvoice.ostrich.perftest.utils;
import org.apache.commons.codec.digest.DigestUtils;
import java.util.Arrays;
import java.util.List;
/**
* Various singleton hash function to mimic workload
*/
public enum HashFunction {
SHA1 {
@Override
public String process(String work) {
return DigestUtils.sha1Hex(work);
}
},
SHA256 {
@Override
public String process(String work) {
return DigestUtils.sha256Hex(work);
}
},
SHA384 {
@Override
public String process(String work) {
return DigestUtils.sha384Hex(work);
}
},
SHA512 {
@Override
public String process(String work) {
return DigestUtils.sha512Hex(work);
}
},
MD2 {
@Override
public String process(String work) {
return DigestUtils.md2Hex(work);
}
},
MD5 {
@Override
public String process(String work) {
return DigestUtils.md5Hex(work);
}
};
public abstract String process(String work);
private static final List<HashFunction> HASH_FUNCTION_LIST = Arrays.asList(HashFunction.values());
public static String getRandomHashName() {
return HASH_FUNCTION_LIST.get(Utilities.getRandomInt(HASH_FUNCTION_LIST.size())).name();
}
}