@NonNull
public ProteusView.Manager createViewManager(@NonNull ProteusContext context, @NonNull ProteusView view,
@NonNull Layout layout, @NonNull ObjectValue data,
@Nullable ViewTypeParser caller, @Nullable ViewGroup parent,
int dataIndex) {
if (null != this.parent && caller != this.parent) {
return this.parent.createViewManager(context, view, layout, data, caller, parent, dataIndex);
} else {
DataContext dataContext = createDataContext(context, layout, data, parent, dataIndex);
return new ViewManager(context, caller != null ? caller : this, view.getAsView(), layout, dataContext);
}
}