/**
   * 非同期メッセージ送信メソッド
   *
   * @param message
   */
  public void sendAsyncMessage(JSONObject message) {

    String href = Window.Location.getHref();
    postMessage(message.toString(), href);

    addSendLog(message);
  }
예제 #2
0
  @Override
  public void deleteMessages(final JSONObject deleteIds, AsyncCallback<String> callback) {
    String address = deProperties.getMuleServiceBaseUrl() + "notifications/delete"; // $NON-NLS-1$
    ServiceCallWrapper wrapper = new ServiceCallWrapper(POST, address, deleteIds.toString());

    deServiceFacade.getServiceData(wrapper, callback);
  }
  protected boolean addBlockoutPeriod(
      final JSONObject schedule, final JsJobTrigger trigger, String urlSuffix) {
    String url = GWT.getHostPageBaseURL() + "api/scheduler/blockout/" + urlSuffix; // $NON-NLS-1$

    RequestBuilder addBlockoutPeriodRequest = new RequestBuilder(RequestBuilder.POST, url);
    addBlockoutPeriodRequest.setHeader("accept", "text/plain"); // $NON-NLS-1$ //$NON-NLS-2$
    addBlockoutPeriodRequest.setHeader(
        "Content-Type", "application/json"); // $NON-NLS-1$ //$NON-NLS-2$
    addBlockoutPeriodRequest.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");

    // Create a unique blockout period name
    final Long duration = trigger.getBlockDuration();
    final String blockoutPeriodName =
        trigger.getScheduleType()
            + Random.nextInt()
            + ":"
            + //$NON-NLS-1$
            /* PentahoSessionHolder.getSession().getName() */ "admin"
            + ":"
            + duration; //$NON-NLS-1$ //$NON-NLS-2$

    // Add blockout specific parameters
    JSONObject addBlockoutParams = schedule;
    addBlockoutParams.put("jobName", new JSONString(blockoutPeriodName)); // $NON-NLS-1$
    addBlockoutParams.put("duration", new JSONNumber(duration)); // $NON-NLS-1$
    addBlockoutParams.put("timeZone", new JSONString(scheduleEditorWizardPanel.getTimeZone()));

    try {
      addBlockoutPeriodRequest.sendRequest(
          addBlockoutParams.toString(),
          new RequestCallback() {
            public void onError(Request request, Throwable exception) {
              MessageDialogBox dialogBox =
                  new MessageDialogBox(
                      Messages.getString("error"),
                      exception.toString(),
                      false,
                      false,
                      true); //$NON-NLS-1$
              dialogBox.center();
              setDone(false);
            }

            public void onResponseReceived(Request request, Response response) {
              if (response.getStatusCode() == Response.SC_OK) {
                if (null != callback) {
                  callback.okPressed();
                }
              }
            }
          });
    } catch (RequestException e) {
      // ignored
    }

    return true;
  }
  /** 同期メッセージング(試作) */
  private void sendSyncMessage(JSONObject message) {
    debug.timeAssert("11/07/23 8:40:07", 0, "yieldが正式に全ブラウザに実装されるまでは使えない。");

    String href = Window.Location.getHref();
    postMessage(message.toString(), href);

    // この辺にyieldでメッセージ受信の受付を行えば良い

    addSendLog(message);
  }
  /**
   * Before creating a new schedule, we want to check to see if the schedule that is being created
   * is going to conflict with any one of the blockout periods if one is provisioned.
   *
   * @param schedule
   * @param trigger
   */
  protected void verifyBlockoutConflict(final JSONObject schedule, final JsJobTrigger trigger) {
    String url = GWT.getHostPageBaseURL() + "api/scheduler/blockout/blockstatus"; // $NON-NLS-1$

    RequestBuilder blockoutConflictRequest = new RequestBuilder(RequestBuilder.POST, url);
    blockoutConflictRequest.setHeader("accept", "application/json"); // $NON-NLS-1$ //$NON-NLS-2$
    blockoutConflictRequest.setHeader(
        "Content-Type", "application/json"); // $NON-NLS-1$ //$NON-NLS-2$
    blockoutConflictRequest.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");

    final JSONObject verifyBlockoutParams = schedule;
    verifyBlockoutParams.put("jobName", new JSONString(scheduleName)); // $NON-NLS-1$

    try {
      blockoutConflictRequest.sendRequest(
          verifyBlockoutParams.toString(),
          new RequestCallback() {
            public void onError(Request request, Throwable exception) {
              MessageDialogBox dialogBox =
                  new MessageDialogBox(
                      Messages.getString("error"),
                      exception.toString(),
                      false,
                      false,
                      true); //$NON-NLS-1$
              dialogBox.center();
              setDone(false);
            }

            public void onResponseReceived(Request request, Response response) {
              if (response.getStatusCode() == Response.SC_OK) {
                JsBlockStatus statusResponse =
                    (JsBlockStatus) parseJson(JsonUtils.escapeJsonForEval(response.getText()));

                // Determine if this schedule conflicts all the time or some of the time
                boolean partiallyBlocked =
                    Boolean.parseBoolean(statusResponse.getPartiallyBlocked());
                boolean totallyBlocked = Boolean.parseBoolean(statusResponse.getTotallyBlocked());
                if (partiallyBlocked || totallyBlocked) {
                  promptDueToBlockoutConflicts(totallyBlocked, partiallyBlocked, schedule, trigger);
                } else {
                  // Continue with other panels in the wizard (params, email)
                  handleWizardPanels(schedule, trigger);
                }
              } else {
                handleWizardPanels(schedule, trigger);
              }
            }
          });
    } catch (RequestException e) {
      // ignored
    }

    super.nextClicked();
  }
 /**
  * EventBus実装での同期メッセージング 同期メッセージを自分へと送信するメソッド 自分へのメッセージング
  *
  * @param command
  * @param tagValue
  */
 public void sCallMyself(String command, JSONObject... tagValue) {
   JSONObject messageMap =
       getMessageStructure(
           MS_CATEGOLY_LOCAL,
           UUID.uuid(8, 16),
           getName(),
           getID(),
           getName(),
           getID(),
           command,
           tagValue);
   MessageMasterHub.getMaster().syncMessage(messageMap.toString());
   addSendLog(messageMap);
 }
