/** @see IModelClassInspector#hasChildren(Object) Returns true if this node has any children */
  public boolean hasChildRelations(Object arg) {
    PropertyParameter_c[] v_parameters =
        PropertyParameter_c.getManyC_PPsOnR4006(
            ExecutableProperty_c.getManyC_EPsOnR4500(
                RequiredExecutableProperty_c.getManySPR_REPsOnR4502((RequiredSignal_c) arg)));

    if (v_parameters.length > 0) return true;
    return false;
  }
 /** @see IModelClassInspector#getParent(Object) Returns the parent(s) of this node */
 public Object getParent(Object arg) {
   Requirement_c result1 =
       Requirement_c.getOneC_ROnR4500(
           RequiredExecutableProperty_c.getOneSPR_REPOnR4502((RequiredSignal_c) arg));
   if (result1 != null) {
     return result1;
   }
   ImportedRequirement_c result2 =
       ImportedRequirement_c.getOneCL_IROnR4703(
           ImportedReference_c.getOneCL_IIROnR4701(
               InterfaceReference_c.getOneC_IROnR4009(
                   Requirement_c.getOneC_ROnR4500(
                       RequiredExecutableProperty_c.getOneSPR_REPOnR4502(
                           (RequiredSignal_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;
    PropertyParameter_c[] v_parameters =
        PropertyParameter_c.getManyC_PPsOnR4006(
            ExecutableProperty_c.getManyC_EPsOnR4500(
                RequiredExecutableProperty_c.getManySPR_REPsOnR4502((RequiredSignal_c) arg)));

    sort(v_parameters);
    List<ObjectElement> result = new ArrayList<ObjectElement>();
    for (int i = 0; i < v_parameters.length; i++) {
      result.add(
          new ObjectElement(
              "v_parameters", ObjectElement.RELATION_ROLE_ELEMENT, v_parameters[i], arg, false));
    }
    return result.toArray(new ObjectElement[result.size()]);
  }