# Path: cpe/comp/cpecomp_logical.py
# class CPEComponentLogical(CPEComponent):
#     """
#     Represents a generic logical component of CPE name,
#     compatible with the components of all versions of CPE specification.
#     """
# 
#     ###############
#     #  CONSTANTS  #
#     ###############
# 
#     # Logical values in integer format
# 
#     #: Value of an undefined component. For example, edition attribute in the
#     #: CPE name cpe:/cisco::2345 of version 1.1 of CPE specification
#     _VALUE_INT_UNDEFINED = -1
# 
#     #: Value of an empty component. For example, product attribute in the
#     #: CPE name cpe:/cisco::2345 of version 1.1 of CPE specification
#     _VALUE_INT_EMPTY = 0
# 
#     #: Value of a component "any value". For example, product attribute in the
#     #: CPE name cpe:/h:cisco:*:2345 of version 2.3 of CPE specification
#     _VALUE_INT_ANY = 1
# 
#     #: Value of a not applicable component. For example, product attribute in
#     #: the CPE name cpe:/h:cisco:-:2345 of version 2.3 of CPE specification
#     _VALUE_INT_NA = 2
# 
#     ####################
#     #  OBJECT METHODS  #
#     ####################
# 
#     def __contains__(self, item):
#         """
#         Returns True if item is included in set of values of self.
# 
#         :param CPEComponent item: component to find in self
#         :returns: True if item is included in set of self
#         :rtype: boolean
#         """
# 
#         return True
# 
#     def __eq__(self, other):
#         """
#         Returns True if other (first element of operation) and
#         self (second element of operation) are equal components,
#         false otherwise.
# 
#         :param CPEComponent other: component to compare
#         :returns: True if other == self, False otherwise
#         :rtype: boolean
#         :exception: NotImplementedError - class method not implemented
#         """
# 
#         errmsg = "Class method not implemented. Use the method of some child class"
#         raise NotImplementedError(errmsg)
# 
#     def __str__(self):
#         """
#         Returns a human-readable representation of CPE component.
# 
#         :returns: Representation of CPE component as string
#         :rtype: string
#         :exception: NotImplementedError - class method not implemented
#         """
# 
#         errmsg = "Class method not implemented. Use the method of some child class"
#         raise NotImplementedError(errmsg)


from .cpecomp_logical import CPEComponentLogical
        from .cpecomp_anyvalue import CPEComponentAnyValue
        from .cpecomp_undefined import CPEComponentUndefined
    import doctest
    For example, in version 1.1 of CPE specification, an empty component
    is version attribute in CPE name cpe:/microsft:windows::sp2.
    """

    ####################
    #  OBJECT METHODS  #
    ####################

    def __eq__(self, other):
        """
        Returns True if other (first element of operation) and
        self (second element of operation) are equal components,
        false otherwise.

        :param CPEComponent other: component to compare
        :returns: True if other == self, False otherwise
        :rtype: boolean
        """


        return (isinstance(other, CPEComponentEmpty) or
                isinstance(other, CPEComponentUndefined) or
                isinstance(other, CPEComponentAnyValue))

    def __init__(self):
        """
        Initializes the component.
        """

        super(CPEComponentEmpty, self).__init__(

# Path: cpe/comp/cpecomp_logical.py
# class CPEComponentLogical(CPEComponent):
#     """
#     Represents a generic logical component of CPE name,
#     compatible with the components of all versions of CPE specification.
#     """
# 
#     ###############
#     #  CONSTANTS  #
#     ###############
# 
#     # Logical values in integer format
# 
#     #: Value of an undefined component. For example, edition attribute in the
#     #: CPE name cpe:/cisco::2345 of version 1.1 of CPE specification
#     _VALUE_INT_UNDEFINED = -1
# 
#     #: Value of an empty component. For example, product attribute in the
#     #: CPE name cpe:/cisco::2345 of version 1.1 of CPE specification
#     _VALUE_INT_EMPTY = 0
# 
#     #: Value of a component "any value". For example, product attribute in the
#     #: CPE name cpe:/h:cisco:*:2345 of version 2.3 of CPE specification
#     _VALUE_INT_ANY = 1
# 
#     #: Value of a not applicable component. For example, product attribute in
#     #: the CPE name cpe:/h:cisco:-:2345 of version 2.3 of CPE specification
#     _VALUE_INT_NA = 2
# 
#     ####################
#     #  OBJECT METHODS  #
#     ####################
# 
#     def __contains__(self, item):
#         """
#         Returns True if item is included in set of values of self.
# 
#         :param CPEComponent item: component to find in self
#         :returns: True if item is included in set of self
#         :rtype: boolean
#         """
# 
#         return True
# 
#     def __eq__(self, other):
#         """
#         Returns True if other (first element of operation) and
#         self (second element of operation) are equal components,
#         false otherwise.
# 
#         :param CPEComponent other: component to compare
#         :returns: True if other == self, False otherwise
#         :rtype: boolean
#         :exception: NotImplementedError - class method not implemented
#         """
# 
#         errmsg = "Class method not implemented. Use the method of some child class"
#         raise NotImplementedError(errmsg)
# 
#     def __str__(self):
#         """
#         Returns a human-readable representation of CPE component.
# 
#         :returns: Representation of CPE component as string
#         :rtype: string
#         :exception: NotImplementedError - class method not implemented
#         """
# 
#         errmsg = "Class method not implemented. Use the method of some child class"
#         raise NotImplementedError(errmsg)


# Path: cpe/comp/cpecomp_empty.py
from .cpecomp_logical import CPEComponentLogical
        from .cpecomp_anyvalue import CPEComponentAnyValue
        from .cpecomp_undefined import CPEComponentUndefined
    import doctest

    For example, in version 1.1 of CPE specification, an empty component
    is version attribute in CPE name cpe:/microsft:windows::sp2.
    """

    ####################
    #  OBJECT METHODS  #
    ####################

    def __eq__(self, other):
        """
        Returns True if other (first element of operation) and
        self (second element of operation) are equal components,
        false otherwise.

        :param CPEComponent other: component to compare
        :returns: True if other == self, False otherwise
        :rtype: boolean
        """


        return (isinstance(other, CPEComponentEmpty) or
                isinstance(other, CPEComponentUndefined) or
                isinstance(other, CPEComponentAnyValue))

    def __init__(self):
        """
        Initializes the component.
        """

        super(CPEComponentEmpty, self).__init__(

            CPEComponentLogical._VALUE_INT_EMPTY)