public static Boolean ContainsAll(this contentTokenFlag flags, params contentTokenFlag[] tests) { foreach (contentTokenFlag f in tests) { if (flags.HasFlag(f)) { return(false); } } return(true); }
/// <summary> /// Explores the token. /// </summary> /// <param name="query">The query.</param> /// <returns></returns> public override tokenQueryResponse exploreToken(tokenQuery query) { getReady(); tokenQueryResponse response = new tokenQueryResponse(query, tokenQuerySourceEnum.ext_dict); List <DataRow> matches = new List <DataRow>(); String expression = ""; foreach (DataTable dt in namedEntityDataSet.Tables) { expression = ""; if (query.focus == contentTokenFlag.none) { expression = dt.ExtendedProperties.getProperString(tokenResultEnum.query).Replace("".t(tokenResultEnum.needle), query.token); } else { contentTokenFlag table_focus = (contentTokenFlag)dt.ExtendedProperties[tokenResultEnum.tokenFlag]; //.getProperEnum<contentTokenFlag>(contentTokenFlag.namedEntityKnown, ); if (table_focus.HasFlag(query.focus)) { expression = dt.ExtendedProperties.getProperString(tokenResultEnum.query).Replace("".t(tokenResultEnum.needle), query.token); } } if (expression != "") { matches.AddRange(dt.Select(expression)); } } foreach (DataRow dr in matches) { var fl = (contentTokenFlag)dr.Table.ExtendedProperties[tokenResultEnum.tokenFlag]; response.flags.AddInstanceRange(fl.getEnumListFromFlags <contentTokenFlag>()); response.dataRows.Add(dr); foreach (DataColumn dc in dr.Table.Columns) { response.dataTokens.AddRangeUnique(dr[dc].toStringSafe().getTokens()); } } if (response.flags.Count > 0) { response.setResponse("Known entity", "Flags earned: " + response.flags.toCsvInLine(";")); } else { response.setResponse(tokenQueryResultEnum.unknown_token); } return(response); }
//public void CollectAll(IEnumerable items) // where T:class,IContentToken, new() //{ // if (items != null) // { // foreach (Object en in items) // { // if (en is IContentSubSentence) // { // IContentSubSentence icss = en as IContentSubSentence; // Add(icss.items); // } else // { // Add(en as IContentToken); // } // } // } //} public List <IContentToken> this[contentTokenFlag flag] { get { if (Enumerable.Any(this, x => x.flags.HasFlag(flag))) { return(Enumerable.Where(this, x => x.flags.HasFlag(flag)).ToList()); } else { return(new List <IContentToken>()); } } }
/* * public static Boolean ContainsOnly(this IList flags, params Object[] tests) * { * foreach (Object f in flags) * { * if (!tests.Contains(f)) return false; * } * return true; * } * * public static Boolean ContainsAll (this IList flags, params Object[] tests) * { * foreach (Object f in tests) * { * if (!flags.Contains(f)) return false; * } * return true; * } * * public static Boolean ContainsOneOrMore(this IList flags, params Object[] tests) * { * foreach (Object f in flags) * { * if (tests.Contains(f)) return true; * } * return false; * } * * public static Boolean ContainsOneOrMore(this contentTokenFlag flags, params contentTokenFlag[] tests) * { * foreach (contentTokenFlag f in tests) * { * if (flags.HasFlag(f)) return true; * } * return false; * } * */ public static contentTokenFlag Add(this contentTokenFlag flags, contentTokenFlag newFlag) { contentTokenFlag output = flags; if (flags.ToInt32() == 0) { output = newFlag; } else { output |= newFlag; } return(output); }