package de.is24.infrastructure.gridfs.http.rpm;
import de.is24.infrastructure.gridfs.http.exception.InvalidRpmHeaderException;
import java.util.HashMap;
import java.util.Map;
import static org.redline_rpm.header.Flags.PREREQ;
import static org.redline_rpm.header.Flags.SCRIPT_POST;
import static org.redline_rpm.header.Flags.SCRIPT_PRE;
public final class RpmPROTagFlagsToYumConverter {
private RpmPROTagFlagsToYumConverter() {
}
private static final Map<Integer, String> FLAG_TO_STRING_MAP = new HashMap<Integer, String>() {
{
put(0, null);
put(2, "LT");
put(4, "GT");
put(8, "EQ");
put(10, "LE");
put(12, "GE");
}
};
public static String convert(final int flag) throws InvalidRpmHeaderException {
int fixedFlag = fixFlag(flag);
if (FLAG_TO_STRING_MAP.containsKey(fixedFlag)) {
return FLAG_TO_STRING_MAP.get(fixedFlag);
}
throw new InvalidRpmHeaderException("Unsupported flag for provide/require/obsolete flag: " + flag);
}
public static boolean isPre(final int flag) {
return (flag & (PREREQ | SCRIPT_PRE | SCRIPT_POST)) > 0;
}
private static int fixFlag(final int flag) {
return flag & 0xf;
}
}