Пример #1
0
 public CatValue(ScalarCategory cat, string val)
 {
     if (cat[val] == -1)
         throw new Exception("Value: " + val + " is not part of the available options in the Category");
     CategoryID = cat.CatId;
     Index = cat[val];
 }
Пример #2
0
 public OrderableCatValue(ScalarCategory cat, string val)
 {
     if (cat[val] == -1)
     {
         throw new Exception("Value: " + val + " is not part of the available options in the Category");
     }
     CategoryID = cat.CatId;
     Index      = cat[val];
 }
Пример #3
0
        public OrderableCatValue Previous()
        {
            var ret = ScalarCategory.Get(CategoryID).Before(Index);

            if (ret == null)
            {
                return(new OrderableCatValue(ValState.Err));
            }
            return(new OrderableCatValue(ret.CategoryID, ret.Index));
        }
Пример #4
0
        public OrderableCatValue Next()
        {
            var ret = ScalarCategory.Get(CategoryID).After(Index);

            if (ret == null)
            {
                return(new OrderableCatValue(ValState.Err));
            }
            return(new OrderableCatValue(ret.CategoryID, ret.Index));
        }
Пример #5
0
 private static void AddInstance(ScalarCategory inst)
 {
     lock (ClassMonitor)
     {
         if (NamedMap.ContainsKey(inst.Name))
             return;
         int Idx = InnerMap.Count();
         InnerMap.Add(Idx, inst);
         inst.CatId = Idx;
         NamedMap[inst.Name] = inst;
     }
 }
Пример #6
0
 private static void AddInstance(ScalarCategory inst)
 {
     lock (ClassMonitor)
     {
         if (NamedMap.ContainsKey(inst.Name))
         {
             return;
         }
         int Idx = InnerMap.Count();
         InnerMap.Add(Idx, inst);
         inst.CatId          = Idx;
         NamedMap[inst.Name] = inst;
     }
 }
Пример #7
0
        public override string ToString()
        {
            if (Status == ValState.Err)
            {
                return("ERR");
            }
            if (Status == ValState.Unk)
            {
                return("UNK");
            }

            var Cat = ScalarCategory.Get(CategoryID);

            if (Cat == null)
            {
                return(CategoryID + "." + Index);
            }
            return(Cat.Name + "." + Cat[Index]);
        }
Пример #8
0
  public static void TestVars()
  {
      dynamic Col = new ScalarCategory("Season");
      Col += "Spring";
      Col += "Spring";
      Col += "Summer";
      Col += "Fall";
      Col += "Winter";
      Console.Out.WriteLine(Col.Spring);
      Console.Out.WriteLine(Col["Summer"]);
      Console.Out.WriteLine(Col[0]);
      Console.Out.WriteLine(Col[1]);
      Console.Out.WriteLine(Col[2]);
      Console.Out.WriteLine(Col.CatId);
      List<OrderableCatValue> tmp = new List<OrderableCatValue>();
      for (int i = 0; i < 100; i++)
      {
          tmp.Add(new OrderableCatValue(Col,"Spring"));
          tmp.Add(new OrderableCatValue(Col,"Summer"));
          tmp.Add(new OrderableCatValue(Col,"Fall"));
      }
      var x = tmp[0];
      Console.Out.WriteLine(x);
      Console.Out.WriteLine(x.Next());
      Console.Out.WriteLine(x.Next().Next());
      x = x.Next().Next();
      Console.Out.WriteLine(x.HasNext());
      x = x.Next();
      Console.Out.WriteLine(x);
      Console.Out.WriteLine(x.Previous());
      Console.Out.WriteLine(x.Previous().Previous());
      Console.Out.WriteLine(CatValue.Parse("Season.Spring").Index); 
 }
Пример #9
0
        public bool HasNext()
        {
            int c = ScalarCategory.Get(CategoryID).Count - 1;

            return(c > Index);
        }