@Override
public List<Integer> translatePropertyPath(List<String> path) {
List<Integer> propPath = new ArrayList<Integer>(path.size());
Descriptor md = messageDescriptor;
for (String prop : path) {
FieldDescriptor fd = md.findFieldByName(prop);
propPath.add(fd.getNumber());
if (fd.getJavaType() == JavaType.MESSAGE) {
md = fd.getMessageType();
} else {
md = null; // iteration is expected to stop here