/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 4.0.2
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package com.robotraconteur;

public class ServiceSubscriptionFilterAttributeGroup {
  private transient long swigCPtr;
  protected transient boolean swigCMemOwn;

  protected ServiceSubscriptionFilterAttributeGroup(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  protected static long getCPtr(ServiceSubscriptionFilterAttributeGroup obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  @SuppressWarnings("deprecation")
  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        RobotRaconteurJavaJNI.delete_ServiceSubscriptionFilterAttributeGroup(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public void setAttributes(vector_subscriptionattribute value) {
    RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_Attributes_set(swigCPtr, this, vector_subscriptionattribute.getCPtr(value), value);
  }

  public vector_subscriptionattribute getAttributes() {
    long cPtr = RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_Attributes_get(swigCPtr, this);
    return (cPtr == 0) ? null : new vector_subscriptionattribute(cPtr, false);
  }

  public void setGroups(SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t value) {
    RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_Groups_set(swigCPtr, this, SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t.getCPtr(value));
  }

  public SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t getGroups() {
    long cPtr = RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_Groups_get(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t(cPtr, false);
  }

  public void setOperation(ServiceSubscriptionFilterAttributeGroupOperation value) {
    RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_Operation_set(swigCPtr, this, value.swigValue());
  }

  public ServiceSubscriptionFilterAttributeGroupOperation getOperation() {
    return ServiceSubscriptionFilterAttributeGroupOperation.swigToEnum(RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_Operation_get(swigCPtr, this));
  }

  public void setSplitStringAttribute(boolean value) {
    RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_set(swigCPtr, this, value);
  }

  public boolean getSplitStringAttribute() {
    return RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_get(swigCPtr, this);
  }

  public void setSplitStringDelimiter(char value) {
    RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_set(swigCPtr, this, value);
  }

  public char getSplitStringDelimiter() {
    return RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_get(swigCPtr, this);
  }

  public ServiceSubscriptionFilterAttributeGroup() {
    this(RobotRaconteurJavaJNI.new_ServiceSubscriptionFilterAttributeGroup__SWIG_0(), true);
  }

  public ServiceSubscriptionFilterAttributeGroup(ServiceSubscriptionFilterAttributeGroupOperation operation) {
    this(RobotRaconteurJavaJNI.new_ServiceSubscriptionFilterAttributeGroup__SWIG_1(operation.swigValue()), true);
  }

  public ServiceSubscriptionFilterAttributeGroup(ServiceSubscriptionFilterAttributeGroupOperation operation, vector_subscriptionattribute attributes) {
    this(RobotRaconteurJavaJNI.new_ServiceSubscriptionFilterAttributeGroup__SWIG_2(operation.swigValue(), vector_subscriptionattribute.getCPtr(attributes), attributes), true);
  }

  public ServiceSubscriptionFilterAttributeGroup(ServiceSubscriptionFilterAttributeGroupOperation operation, SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t groups) {
    this(RobotRaconteurJavaJNI.new_ServiceSubscriptionFilterAttributeGroup__SWIG_3(operation.swigValue(), SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t.getCPtr(groups)), true);
  }

  public boolean isMatch(String value) {
    return RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_isMatch__SWIG_0(swigCPtr, this, value);
  }

  public boolean isMatch(vectorstring values) {
    return RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_isMatch__SWIG_1(swigCPtr, this, vectorstring.getCPtr(values), values);
  }

  public boolean isMatch(map_strstr values) {
    return RobotRaconteurJavaJNI.ServiceSubscriptionFilterAttributeGroup_isMatch__SWIG_2(swigCPtr, this, map_strstr.getCPtr(values), values);
  }

}
