/*
   * @see com.stratelia.silverpeas.silverpeasinitialize.CallBack#doInvoke(int, int,
   * java.lang.String, java.lang.Object)
   */
  @Override
  public void doInvoke(int action, int iParam, String sParam, Object extraParam) {
    SilverTrace.info(
        "Pdc",
        "PdcCallBack.doInvoke()",
        "root.MSG_GEN_ENTER_METHOD",
        "action = " + action + ", iParam = " + iParam);

    if (iParam == -1) {
      SilverTrace.info(
          "Pdc",
          "PdcCallBack.doInvoke()",
          "root.MSG_GEN_PARAM_VALUE",
          "userId or groupId is null. Callback stopped ! action = "
              + action
              + ", sParam = "
              + sParam
              + ", extraParam = "
              + extraParam.toString());
      return;
    }

    try {
      PdcBm pdcBm = new PdcBmImpl();

      if (action == CallBackManager.ACTION_BEFORE_REMOVE_USER) {
        pdcBm.deleteManager(String.valueOf(iParam));
      } else if (action == CallBackManager.ACTION_BEFORE_REMOVE_GROUP) {
        pdcBm.deleteGroupManager(String.valueOf(iParam));
      }

    } catch (Exception e) {
      throw new PdcRuntimeException(
          "PdcCallBack.doInvoke()",
          SilverpeasRuntimeException.ERROR,
          "root.EX_CANT_GET_REMOTE_OBJECT",
          e);
    }
  }