package org.ovirt.engine.core.compat;
import java.nio.charset.Charset;
import org.apache.commons.codec.binary.Base64;
public enum Encoding {
ASCII("US-ASCII"),
UTF8("UTF-8"),
Unicode("UTF-16"),
Base64("Base64");
private Charset charset;
private Base64 codec;
private Encoding(String encoding) {
if ("Base64".equals(encoding)) {
codec = new Base64();
} else {
charset = Charset.forName(encoding);
}
}
public byte[] getBytes(String plainText) {
if (this != Base64) {
return plainText.getBytes(charset);
} else {
try {
return codec.decode(plainText.getBytes("US-ASCII"));
} catch (Exception e) {
throw new CompatException(e);
}
}
}
public String getString(byte[] decrypt) {
if (this != Base64) {
try {
return new String(decrypt, charset.displayName());
} catch (Exception e) {
throw new CompatException(e);
}
} else {
return new String(codec.encode(decrypt)).trim();
}
}
}