class MorphiaPropertyResolver implements PropertyResolver {

    @Override
    public String resolve(String fieldName, Class<?> entityClass) {
        Iterable<String> fieldNames = splitter.split(fieldName);
        List<String> resolved = Lists.newArrayList();
        Class<?> lastClass = entityClass;
        for (String name : fieldNames) {
            MappedField mappedField = mapper.getMappedClass(lastClass)
                    .getMappedFieldByJavaField(name);
            if (mappedField != null) {
                lastClass = mappedField.getConcreteType();
                resolved.add(mappedField.getNameToStore());
            } else {
                resolved.add(name);
            }
        }
        return joiner.join(resolved);
    }

    public  MorphiaPropertyResolver();
    public  MorphiaPropertyResolver(Mapper mapper);

}