コード例 #1
0
ファイル: DataType.cs プロジェクト: weexp/csharp-driver
        public DataType AdaptForSimulacron()
        {
            if (Value == DataType.Text.Value)
            {
                return(DataType.Ascii);
            }

            if (_dataTypeEnum == null)
            {
                return(this);
            }

            switch (_dataTypeEnum)
            {
            case DataTypeEnum.Frozen:
                return(DataType.Frozen(InnerTypes.Single().AdaptForSimulacron()));

            case DataTypeEnum.List:
                return(DataType.List(InnerTypes.Single().AdaptForSimulacron()));

            case DataTypeEnum.Map:
                return(DataType.Map(InnerTypes.First().AdaptForSimulacron(), InnerTypes.ElementAt(1).AdaptForSimulacron()));

            case DataTypeEnum.Set:
                return(DataType.Set(InnerTypes.Single().AdaptForSimulacron()));

            case DataTypeEnum.Tuple:
                return(DataType.Tuple(InnerTypes.Select(t => t.AdaptForSimulacron()).ToArray()));

            default:
                throw new InvalidOperationException("Unrecognized data type enum");
            }
        }
コード例 #2
0
ファイル: DataType.cs プロジェクト: weexp/csharp-driver
        public string GetFqTypeName()
        {
            if (InnerTypes == null)
            {
                return(DataType.SingleFqTypeNames[this]);
            }

            if (Value.StartsWith("set<"))
            {
                return($"{DataType.SetTypeName}({InnerTypes.Single().GetFqTypeName()})");
            }
            else if (Value.StartsWith("map<"))
            {
                return($"{DataType.MapTypeName}({InnerTypes.First().GetFqTypeName()},{InnerTypes.Skip(1).First().GetFqTypeName()})");
            }
            else if (Value.StartsWith("list<"))
            {
                return($"{DataType.ListTypeName}({InnerTypes.Single().GetFqTypeName()})");
            }
            else if (Value.StartsWith("frozen<"))
            {
                return($"{DataType.FrozenTypeName}({InnerTypes.Single().GetFqTypeName()})");
            }
            else if (Value.StartsWith("tuple<"))
            {
                return($"{DataType.TupleTypeName}({string.Join(",", InnerTypes.Select(i => i.GetFqTypeName()))})");
            }

            throw new InvalidOperationException("Unrecognized data type.");
        }
コード例 #3
0
ファイル: DataType.cs プロジェクト: weexp/csharp-driver
 public override bool Equals(object obj)
 {
     return(obj is DataType type &&
            (InnerTypes == null
                ? type.InnerTypes == null
                : (type.InnerTypes != null && InnerTypes.SequenceEqual(type.InnerTypes))) &&
            Value == type.Value);
 }