Exemplo n.º 1
0
 /// <summary>
 /// 实际上 BeanKey 很多类型都不支持,下面先尽量实现,以后可能用来实现 Bean 的 Equals.
 /// </summary>
 /// <param name="bean"></param>
 /// <param name="sw"></param>
 /// <param name="prefix"></param>
 public static void Make(Types.BeanKey bean, System.IO.StreamWriter sw, String prefix)
 {
     sw.WriteLine(prefix + "public override bool Equals(object _obj1_)");
     sw.WriteLine(prefix + "{");
     sw.WriteLine(prefix + "    if (_obj1_ == this) return true;");
     sw.WriteLine(prefix + "    if (_obj1_ is " + bean.Name + " _obj_)");
     sw.WriteLine(prefix + "    {");
     foreach (Types.Variable var in bean.Variables)
     {
         var v = new Equal(var, "_obj_", false);
         var.VariableType.Accept(v);
         sw.WriteLine(prefix + "        if (" + v.text + ") return false;");
     }
     sw.WriteLine(prefix + "        return true;");
     sw.WriteLine(prefix + "    }");
     sw.WriteLine(prefix + "    return false;");
     sw.WriteLine(prefix + "}");
     sw.WriteLine("");
 }
Exemplo n.º 2
0
        public static void Make(Types.BeanKey bean, System.IO.StreamWriter sw, string prefix)
        {
            sw.WriteLine(prefix + "public Decode(_os_: Zeze.ByteBuffer): void {");
            sw.WriteLine(prefix + "    for (var _varnum_ = _os_.ReadInt(); _varnum_ > 0; --_varnum_) // Variables.Count");
            sw.WriteLine(prefix + "    {");
            sw.WriteLine(prefix + "        var _tagid_ = _os_.ReadInt();");
            sw.WriteLine(prefix + "        switch (_tagid_)");
            sw.WriteLine(prefix + "        {");

            foreach (Types.Variable v in bean.Variables)
            {
                v.VariableType.Accept(new Decode("this." + v.Name, v.Id, "_os_", sw, prefix + "            "));
            }

            sw.WriteLine(prefix + "            default:");
            sw.WriteLine(prefix + "                Zeze.ByteBuffer.SkipUnknownField(_tagid_, _os_);");
            sw.WriteLine(prefix + "                break;");
            sw.WriteLine(prefix + "        }");
            sw.WriteLine(prefix + "    }");
            sw.WriteLine(prefix + "}");
            sw.WriteLine("");
        }
Exemplo n.º 3
0
 public static void Make(Types.BeanKey bean, System.IO.StreamWriter sw, String prefix)
 {
     sw.WriteLine(prefix + "public override string ToString()");
     sw.WriteLine(prefix + "{");
     sw.WriteLine(prefix + "    System.Text.StringBuilder sb = new System.Text.StringBuilder();");
     sw.WriteLine(prefix + "    BuildString(sb, 0);");
     sw.WriteLine(prefix + "    sb.Append(Environment.NewLine);");
     sw.WriteLine(prefix + "    return sb.ToString();");
     sw.WriteLine(prefix + "}");
     sw.WriteLine();
     sw.WriteLine(prefix + "public void BuildString(System.Text.StringBuilder sb, int level)");
     sw.WriteLine(prefix + "{");
     sw.WriteLine($"{prefix}    sb.Append(new string(' ', level * 4)).Append(\"{bean.FullName}: {{\").Append(Environment.NewLine);");
     sw.WriteLine(prefix + "    level++;");
     for (int i = 0; i < bean.Variables.Count; ++i)
     {
         var var = bean.Variables[i];
         var sep = i == bean.Variables.Count - 1 ? "" : ",";
         var.VariableType.Accept(new Tostring(sw, var.NameUpper1, prefix + "    ", sep));
     }
     sw.WriteLine(prefix + "    sb.Append(\"}\");");
     sw.WriteLine(prefix + "}");
     sw.WriteLine("");
 }
Exemplo n.º 4
0
 public BeanKeyFormatter(Types.BeanKey beanKey)
 {
     this.beanKey = beanKey;
 }