docs: public static final void getActivitySessions(ActivitySessionAttribute[] asAttrs,
                                                   int type,
                                                   String[] methodNames,
                                                   Class<?>[][] methodParamTypes,
                                                   List<ActivitySessionMethod> asAttrList,
                                                   String ejbName,
                                                   boolean usesBeanManagedAS)
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "getActivitySessions", (Object[])asAttrs);
  
          if (!usesBeanManagedAS) { // d127328
  
              if (isTraceOn && tc.isDebugEnabled())
                  Tr.debug(tc, "Bean is CMAS");
  
              if (asAttrList != null) {
                  if (isTraceOn && tc.isDebugEnabled())
                      Tr.debug(tc, "asAttrList non-null");
  
                  // array to keep track of what kind of style last set the method-specific behavior
                  int[] highestStyleOnMethod = new int[methodNames.length];
  
                  // Elements of highestStyleOnMethod[] are initialized to zero by Java rules.
  
                  // i : asAttrList loop
                  // j : MethodElements loop
                  // k : Method loop
  
                  for (int i = 0; i < asAttrList.size(); ++i) {
                      ActivitySessionMethod asMethod = asAttrList.get(i);
                      ActivitySessionAttribute asAttr = asMethod.getActivitySessionAttribute();
                      @SuppressWarnings("unchecked")
                      List<com.ibm.ws.javaee.dd.ejb.Method> methodElements = asMethod.getMethodElements();
                      for (int j = 0; j < methodElements.size(); ++j) {
                          com.ibm.ws.javaee.dd.ejb.Method me = methodElements.get(j);
                          if (isTraceOn && tc.isDebugEnabled()) {
                              trace(me, me.getInterfaceTypeValue() == com.ibm.ws.javaee.dd.ejb.Method.INTERFACE_TYPE_UNSPECIFIED ?
                                              "Interface type unspecified" :
                                              "Interface type: " + me.getInterfaceTypeValue());
                          }
                          // Is this method element for the bean we are processing?
                          if ((me.getEnterpriseBeanName()).equals(ejbName)) {
                              String meName = me.getMethodName().trim();
                              int meType = me.getInterfaceTypeValue();
  
                              if (meName.equals("*")) {
                                  if (meType == com.ibm.ws.javaee.dd.ejb.Method.INTERFACE_TYPE_UNSPECIFIED) {
                                      // style type 1 -- wildcard on all bean methods
                                      if (isTraceOn && tc.isDebugEnabled())
                                          Tr.debug(tc, "Style type 1 - all bean methods:", asAttr);
                                      for (int k = 0; k < methodNames.length; ++k) {
                                          if (highestStyleOnMethod[k] <= 1) {
                                              asAttrs[k] = asAttr;
                                              highestStyleOnMethod[k] = 1;
                                          }
                                      }
  
                                  } else if (meType == type) { //LIDB2257.19
                                      // style type 2 -- wildcard on home or remote interface methods
                                      if (isTraceOn && tc.isDebugEnabled())
                                          Tr.debug(tc, "Style type 2 - home/remote methods only:", asAttr);
                                      for (int k = 0; k < methodNames.length; ++k) {
                                          if (highestStyleOnMethod[k] <= 2) {
                                              asAttrs[k] = asAttr;
                                              highestStyleOnMethod[k] = 2;
                                          }
                                      }
                                  }
                              } else if (meType == com.ibm.ws.javaee.dd.ejb.Method.INTERFACE_TYPE_UNSPECIFIED || meType == type) { //LIDB2257.19
                                  // It is not a wildcard, and either has an unspecified
                                  // type, or is of the right type (Remote/Home/Local),
                                  // so check for a method name match.             d123321
                                  for (int k = 0; k < methodNames.length; ++k) {
                                      if (meName.equals(methodNames[k])) {
                                          List<String> meParms = me.getMethodParamList();
                                          if (meParms == null) {
                                              // style type 3 - matching method name, no signature
                                              //                specified
                                              if (isTraceOn && tc.isDebugEnabled())
                                                  Tr.debug(tc, "Style type 3 - method name only:", asAttr);
                                              if (highestStyleOnMethod[k] <= 3) {
                                                  asAttrs[k] = asAttr;
                                                  highestStyleOnMethod[k] = 3;
                                              }
                                          } else {
                                              if (DDUtil.methodParamsMatch(meParms, methodParamTypes[k])) {
                                                  // style type 4 - matching method name and signature
                                                  if (isTraceOn && tc.isDebugEnabled())
                                                      Tr.debug(tc, "Style type 4 - method name and signature:", asAttr);
                                                  asAttrs[k] = asAttr;
                                                  highestStyleOnMethod[k] = 4;
                                              } // method parms match specified parms
                                          } // method parms were specified
                                      } // methodExtension name matches method name
                                  } // method loop (k)
                              } // if/then/else for meName='*'
                          } // enterpriseBean name matches parm in methodExtension
                      } // methodElements loop (j)
                  } // asAttrList loop (i)
              } // asAttrList != null
  
          } else if (usesBeanManagedAS) {
              if (isTraceOn && tc.isDebugEnabled())
                  Tr.debug(tc, "Bean is BMAS -- all methods will be set to AS_BEAN_MANAGED");
              for (int i = 0; i < asAttrs.length; i++) {
                  asAttrs[i] = ActivitySessionAttribute.AS_BEAN_MANAGED;
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "getActivitySessions");
  
          return;
      }