예제 #7
0
  private void saveSecuritySettings(final AsyncCallback<Boolean> callback) {
    JSONObject jsNewRoleAssignments = new JSONObject();
    JSONArray jsLogicalRoleAssignments = new JSONArray();
    int x = 0;
    for (Map.Entry<String, List<String>> roleAssignment : newRoleAssignments.entrySet()) {
      JSONArray jsLogicalRoles = new JSONArray();
      int y = 0;
      for (String logicalRoleName : roleAssignment.getValue()) {
        jsLogicalRoles.set(y++, new JSONString(logicalRoleName));
      }
      JSONObject jsRoleAssignment = new JSONObject();
      jsRoleAssignment.put("roleName", new JSONString(roleAssignment.getKey()));
      jsRoleAssignment.put("logicalRoles", jsLogicalRoles);
      jsLogicalRoleAssignments.set(x++, jsRoleAssignment);
    }
    jsNewRoleAssignments.put("logicalRoleAssignments", jsLogicalRoleAssignments);
    RequestBuilder saveSettingRequestBuilder =
        new RequestBuilder(RequestBuilder.PUT, contextURL + "api/userrole/roleAssignments");
    saveSettingRequestBuilder.setHeader(
        "Content-Type", "application/json"); // $NON-NLS-1$//$NON-NLS-2$
    WaitPopup.getInstance().setVisible(true);
    try {
      saveSettingRequestBuilder.sendRequest(
          jsNewRoleAssignments.toString(),
          new RequestCallback() {

            @Override
            public void onError(Request request, Throwable exception) {
              WaitPopup.getInstance().setVisible(false);
              callback.onFailure(exception);
            }

            @Override
            public void onResponseReceived(Request request, Response response) {
              WaitPopup.getInstance().setVisible(false);
              if (response.getStatusCode() == 200) {
                masterRoleMap.putAll(newRoleAssignments);
                newRoleAssignments.clear();
                callback.onSuccess(true);
              } else {
                callback.onSuccess(false);
              }
            }
          });
    } catch (RequestException e) {
      WaitPopup.getInstance().setVisible(false);
      callback.onFailure(e);
    }
  }
  /**
   * 同期版
   *
   * @param name
   */
  public void sInputParent(String inputName) {
    debug.assertTrue(parentName.equals(""), "already have parentName	すでに先約があるようです");
    debug.assertTrue(parentID.equals(""), "already have parentID	すでに先約があるようです");

    debug.assertTrue(!inputName.equals(""), "空文字は親の名称として指定できません");

    parentName = inputName;

    String messageID = UUID.uuid(8, 16);
    JSONObject messageMap =
        getMessageStructure(
            MS_CATEGOLY_PARENTSEARCH_S, messageID, getName(), getID(), inputName, "", "");
    MessageMasterHub.getMaster().syncMessage(messageMap.toString());
    addSendLog(messageMap);
  }
  public String testbed(String inputName) {
    debug.assertTrue(parentName.equals(""), "already have parentName	すでに先約があるようです");
    debug.assertTrue(parentID.equals(""), "already have parentID	すでに先約があるようです");

    debug.assertTrue(!inputName.equals(""), "空文字は親の名称として指定できません");

    parentName = inputName;

    String messageID = UUID.uuid(8, 16);
    JSONObject messageMap =
        getMessageStructure(
            MS_CATEGOLY_PARENTSEARCH, messageID, getName(), getID(), inputName, "", "");
    sendAsyncMessage(messageMap);
    return messageMap.toString();
  }
  public void testToJson() {
    PropertyGroupContainer container1 = new PropertyGroupContainer("{}"); // $NON-NLS-1$
    PropertyGroup group = new PropertyGroup();
    Property property =
        new Property(
            JSONParser.parseStrict(
                    "{\"id\":\"blah-test-1.304116363485E12\",\"name\":\"\",\"label\":\"my widget\",\"description\":\"\",\"type\":\"\",\"isVisible\":true,\"value\":\"\",\"order\":0}") //$NON-NLS-1$
                .isObject());
    group.add(property);
    container1.add(group);

    JSONObject json1 = container1.toJson();
    PropertyGroupContainer container2 = new PropertyGroupContainer(json1.toString());
    JSONObject json2 = container2.toJson();
    UnitTestUtil.equalsIgnoreOrder(json1, json2);
  }
  /**
   * Gets the value.
   *
   * @return the value.
   */
  public Serializable getValue() {
    String value = streamOptions.getValue(streamOptions.getSelectedIndex());

    JSONObject jsonObject = StreamJsonRequestFactory.getEmptyRequest();

    if (value.equals(StreamJsonRequestFactory.FOLLOWED_BY_KEY)) {
      jsonObject = StreamJsonRequestFactory.setSourceAsFollowing(jsonObject);
    } else if (value.equals(StreamJsonRequestFactory.SAVED_KEY)) {
      jsonObject = StreamJsonRequestFactory.setSourceAsSaved(jsonObject);
    } else if (value.equals(StreamJsonRequestFactory.PARENT_ORG_KEY)) {
      jsonObject = StreamJsonRequestFactory.setSourceAsParentOrg(jsonObject);
    } else if (value.equals(StreamJsonRequestFactory.JOINED_GROUPS_KEY)) {
      jsonObject = StreamJsonRequestFactory.setSourceAsJoinedGroups(jsonObject);
    } else if (value.equals(StreamJsonRequestFactory.RECIPIENT_KEY)) {
      StreamJsonRequestFactory.initRecipient(jsonObject);

      for (StreamScope scope : (LinkedList<StreamScope>) scopes.getValue()) {
        jsonObject =
            StreamJsonRequestFactory.addRecipient(
                EntityType.valueOf(scope.getScopeType().toString()),
                scope.getUniqueKey(),
                jsonObject);
      }
    } else if (value.equals(StreamJsonRequestFactory.LIKER_KEY)) {
      StreamJsonRequestFactory.initLikers(jsonObject);

      for (StreamScope scope : (LinkedList<StreamScope>) scopes.getValue()) {
        jsonObject =
            StreamJsonRequestFactory.addLiker(
                EntityType.valueOf(scope.getScopeType().toString()),
                scope.getUniqueKey(),
                jsonObject);
      }
    } else if (value.equals(StreamJsonRequestFactory.AUTHOR_KEY)) {
      StreamJsonRequestFactory.initAuthors(jsonObject);

      for (StreamScope scope : (LinkedList<StreamScope>) scopes.getValue()) {
        jsonObject =
            StreamJsonRequestFactory.addAuthor(
                EntityType.valueOf(scope.getScopeType().toString()),
                scope.getUniqueKey(),
                jsonObject);
      }
    }

    return jsonObject.toString();
  }
  /**
   * EventBus実装での同期メッセージング 同期メッセージを親へと送信するメソッド 親へのメッセージング
   *
   * @param command
   * @param tagValue
   */
  public void sCallParent(String command, JSONObject... tagValue) {
    debug.assertTrue(parentName != "", "SYNC	parentName not applied yet");
    debug.assertTrue(parentID != "", "SYNC	parentID not applied yet");

    JSONObject messageMap =
        getMessageStructure(
            MS_CATEGOLY_CALLPARENT,
            UUID.uuid(8, 16),
            getName(),
            getID(),
            getParentName(),
            getParentID(),
            command,
            tagValue);
    MessageMasterHub.getMaster().syncMessage(messageMap.toString());
    addSendLog(messageMap);
  }
  /**
   * 非同期メッセージを親へと送信するメソッド 親へのメッセージング
   *
   * @param command
   * @param tagValue
   */
  public String callParent(String command, JSONObject... tagValue) {
    debug.assertTrue(parentName != "", "ASYNC parentName not applied yet");
    debug.assertTrue(parentID != "", "ASYNC	parentID not applied yet");

    String messageID = UUID.uuid(8, 16);
    JSONObject messageMap =
        getMessageStructure(
            MS_CATEGOLY_CALLPARENT,
            messageID,
            getName(),
            getID(),
            getParentName(),
            getParentID(),
            command,
            tagValue);
    debug.trace("true	messageMap	" + messageMap.toString());
    sendAsyncMessage(messageMap);
    return messageID;
  }
 /**
  * EventBus実装での同期メッセージング イベントでの実装が、他と同レベルなコンテキストに書かれてしまう事が、どうしても欠点として映る。
  *
  * @param toName
  * @param command
  * @param tagValue
  */
 public void sCall(String toName, String command, JSONObject... tagValue) {
   for (JSONObject currentChild : childList) {
     if (currentChild.get(CHILDLIST_KEY_CHILD_NAME).isString().stringValue().equals(toName)) {
       String toID = currentChild.get(CHILDLIST_KEY_CHILD_ID).isString().stringValue();
       JSONObject messageMap =
           getMessageStructure(
               MS_CATEGOLY_CALLCHILD,
               UUID.uuid(8, 16),
               getName(),
               getID(),
               toName,
               toID,
               command,
               tagValue);
       MessageMasterHub.getMaster().syncMessage(messageMap.toString());
       addSendLog(messageMap);
     }
   }
 }
  @SuppressWarnings("rawtypes")
  public void ajoutFormulaireDirect() {
    for (int i = 0; i < elements.size(); i++) {
      JSONObject elementAsJSONObject =
          BuildJsonObject.buildJSONObjectElementBis(
              "" + i,
              ((ArrayList) elements.get(i)).get(0).toString(),
              ((ArrayList) elements.get(i)).get(1).toString(),
              ((ArrayList) elements.get(i)).get(2).toString());
      formAsJSONObjectBis.put("element" + i, elementAsJSONObject);

      ajouterParametre(
          i,
          ((ArrayList) elements.get(i)).get(3).toString(),
          ((ArrayList) elements.get(i)).get(4).toString());
    }

    FormulaireController.allouerFormulaireBis(dualListBox, formAsJSONObjectBis);
    try {
      RequestBuilder builder =
          new RequestBuilder(RequestBuilder.PUT, FORMULAIRE_URL + "updateForm");
      builder.setHeader("Content-Type", "application/json");
      builder.sendRequest(
          formAsJSONObjectBis.toString(),
          new RequestCallback() {
            public void onError(Request request, Throwable exception) {
              Window.alert("Erreur d'ajout");
            }

            public void onResponseReceived(Request request, Response response) {
              RootPanel.get("button_Enregistrer").remove(enregistrer);
              Window.alert("Formulaire: Ajout avec succès");
              Window.Location.reload();
            }
          });
    } catch (RequestException e) {
      System.out.println("RequestException");
    }
  }
  private void handleWizardPanels(final JSONObject schedule, final JsJobTrigger trigger) {
    if (hasParams) {
      showScheduleParamsDialog(trigger, schedule);
    } else if (isEmailConfValid) {
      showScheduleEmailDialog(schedule);
    } else {
      // submit
      JSONObject scheduleRequest = (JSONObject) JSONParser.parseStrict(schedule.toString());

      if (editJob != null) {
        JSONArray scheduleParams = new JSONArray();

        for (int i = 0; i < editJob.getJobParams().length(); i++) {
          JsJobParam param = editJob.getJobParams().get(i);
          JsArrayString paramValue = (JsArrayString) JavaScriptObject.createArray().cast();
          paramValue.push(param.getValue());
          JsSchedulingParameter p = (JsSchedulingParameter) JavaScriptObject.createObject().cast();
          p.setName(param.getName());
          p.setType("string"); // $NON-NLS-1$
          p.setStringValue(paramValue);
          scheduleParams.set(i, new JSONObject(p));
        }

        scheduleRequest.put("jobParameters", scheduleParams); // $NON-NLS-1$

        String actionClass =
            editJob.getJobParamValue("ActionAdapterQuartzJob-ActionClass"); // $NON-NLS-1$
        if (!StringUtils.isEmpty(actionClass)) {
          scheduleRequest.put("actionClass", new JSONString(actionClass)); // $NON-NLS-1$
        }
      }

      RequestBuilder scheduleFileRequestBuilder =
          new RequestBuilder(RequestBuilder.POST, contextURL + "api/scheduler/job"); // $NON-NLS-1$
      scheduleFileRequestBuilder.setHeader(
          "Content-Type", "application/json"); // $NON-NLS-1$//$NON-NLS-2$
      scheduleFileRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");

      try {
        scheduleFileRequestBuilder.sendRequest(
            scheduleRequest.toString(),
            new RequestCallback() {
              public void onError(Request request, Throwable exception) {
                MessageDialogBox dialogBox =
                    new MessageDialogBox(
                        Messages.getString("error"),
                        exception.toString(),
                        false,
                        false,
                        true); //$NON-NLS-1$
                dialogBox.center();
                setDone(false);
              }

              public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == 200) {
                  setDone(true);
                  ScheduleRecurrenceDialog.this.hide();
                  if (callback != null) {
                    callback.okPressed();
                  }
                  if (showSuccessDialog) {
                    if (!PerspectiveManager.getInstance()
                        .getActivePerspective()
                        .getId()
                        .equals(PerspectiveManager.SCHEDULES_PERSPECTIVE)) {
                      ScheduleCreateStatusDialog successDialog = new ScheduleCreateStatusDialog();
                      successDialog.center();
                    } else {
                      MessageDialogBox dialogBox =
                          new MessageDialogBox(
                              Messages.getString("scheduleUpdatedTitle"),
                              Messages.getString(
                                  "scheduleUpdatedMessage"), //$NON-NLS-1$ //$NON-NLS-2$
                              false,
                              false,
                              true);
                      dialogBox.center();
                    }
                  }
                } else {
                  MessageDialogBox dialogBox =
                      new MessageDialogBox(
                          Messages.getString("error"), // $NON-NLS-1$
                          response.getText(),
                          false,
                          false,
                          true);
                  dialogBox.center();
                  setDone(false);
                }
              }
            });
      } catch (RequestException e) {
        MessageDialogBox dialogBox =
            new MessageDialogBox(
                Messages.getString("error"),
                e.toString(), // $NON-NLS-1$
                false,
                false,
                true);
        dialogBox.center();
        setDone(false);
      }

      setDone(true);
    }
  }
  /**
   * PostMessageAPI からダイレクトで複数のmessengerが各個に呼ばれる事を想定したメソッド
   *
   * @param rootMessage
   */
  public void onMessagereceivedFromPostMessageAPI(String rootMessage) {
    JSONObject rootObject = null;
    //		Window.alert("受け取った	"+getName());
    try {
      rootObject = JSONParser.parseStrict(rootMessage).isObject();
    } catch (Exception e) {
      debug.trace("receiveMessage_parseError_" + e);
      return;
    }

    if (rootObject == null) {
      debug.trace("rootObject = null");
      return;
    }

    String toName = null;
    {
      /*
       * 宛先チェック
       */
      debug.assertTrue(rootObject.get(KEY_TO_NAME).isString() != null, "invalid KEY_TO_NAME");
      toName = rootObject.get(KEY_TO_NAME).isString().stringValue();

      if (!toName.equals(getName())) { // 送信者の指定した宛先が自分か
        //			NSLog(@"MS_CATEGOLY_CALLPARENT_宛先ではないMessnegerが受け取った");
        return;
      }
    }

    String fromName = null;
    String fromID = null;
    {
      /*
       * 送付元名前チェック
       */
      fromName = rootObject.get(KEY_MESSENGER_NAME).isString().stringValue();
      debug.assertTrue(fromName != null, "invalid KEY_MESSENGER_NAME");

      /*
       * 送付元IDチェック
       */

      fromID = rootObject.get(KEY_MESSENGER_ID).isString().stringValue();
      debug.assertTrue(fromID != null, "invalid KEY_MESSENGER_ID");
    }

    int categoly;
    {
      debug.assertTrue(
          rootObject.get(KEY_MESSAGE_CATEGOLY).isNumber() != null, "no KEY_MESSAGE_CATEGOLY");
      categoly = (int) rootObject.get(KEY_MESSAGE_CATEGOLY).isNumber().doubleValue();
    }

    /*
     * コマンドチェック
     */
    {
      debug.assertTrue(
          rootObject.get(KEY_MESSENGER_EXEC).isString() != null, "KEY_MESSENGER_EXEC = null");
    }

    /*
     * tag-valueチェック
     */
    {
      debug.assertTrue(
          rootObject.get(KEY_MESSENGER_TAGVALUE_GROUP).isObject() != null,
          "KEY_MESSENGER_TAGVALUE_GROUP = null");
    }

    /*
     * 宛先存在チェック
     */
    String toID = null;
    {
      debug.assertTrue(rootObject.get(KEY_TO_ID).isString() != null, "no KEY_TO_ID");
      toID = rootObject.get(KEY_TO_ID).isString().stringValue();
    }
    //		Window.alert("カテゴリチェックまで	メッセージングを受け取りました");

    switch (categoly) {
      case MS_CATEGOLY_LOCAL:
        {
          if (toID.equals(getID())) {
            addReceiveLog(rootObject);
            receiveCenter(rootMessage);
          }
        }
        return;

      case MS_CATEGOLY_CALLCHILD:
        if (toID.equals(getID())) {
          addReceiveLog(rootObject);
          receiveCenter(rootMessage);
        }
        return;

      case MS_CATEGOLY_CALLPARENT:
        // 宛先MIDが自分のIDと一致するか
        if (toID.equals(getID())) {
          //				Window.alert("親として呼ばれた	メッセージングを受け取りました	");
          addReceiveLog(rootObject);
          receiveCenter(rootMessage);
          //				Window.alert("親として呼ばれた2	メッセージングを受け取りました");
        }

        return;

      case MS_CATEGOLY_PARENTSEARCH:
        debug.assertTrue(rootObject.get(KEY_PARENT_NAME).isString() != null, "no KEY_PARENT_NAME");
        String childSearchingName = rootObject.get(KEY_PARENT_NAME).isString().stringValue();
        if (childSearchingName.equals(getName())) {

          JSONObject childInfo = new JSONObject();
          childInfo.put(CHILDLIST_KEY_CHILD_ID, new JSONString(fromID));
          childInfo.put(CHILDLIST_KEY_CHILD_NAME, new JSONString(fromName));

          childList.add(childInfo);
          //				Window.alert("子供っす	"+childList+"	で、名前が	"+childInfo);
          JSONObject messageMap =
              getMessageStructure(
                  MS_CATEGOLY_PARENTSEARCH_RET,
                  UUID.uuid(8, 16),
                  getName(),
                  getID(),
                  fromName,
                  fromID,
                  TRIGGER_PARENTCONNECTED);
          sendAsyncMessage(messageMap);
          addReceiveLog(rootObject);
        }

        return;

      case MS_CATEGOLY_PARENTSEARCH_S:
        debug.assertTrue(rootObject.get(KEY_PARENT_NAME).isString() != null, "no KEY_PARENT_NAME");
        String childSearchingName2 = rootObject.get(KEY_PARENT_NAME).isString().stringValue();
        if (childSearchingName2.equals(getName())) {
          addReceiveLog(rootObject);
          JSONObject childInfo = new JSONObject();
          childInfo.put(CHILDLIST_KEY_CHILD_ID, new JSONString(fromID));
          childInfo.put(CHILDLIST_KEY_CHILD_NAME, new JSONString(fromName));

          childList.add(childInfo);

          JSONObject messageMap =
              getMessageStructure(
                  MS_CATEGOLY_PARENTSEARCH_RET,
                  UUID.uuid(8, 16),
                  getName(),
                  getID(),
                  fromName,
                  fromID,
                  TRIGGER_PARENTCONNECTED);
          MessageMasterHub.getMaster().syncMessage(messageMap.toString());
          addSendLog(messageMap);
        }
        break;

      case MS_CATEGOLY_PARENTSEARCH_RET:
        if (!parentName.equals(fromName)) {
          return;
        }

        if (toID.equals(getID())) {
          if (parentID.equals("")) {
            parentID = fromID;
            addReceiveLog(rootObject);
          } else {
            //					debug.trace("もう別の親が居ます"+ "/fromID	"+fromID);
          }
        }

        return;

      case MS_CATEGOLY_REMOVE_CHILD:
      case MS_CATEGOLY_REMOVE_PARENT:
      default:
        debug.assertTrue(false, "not ready yet or UNKNOWN CATEGOLY");
        return;
    }
  }