validator.validateNoDuplicatePropertyName(context);
validator.validateIndexIfSet(context);
Class<?> fieldType = field.getType();
PropertyMeta propertyMeta;
if (List.class.isAssignableFrom(fieldType)) {
propertyMeta = parseListProperty(context);
} else if (Set.class.isAssignableFrom(fieldType)) {
propertyMeta = parseSetProperty(context);
} else if (Map.class.isAssignableFrom(fieldType)) {
propertyMeta = parseMapProperty(context);
} else if (Counter.class.isAssignableFrom(fieldType)) {
propertyMeta = parseCounterProperty(context);
} else if (context.isEmbeddedId()) {
propertyMeta = parseEmbeddedId(context);
} else if (context.isPrimaryKey()) {
propertyMeta = parseId(context);
} else {
propertyMeta = parseSimpleProperty(context);
String indexName = getIndexName(field);
if (indexName != null) {
propertyMeta.setIndexProperties(new IndexProperties(indexName, propertyMeta.getCQL3ColumnName()));
}
}
context.getPropertyMetas().put(context.getCurrentPropertyName(), propertyMeta);
validator.validateNoDuplicateCQLName(context);