/** @see IModelClassInspector#getParent(Object) Returns the parent(s) of this node */
 public Object getParent(Object arg) {
   Sequence_c result1 =
       Sequence_c.getOneSQ_SOnR929(
           InteractionParticipant_c.getOneSQ_POnR930((FunctionPackageParticipant_c) arg));
   if (result1 != null) {
     return result1;
   }
   Communication_c result2 =
       Communication_c.getOneCOMM_COMMOnR1126(
           ParticipantInCommunication_c.getOneCOMM_PICOnR1126(
               InteractionParticipant_c.getOneSQ_POnR930((FunctionPackageParticipant_c) arg)));
   if (result2 != null) {
     return result2;
   }
   return null; // No parent found
 }
  /** @see IModelClassInspector#getChildRelations(Object) Returns the children of this node */
  public ObjectElement[] getChildRelations(Object arg) {
    int resultSize = 0;
    Lifespan_c[] v_lifespans =
        Lifespan_c.getManySQ_LSsOnR940(
            InteractionParticipant_c.getManySQ_PsOnR930((FunctionPackageParticipant_c) arg));

    sort(v_lifespans);
    SynchronousMessage_c[] v_synchronousmessages =
        SynchronousMessage_c.getManyMSG_SMsOnR1018(
            Message_c.getManyMSG_MsOnR1007(
                InteractionParticipant_c.getManySQ_PsOnR930((FunctionPackageParticipant_c) arg)));

    sort(v_synchronousmessages);
    ReturnMessage_c[] v_returnmessages =
        ReturnMessage_c.getManyMSG_RsOnR1018(
            Message_c.getManyMSG_MsOnR1007(
                InteractionParticipant_c.getManySQ_PsOnR930((FunctionPackageParticipant_c) arg)));

    sort(v_returnmessages);
    List<ObjectElement> result = new ArrayList<ObjectElement>();
    for (int i = 0; i < v_lifespans.length; i++) {
      result.add(
          new ObjectElement(
              "v_lifespans", ObjectElement.RELATION_ROLE_ELEMENT, v_lifespans[i], arg, false));
    }
    for (int i = 0; i < v_synchronousmessages.length; i++) {
      result.add(
          new ObjectElement(
              "v_synchronousmessages",
              ObjectElement.RELATION_ROLE_ELEMENT,
              v_synchronousmessages[i],
              arg,
              false));
    }
    for (int i = 0; i < v_returnmessages.length; i++) {
      result.add(
          new ObjectElement(
              "v_returnmessages",
              ObjectElement.RELATION_ROLE_ELEMENT,
              v_returnmessages[i],
              arg,
              false));
    }
    return result.toArray(new ObjectElement[result.size()]);
  }
  /** @see IModelClassInspector#hasChildren(Object) Returns true if this node has any children */
  public boolean hasChildRelations(Object arg) {
    Lifespan_c[] v_lifespans =
        Lifespan_c.getManySQ_LSsOnR940(
            InteractionParticipant_c.getManySQ_PsOnR930((FunctionPackageParticipant_c) arg));

    if (v_lifespans.length > 0) return true;
    SynchronousMessage_c[] v_synchronousmessages =
        SynchronousMessage_c.getManyMSG_SMsOnR1018(
            Message_c.getManyMSG_MsOnR1007(
                InteractionParticipant_c.getManySQ_PsOnR930((FunctionPackageParticipant_c) arg)));

    if (v_synchronousmessages.length > 0) return true;
    ReturnMessage_c[] v_returnmessages =
        ReturnMessage_c.getManyMSG_RsOnR1018(
            Message_c.getManyMSG_MsOnR1007(
                InteractionParticipant_c.getManySQ_PsOnR930((FunctionPackageParticipant_c) arg)));

    if (v_returnmessages.length > 0) return true;
    return false;
  }