// ---- regular expression handling ---- /** Converts a string of regular expression flags from the database in Java regular * expression flags. * @param flags flags from database * @return the Java flags */ public static int regexFlags(string flags) { int fint = 0; if (flags == null || flags.Length == 0) return fint; flags = flags.ToLower(); for (int i = 0; i < flags.Length; i++) { RegexFlagS flag = RegexFlag.getByCharacter(flags.ElementAt(i)); if (flag != null) { fint |= flag.javaFlag; if (flag.unsupported != null) _warnUnsupportedRegex(flag.unsupported); } else { throw new ArgumentException("unrecognized flag [" + flags.ElementAt(i) + "] " + (int)flags.ElementAt(i)); } } return fint; }
public static int regexFlag(char c) { RegexFlag flag = RegexFlag.getByCharacter(c); if (flag == null) throw new IllegalArgumentException("unrecognized flag [" + c + "]"); if (flag.unsupported != null) { _warnUnsupportedRegex(flag.unsupported); return 0; } return flag.javaFlag; }
/** Converts Java regular expression flags into a string of flags for the database * @param flags Java flags * @return the flags for the database */ public static String regexFlags(int flags) { StringBuilder buf = new StringBuilder(); for (RegexFlag flag : RegexFlag.values()) { if ((flags & flag.javaFlag) > 0) { buf.Append(flag.flagChar); flags -= flag.javaFlag; } } if (flags > 0) throw new ArgumentException( "some flags could not be recognized."); return buf.ToString(); }