Beispiel #1
0
		public static void ValidateFieldSchema(string name, SchemaType type, object val)
		{
			if (null == val)
			{
				return;
			}

			var expectedClasses = SchemaTypeClasses[type];

			if (null == expectedClasses)
			{
				throw new System.Exception("Invalid Java object for schema type " + type + " : " + val.GetType() + @" for field : """ + name + @"""");
			}

			var foundMatch = false;
			foreach (var expectedCls in expectedClasses)
			{
				if (expectedCls.IsInstanceOfType(val))
				{
					foundMatch = true;
					break;
				}
			}

			if (!foundMatch)
			{
				throw new System.Exception("Invalid Java object for schema type " + type + " : " + val.GetType() + @" for field : """ + name + @"""");
			}

			switch (type.InnerEnumValue)
			{
				case SchemaType.InnerEnum.INT8:
				case SchemaType.InnerEnum.INT16:
				case SchemaType.InnerEnum.PROTOBUF:
				case SchemaType.InnerEnum.AVRO:
				case SchemaType.InnerEnum.AutoConsume:
				case SchemaType.InnerEnum.AutoPublish:
				case SchemaType.InnerEnum.AUTO:
				case SchemaType.InnerEnum.KeyValue:
				case SchemaType.InnerEnum.JSON:
				case SchemaType.InnerEnum.NONE:
					throw new System.Exception("Currently " + type.GetType().Name + " is not supported");
				default:
					break;
			}
		}