/**
  * Method to save segment settings
  *
  * @param array $formValues
  */
 private function saveSegmentSetting($formValues)
 {
     $params = array();
     $params['parent_label'] = $formValues['parent_label'];
     $params['child_label'] = $formValues['child_label'];
     foreach ($formValues['parent_roles'] as $parentRole) {
         $roleName = CRM_Contactsegment_Utils::getRoleNameWithLabel($parentRole);
         if (isset($this->_segmentConfig['parent_roles'][$roleName])) {
             $params['parent_roles'][$roleName] = $this->_segmentConfig['parent_roles'][$roleName];
         } else {
             $params['parent_roles'][$roleName] = array('label' => $parentRole, 'unique' => 0);
         }
     }
     foreach ($formValues['child_roles'] as $childRole) {
         $roleName = CRM_Contactsegment_Utils::getRoleNameWithLabel($childRole);
         if (isset($this->_segmentConfig['child_roles'][$roleName])) {
             $params['child_roles'][$roleName] = $this->_segmentConfig['child_roles'][$roleName];
         }
     }
     $this->_segmentConfig = civicrm_api3('SegmentSetting', 'create', $params);
 }
 /**
  * Method to validate if role is allowed for segment
  *
  * @param array $fields
  * @return array $errors or TRUE
  * @access public
  * @static
  */
 static function validateRoleAllowed($fields)
 {
     $errors = array();
     $segmentSettings = civicrm_api3('SegmentSetting', 'Getsingle', array());
     $roleName = CRM_Contactsegment_Utils::getRoleNameWithLabel($fields['contact_segment_role']);
     if ($fields['contact_segment_role']) {
         if ($fields['segment_child']) {
             if (!isset($segmentSettings['child_roles'][$roleName])) {
                 $errors['contact_segment_role'] = ts('Role not allowed for ' . $segmentSettings['child_label']);
                 $errors['segment_child'] = ts('Role not allowed for ' . $segmentSettings['child_label']);
                 return $errors;
             }
         }
         if ($fields['segment_parent']) {
             if (!isset($segmentSettings['parent_roles'][$roleName])) {
                 $errors['contact_segment_role'] = ts('Role not allowed for ' . $segmentSettings['parent_label']);
                 $errors['segment_parent'] = ts('Role not allowed for ' . $segmentSettings['parent_label']);
                 return $errors;
             }
         }
     }
     return TRUE;
 }