Methods Summary |
---|
protected abstract com.sun.enterprise.deployment.annotation.HandlerProcessingResult | processAnnotation(com.sun.enterprise.deployment.annotation.AnnotationInfo ainfo, com.sun.enterprise.deployment.annotation.context.EjbContext[] ejbContexts)Process Annotation with given EjbContexts.
|
protected abstract com.sun.enterprise.deployment.annotation.HandlerProcessingResult | processAnnotation(com.sun.enterprise.deployment.annotation.AnnotationInfo ainfo, com.sun.enterprise.deployment.annotation.context.WebComponentContext[] webCompContexts)Process Annotation with given WebCompContexts.
|
protected abstract com.sun.enterprise.deployment.annotation.HandlerProcessingResult | processAnnotation(com.sun.enterprise.deployment.annotation.AnnotationInfo ainfo, com.sun.enterprise.deployment.annotation.context.WebBundleContext webBundleContext)Process Annotation with given WebBundleContext.
|
public com.sun.enterprise.deployment.annotation.HandlerProcessingResult | processAnnotation(com.sun.enterprise.deployment.annotation.AnnotationInfo ainfo)Process a particular annotation which type is the same as the
one returned by @see getAnnotationType(). All information
pertinent to the annotation and its context is encapsulated
in the passed AnnotationInfo instance.
AnnotatedElementHandler aeHandler = ainfo.getProcessingContext().getHandler();
if (aeHandler instanceof EjbBundleContext) {
EjbBundleContext ejbBundleContext = (EjbBundleContext)aeHandler;
aeHandler = ejbBundleContext.createContextForEjb();
} else if (aeHandler instanceof WebBundleContext) {
WebBundleContext webBundleContext = (WebBundleContext)aeHandler;
aeHandler = webBundleContext.createContextForWeb();
if (aeHandler == null) {
// no such web comp, use webBundleContext
aeHandler = ainfo.getProcessingContext().getHandler();
}
}
if (aeHandler == null) {
// no such ejb
return getInvalidAnnotatedElementHandlerResult(
ainfo.getProcessingContext().getHandler(), ainfo);
}
if (!supportTypeInheritance() &&
ElementType.TYPE.equals(ainfo.getElementType()) &&
aeHandler instanceof ComponentContext) {
ComponentContext context = (ComponentContext)aeHandler;
Class clazz = (Class)ainfo.getAnnotatedElement();
if (!clazz.getName().equals(context.getComponentClassName())) {
if (logger.isLoggable(Level.WARNING)) {
log(Level.WARNING, ainfo,
localStrings.getLocalString(
"enterprise.deployment.annotation.handlers.typeinhernotsupp",
"The annotation symbol inheritance is not supported."));
}
return getDefaultProcessedResult();
}
}
HandlerProcessingResult procResult = null;
if (aeHandler instanceof EjbContext) {
procResult = processAnnotation(ainfo, new EjbContext[] { (EjbContext)aeHandler });
} else if (aeHandler instanceof EjbsContext) {
EjbsContext ejbsContext = (EjbsContext)aeHandler;
procResult = processAnnotation(ainfo, ejbsContext.getEjbContexts());
} else if (aeHandler instanceof WebComponentContext) {
procResult = processAnnotation(ainfo,
new WebComponentContext[] { (WebComponentContext)aeHandler });
} else if (aeHandler instanceof WebComponentsContext) {
WebComponentsContext webCompsContext = (WebComponentsContext)aeHandler;
procResult = processAnnotation(ainfo, webCompsContext.getWebComponentContexts());
} else if (aeHandler instanceof WebBundleContext) {
WebBundleContext webBundleContext = (WebBundleContext)aeHandler;
procResult = processAnnotation(ainfo, webBundleContext);
} else {
return getInvalidAnnotatedElementHandlerResult(aeHandler, ainfo);
}
return procResult;
|
protected boolean | supportTypeInheritance()This indicates whether the annotation type should be processed for
type level in super-class.
return false;
|