final String innerClassPropertyName) {
this.propertyName = propertyName;
this.innerClassPropertyName = innerClassPropertyName;
this.indexName = SqlUtils.singularize(propertyName) + ReflectionTools.capitalize(innerClassPropertyName);
this.indexType = ReflectionTools.getGetterOfProperty(entityInterface, propertyName).getAnnotation(Index.class).type();
this.secondaryIndexCollectionGetter = new InstanceCollectionValueGetter() {
@SuppressWarnings("unchecked")
public Collection<Object> get(Object instance) {
if (!getValidator().isValid(instance, propertyName))
getValidator().throwInvalid(instance, propertyName);
return Transform.map(new Unary<Object, Object>() {