public static Boolean ContainsAll(this contentTokenFlag flags, params contentTokenFlag[] tests)
 {
     foreach (contentTokenFlag f in tests)
     {
         if (flags.HasFlag(f))
         {
             return(false);
         }
     }
     return(true);
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        //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);
        }