@Override
    public Field getField(String fieldName) {
        if (fieldMap != null && fieldMap.containsKey(fieldName)) {
            fieldName = fieldMap.get(fieldName);
        }
        FieldPath path = getFieldPath(fieldName);
        Field ret = path.get(path.size() - 1).getFieldRef();
        checkAccess(ret);
        return ret;
    }
note that the returned Field may not be in this Document
directly, but may refer to a field in a struct contained in it,
in which case the returned Field is only useful for obtaining
the field type; it can't be used for get() and set().
docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java