Methods Summary |
---|
protected java.util.Set | getMethodAllDescriptors(com.sun.enterprise.deployment.EjbDescriptor ejbDesc)Returns MethodDescriptors representing All for a given EjbDescriptor.
Set methodAlls = new HashSet();
if (ejbDesc.isRemoteInterfacesSupported() ||
ejbDesc.isRemoteBusinessInterfacesSupported()) {
methodAlls.add(
new MethodDescriptor(MethodDescriptor.ALL_METHODS,
"", MethodDescriptor.EJB_REMOTE));
if (ejbDesc.isRemoteInterfacesSupported()) {
methodAlls.add(
new MethodDescriptor(MethodDescriptor.ALL_METHODS,
"", MethodDescriptor.EJB_HOME));
}
}
if (ejbDesc.isLocalInterfacesSupported() ||
ejbDesc.isLocalBusinessInterfacesSupported()) {
methodAlls.add(
new MethodDescriptor(MethodDescriptor.ALL_METHODS,
"", MethodDescriptor.EJB_LOCAL));
if (ejbDesc.isLocalInterfacesSupported()) {
methodAlls.add(
new MethodDescriptor(MethodDescriptor.ALL_METHODS,
"", MethodDescriptor.EJB_LOCALHOME));
}
}
if (ejbDesc.hasWebServiceEndpointInterface()) {
methodAlls.add(
new MethodDescriptor(MethodDescriptor.ALL_METHODS,
"", MethodDescriptor.EJB_WEB_SERVICE));
}
return methodAlls;
|
protected boolean | hasMethodPermissionsFromDD(com.sun.enterprise.deployment.MethodDescriptor methodDesc, com.sun.enterprise.deployment.EjbDescriptor ejbDesc)
HashMap methodPermissionsFromDD = ejbDesc.getMethodPermissionsFromDD();
if (methodPermissionsFromDD != null) {
Set allMethods = ejbDesc.getMethodDescriptors();
String ejbClassSymbol = methodDesc.getEjbClassSymbol();
for (Object mdObjsObj : methodPermissionsFromDD.values()) {
List mdObjs = (List)mdObjsObj;
for (Object mdObj : mdObjs) {
MethodDescriptor md = (MethodDescriptor)mdObj;
for (Object style3MdObj :
md.doStyleConversion(ejbDesc, allMethods)) {
MethodDescriptor style3Md = (MethodDescriptor)style3MdObj;
if (methodDesc.equals(style3Md)) {
return true;
}
}
}
}
}
return false;
|
protected boolean | isDelegatee()This indicates whether the annotation can be processed by delegation
from the another annotation.
return false;
|
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 com.sun.enterprise.deployment.annotation.HandlerProcessingResult | processAnnotation(com.sun.enterprise.deployment.annotation.AnnotationInfo ainfo, com.sun.enterprise.deployment.annotation.context.EjbInterceptorContext ejbInterceptorContext)Process Annotation with given InteceptorContext.
if (!isDelegatee()) {
throw new UnsupportedOperationException();
}
return getDefaultProcessedResult();
|
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.
This is a method in interface AnnotationHandler.
AnnotatedElement ae = ainfo.getAnnotatedElement();
Annotation annotation = ainfo.getAnnotation();
if (logger.isLoggable(Level.FINER)) {
logger.finer("@process annotation " + annotation + " in " + ae);
}
AnnotatedElementHandler aeHandler = ainfo.getProcessingContext().getHandler();
if (aeHandler instanceof EjbBundleContext) {
EjbBundleContext ejbBundleContext = (EjbBundleContext)aeHandler;
AnnotatedElementHandler aeh = ejbBundleContext.createContextForEjb();
if (aeh != null) {
aeHandler = aeh;
} else {
if (isDelegatee()) {
aeHandler = ejbBundleContext.createContextForEjbInterceptor();
}
if (aeHandler == null) {
return getInvalidAnnotatedElementHandlerResult(aeHandler, 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();
}
}
EjbContext[] ejbContexts = null;
EjbInterceptorContext ejbInterceptorContext = null;
if (aeHandler instanceof EjbContext) {
EjbContext ejbContext = (EjbContext)aeHandler;
ejbContexts = new EjbContext[] { ejbContext };
} else if (aeHandler instanceof EjbsContext) {
ejbContexts = ((EjbsContext)aeHandler).getEjbContexts();
} else if (isDelegatee() && aeHandler instanceof EjbInterceptorContext) {
ejbInterceptorContext = (EjbInterceptorContext)aeHandler;
} else {
return getInvalidAnnotatedElementHandlerResult(aeHandler, ainfo);
}
HandlerProcessingResult procResult = null;
if (ejbInterceptorContext != null) {
procResult = processAnnotation(ainfo, ejbInterceptorContext);
} else {
procResult = processAnnotation(ainfo, ejbContexts);
}
if (logger.isLoggable(Level.FINER)) {
logger.finer("New annotation for " + annotation);
}
return procResult;
|
protected boolean | supportTypeInheritance()This indicates whether the annotation type should be processed for
type level in super-class.
return false;
|