コード例 #1
0
        public CqlType CreateType(TypeParser parser)
        {
            string keyspace = parser.ReadNextIdentifier();
            parser.SkipBlankAndComma();
            string name = parser.ReadNextIdentifier().DecodeHex();

            var fieldNames = new List<string>();
            var fieldTypes = new List<CqlType>();

            while(parser.SkipBlankAndComma())
            {
                if(parser.Peek() == ')')
                    return CreateTypeInternal(keyspace, name, fieldNames, fieldTypes, null);

                string fieldName = parser.ReadNextIdentifier().DecodeHex();

                if(parser.ReadNextChar() != ':')
                    throw new CqlException("Error parsing UserType arguments: ':' expected after fieldName.");

                CqlType type = parser.ReadCqlType();

                fieldNames.Add(fieldName);
                fieldTypes.Add(type);
            }

            throw new CqlException("Error parsing UserType arguments: unexpected end of string.");
        }
コード例 #2
0
ファイル: MapTypeFactory.cs プロジェクト: reuzel/CqlSharp
        public CqlType CreateType(TypeParser parser)
        {
            var keyType = parser.ReadCqlType();

            if(parser.ReadNextChar() != ',')
                throw new CqlException("Expected a ',' during parsing of a map type");

            var valueType = parser.ReadCqlType();

            return CreateType(keyType, valueType);
        }
コード例 #3
0
ファイル: TupleTypeFactory.cs プロジェクト: reuzel/CqlSharp
        public CqlType CreateType(TypeParser parser)
        {
            var types = new List<CqlType>();
            parser.SkipBlank();
            while(!parser.IsEOS() && parser.Peek() != ')')
            {
                types.Add(parser.ReadCqlType());
                parser.SkipBlankAndComma();
            }

            return CreateType(types);
        }
コード例 #4
0
ファイル: ListTypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     var innerType = parser.ReadCqlType();
     return CreateType(innerType);
 }
コード例 #5
0
ファイル: UUIDTypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     return UUIDType.Instance;
 }
コード例 #6
0
ファイル: BytesTypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     return BytesType.Instance;
 }
コード例 #7
0
ファイル: DecimalTypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     return DecimalType.Instance;
 }
コード例 #8
0
 public CqlType CreateType(TypeParser parser)
 {
     return TimestampType.Instance;
 }
コード例 #9
0
 public CqlType CreateType(TypeParser parser)
 {
     return CounterColumnType.Instance;
 }
コード例 #10
0
ファイル: Int32TypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     return Int32Type.Instance;
 }
コード例 #11
0
ファイル: AsciiTypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     return AsciiType.Instance;
 }
コード例 #12
0
ファイル: FloatTypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     return FloatType.Instance;
 }
コード例 #13
0
 public CqlType CreateType(TypeParser parser)
 {
     return InetAddressType.Instance;
 }
コード例 #14
0
ファイル: BooleanTypeFactory.cs プロジェクト: reuzel/CqlSharp
 public CqlType CreateType(TypeParser parser)
 {
     return BooleanType.Instance;
 }
コード例 #15
0
 public CqlType CreateType(TypeParser parser)
 {
     throw new NotSupportedException("Anonymous types can't be parsed. (As they have no Cassandra counterpart)");
 }