# coding: utf-8

"""
    Laserfiche API

    Welcome to the Laserfiche API Swagger Playground. You can try out any of our API calls against your live Laserfiche Cloud account. Visit the developer center for more details: <a href=\"https://developer.laserfiche.com\">https://developer.laserfiche.com</a><p><strong>Build# : </strong>561590</p>  # noqa: E501

    OpenAPI spec version: 1-alpha
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class ContextHit(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'hit_type': 'HitType',
        'is_annotation_hit': 'bool',
        'annotation_id': 'int',
        'page_number': 'int',
        'page_offset': 'int',
        'context': 'str',
        'highlight1_offset': 'int',
        'highlight1_length': 'int',
        'highlight2_offset': 'int',
        'highlight2_length': 'int',
        'hit_width': 'int',
        'edoc_hit_count': 'int',
        'field_hit_count': 'int',
        'field_name': 'str',
        'hit_number': 'int'
    }

    attribute_map = {
        'hit_type': 'hitType',
        'is_annotation_hit': 'isAnnotationHit',
        'annotation_id': 'annotationId',
        'page_number': 'pageNumber',
        'page_offset': 'pageOffset',
        'context': 'context',
        'highlight1_offset': 'highlight1Offset',
        'highlight1_length': 'highlight1Length',
        'highlight2_offset': 'highlight2Offset',
        'highlight2_length': 'highlight2Length',
        'hit_width': 'hitWidth',
        'edoc_hit_count': 'edocHitCount',
        'field_hit_count': 'fieldHitCount',
        'field_name': 'fieldName',
        'hit_number': 'hitNumber'
    }

    def __init__(self, hit_type=None, is_annotation_hit=None, annotation_id=None, page_number=None, page_offset=None, context=None, highlight1_offset=None, highlight1_length=None, highlight2_offset=None, highlight2_length=None, hit_width=None, edoc_hit_count=None, field_hit_count=None, field_name=None, hit_number=None):  # noqa: E501
        """ContextHit - a model defined in Swagger"""  # noqa: E501
        self._hit_type = None
        self._is_annotation_hit = None
        self._annotation_id = None
        self._page_number = None
        self._page_offset = None
        self._context = None
        self._highlight1_offset = None
        self._highlight1_length = None
        self._highlight2_offset = None
        self._highlight2_length = None
        self._hit_width = None
        self._edoc_hit_count = None
        self._field_hit_count = None
        self._field_name = None
        self._hit_number = None
        self.discriminator = None
        if hit_type is not None:
            self.hit_type = hit_type
        if is_annotation_hit is not None:
            self.is_annotation_hit = is_annotation_hit
        if annotation_id is not None:
            self.annotation_id = annotation_id
        if page_number is not None:
            self.page_number = page_number
        if page_offset is not None:
            self.page_offset = page_offset
        if context is not None:
            self.context = context
        if highlight1_offset is not None:
            self.highlight1_offset = highlight1_offset
        if highlight1_length is not None:
            self.highlight1_length = highlight1_length
        if highlight2_offset is not None:
            self.highlight2_offset = highlight2_offset
        if highlight2_length is not None:
            self.highlight2_length = highlight2_length
        if hit_width is not None:
            self.hit_width = hit_width
        if edoc_hit_count is not None:
            self.edoc_hit_count = edoc_hit_count
        if field_hit_count is not None:
            self.field_hit_count = field_hit_count
        if field_name is not None:
            self.field_name = field_name
        if hit_number is not None:
            self.hit_number = hit_number

    @property
    def hit_type(self):
        """Gets the hit_type of this ContextHit.  # noqa: E501


        :return: The hit_type of this ContextHit.  # noqa: E501
        :rtype: HitType
        """
        return self._hit_type

    @hit_type.setter
    def hit_type(self, hit_type):
        """Sets the hit_type of this ContextHit.


        :param hit_type: The hit_type of this ContextHit.  # noqa: E501
        :type: HitType
        """

        self._hit_type = hit_type

    @property
    def is_annotation_hit(self):
        """Gets the is_annotation_hit of this ContextHit.  # noqa: E501


        :return: The is_annotation_hit of this ContextHit.  # noqa: E501
        :rtype: bool
        """
        return self._is_annotation_hit

    @is_annotation_hit.setter
    def is_annotation_hit(self, is_annotation_hit):
        """Sets the is_annotation_hit of this ContextHit.


        :param is_annotation_hit: The is_annotation_hit of this ContextHit.  # noqa: E501
        :type: bool
        """

        self._is_annotation_hit = is_annotation_hit

    @property
    def annotation_id(self):
        """Gets the annotation_id of this ContextHit.  # noqa: E501


        :return: The annotation_id of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._annotation_id

    @annotation_id.setter
    def annotation_id(self, annotation_id):
        """Sets the annotation_id of this ContextHit.


        :param annotation_id: The annotation_id of this ContextHit.  # noqa: E501
        :type: int
        """

        self._annotation_id = annotation_id

    @property
    def page_number(self):
        """Gets the page_number of this ContextHit.  # noqa: E501


        :return: The page_number of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._page_number

    @page_number.setter
    def page_number(self, page_number):
        """Sets the page_number of this ContextHit.


        :param page_number: The page_number of this ContextHit.  # noqa: E501
        :type: int
        """

        self._page_number = page_number

    @property
    def page_offset(self):
        """Gets the page_offset of this ContextHit.  # noqa: E501


        :return: The page_offset of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._page_offset

    @page_offset.setter
    def page_offset(self, page_offset):
        """Sets the page_offset of this ContextHit.


        :param page_offset: The page_offset of this ContextHit.  # noqa: E501
        :type: int
        """

        self._page_offset = page_offset

    @property
    def context(self):
        """Gets the context of this ContextHit.  # noqa: E501


        :return: The context of this ContextHit.  # noqa: E501
        :rtype: str
        """
        return self._context

    @context.setter
    def context(self, context):
        """Sets the context of this ContextHit.


        :param context: The context of this ContextHit.  # noqa: E501
        :type: str
        """

        self._context = context

    @property
    def highlight1_offset(self):
        """Gets the highlight1_offset of this ContextHit.  # noqa: E501


        :return: The highlight1_offset of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._highlight1_offset

    @highlight1_offset.setter
    def highlight1_offset(self, highlight1_offset):
        """Sets the highlight1_offset of this ContextHit.


        :param highlight1_offset: The highlight1_offset of this ContextHit.  # noqa: E501
        :type: int
        """

        self._highlight1_offset = highlight1_offset

    @property
    def highlight1_length(self):
        """Gets the highlight1_length of this ContextHit.  # noqa: E501


        :return: The highlight1_length of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._highlight1_length

    @highlight1_length.setter
    def highlight1_length(self, highlight1_length):
        """Sets the highlight1_length of this ContextHit.


        :param highlight1_length: The highlight1_length of this ContextHit.  # noqa: E501
        :type: int
        """

        self._highlight1_length = highlight1_length

    @property
    def highlight2_offset(self):
        """Gets the highlight2_offset of this ContextHit.  # noqa: E501


        :return: The highlight2_offset of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._highlight2_offset

    @highlight2_offset.setter
    def highlight2_offset(self, highlight2_offset):
        """Sets the highlight2_offset of this ContextHit.


        :param highlight2_offset: The highlight2_offset of this ContextHit.  # noqa: E501
        :type: int
        """

        self._highlight2_offset = highlight2_offset

    @property
    def highlight2_length(self):
        """Gets the highlight2_length of this ContextHit.  # noqa: E501


        :return: The highlight2_length of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._highlight2_length

    @highlight2_length.setter
    def highlight2_length(self, highlight2_length):
        """Sets the highlight2_length of this ContextHit.


        :param highlight2_length: The highlight2_length of this ContextHit.  # noqa: E501
        :type: int
        """

        self._highlight2_length = highlight2_length

    @property
    def hit_width(self):
        """Gets the hit_width of this ContextHit.  # noqa: E501


        :return: The hit_width of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._hit_width

    @hit_width.setter
    def hit_width(self, hit_width):
        """Sets the hit_width of this ContextHit.


        :param hit_width: The hit_width of this ContextHit.  # noqa: E501
        :type: int
        """

        self._hit_width = hit_width

    @property
    def edoc_hit_count(self):
        """Gets the edoc_hit_count of this ContextHit.  # noqa: E501


        :return: The edoc_hit_count of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._edoc_hit_count

    @edoc_hit_count.setter
    def edoc_hit_count(self, edoc_hit_count):
        """Sets the edoc_hit_count of this ContextHit.


        :param edoc_hit_count: The edoc_hit_count of this ContextHit.  # noqa: E501
        :type: int
        """

        self._edoc_hit_count = edoc_hit_count

    @property
    def field_hit_count(self):
        """Gets the field_hit_count of this ContextHit.  # noqa: E501


        :return: The field_hit_count of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._field_hit_count

    @field_hit_count.setter
    def field_hit_count(self, field_hit_count):
        """Sets the field_hit_count of this ContextHit.


        :param field_hit_count: The field_hit_count of this ContextHit.  # noqa: E501
        :type: int
        """

        self._field_hit_count = field_hit_count

    @property
    def field_name(self):
        """Gets the field_name of this ContextHit.  # noqa: E501


        :return: The field_name of this ContextHit.  # noqa: E501
        :rtype: str
        """
        return self._field_name

    @field_name.setter
    def field_name(self, field_name):
        """Sets the field_name of this ContextHit.


        :param field_name: The field_name of this ContextHit.  # noqa: E501
        :type: str
        """

        self._field_name = field_name

    @property
    def hit_number(self):
        """Gets the hit_number of this ContextHit.  # noqa: E501


        :return: The hit_number of this ContextHit.  # noqa: E501
        :rtype: int
        """
        return self._hit_number

    @hit_number.setter
    def hit_number(self, hit_number):
        """Sets the hit_number of this ContextHit.


        :param hit_number: The hit_number of this ContextHit.  # noqa: E501
        :type: int
        """

        self._hit_number = hit_number

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(ContextHit, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, ContextHit):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
