in jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/config/view/ViewConfigExtension.java [195:239]
private void addPageBean(AnnotatedType annotatedType)
{
View view = annotatedType.getAnnotation(View.class);
if(!"".equals(view.inline()[0]))
{
//TODO move exceptions to util class
throw new IllegalStateException("Definition error at: " + annotatedType.getJavaClass().getName() +
" it isn't allowed to define a class level @" + View.class.getName() +
" without a typesafe view config. Please don't use @View(inline=\"...\") for this use-case!");
}
if(this.logger.isLoggable(Level.INFO))
{
this.logger.info(annotatedType.getJavaClass().getName() + " will be used as page-bean.");
}
for(Class<? extends ViewConfig> viewConfigClass : view.value())
{
ViewConfigDescriptor viewConfigDescriptor = ViewConfigCache.getViewConfigDescriptor(viewConfigClass);
if(viewConfigDescriptor == null)
{
ViewConfigDescriptor entry = createViewConfigDescriptor(viewConfigClass);
if(entry != null)
{
if(entry instanceof EditableViewConfigDescriptor)
{
((EditableViewConfigDescriptor)entry).addPageBean(annotatedType.getJavaClass());
((EditableViewConfigDescriptor)entry).setPartialViewConfig(true);
}
ViewConfigCache.addViewConfigDescriptor(entry.getViewId(), entry);
}
}
else
{
if(viewConfigDescriptor instanceof EditableViewConfigDescriptor)
{
((EditableViewConfigDescriptor)viewConfigDescriptor).addPageBean(annotatedType.getJavaClass());
}
}
}
}