// if the data can be accessed directly, do that
if (path.size() == 0) {
getterExpression = pathRootAccessor;
} else {
// otherwise, use a value provider based on the path
ValueProviderCreator vpc = new ValueProviderCreator(getContext(), getLogger(), path,
pathRootType.isClassOrInterface(), valueClassType);
vpc.setReadability(RequiredReadability.GET);
vpc.create();
getterExpression = String.format("%1$s.getValue(%2$s)", vpc.getInstanceExpression(), pathRootAccessor);
}
} else if (!isRoot()) {
if (localName.startsWith("parent.") && null == parent.deref(localName)) {
// if it starts with parent and the parent cant find a value , then
// hack