return getProperty(parent).getType().getProperty(path.getName());
Property prop = getProperty(parent); if (prop == null) { throw new IllegalArgumentException ("no such property in signature: " + path); } else { return prop.getType().getProperty(path.getName()); }
    public Property getProperty(Path path) {        Path parent = path.getParent();        if (isParameter(parent)) {            return getParameter(parent).getObjectType().getProperty                (path.getName());        } else if (isSource(parent)) {            return getSource(parent).getObjectType().getProperty                (path.getName());        } else {            return getProperty(parent).getType().getProperty(path.getName());        }    }