  public void enhance(GenClass genClass,
		      JMethod jMethod,
		      JAnnotation jAnn)
  {
    TransactionAttributeType type;
    type = (TransactionAttributeType) jAnn.get("value");
    BaseMethod genMethod = genClass.createMethod(jMethod);
    CallChain call = genMethod.getCall();
    switch (type) {
    case MANDATORY:
      call = new MandatoryCallChain(call);
      break;
    case REQUIRED:
      call = new RequiredCallChain(call);
      break;
    case REQUIRESNEW:
      call = new RequiresNewCallChain(call);
      break;
    case NEVER:
      call = new NeverCallChain(call);
      break;
    case SUPPORTS:
      call = new SupportsCallChain(call);
      break;
    case NOTSUPPORTED:
      call = new SuspendCallChain(call);
      break;
    default:
      break;
    }
    genMethod.setCall(call);
  }

  public void enhance(GenClass genClass,
		      JMethod jMethod,
		      JAnnotation jAnn)
  {
    TransactionAttributeType type;
    type = (TransactionAttributeType) jAnn.get("value");
    BaseMethod genMethod = genClass.createMethod(jMethod);
    CallChain call = genMethod.getCall();
    switch (type) {
    case MANDATORY:
      call = new MandatoryCallChain(call);
      break;
    case REQUIRED:
      call = new RequiredCallChain(call);
      break;
    case REQUIRES_NEW:
      call = new RequiresNewCallChain(call);
      break;
    case NEVER:
      call = new NeverCallChain(call);
      break;
    case SUPPORTS:
      call = new SupportsCallChain(call);
      break;
    case NOT_SUPPORTED:
      call = new SuspendCallChain(call);
      break;
    default:
      break;
    }
    genMethod.setCall(call);
  }
