# Path: intelligine/cst.py
# MOLECULES_DIRECTION = IncrementedNamedInt.get('intelligine.mol.direction')
# 
# Path: intelligine/simulation/object/molecule/MoleculeGland.py
# class MoleculeGland():
# 
#     def __init__(self, host, context):
#         self._molecule_type = None
#         self._host = host
#         self._context = context
#         self._enabled = False
# 
#     def set_molecule_type(self, molecule_type):
#         self._molecule_type = molecule_type
# 
#     def get_molecule_type(self):
#         if self._molecule_type is None:
#             raise Exception("molecule_type not specified")
#         return self._molecule_type
# 
#     def get_molecule(self):
#         raise NotImplementedError()
# 
#     def appose(self):
#         if not self._enabled:
#             raise MoleculeGlandDisabled()
# 
#         try:
#             DirectionMolecule.appose(self._context,
#                                      self._host.get_position(),
#                                      self.get_molecule())
#         except BestMoleculeHere as best_molecule_here:
#             self._host.get_brain().set_distance_from_objective(best_molecule_here.get_best_distance())
# 
#     def disable(self):
#         self._enabled = False
# 
#     def enable(self):
#         self._enabled = True
# 
#     def is_enabled(self):
#         return self._enabled
# 
# Path: intelligine/simulation/molecule/Molecule.py
# class Molecule():
# 
#     def __init__(self, category, type, distance=None, intensity=0, cycle_age=None):
#         self._category = category
#         self._type = type
#         self._distance = distance
#         self._intensity = intensity
#         self._cycle_age = cycle_age
# 
#     def get_category(self):
#         return self._category
# 
#     def get_type(self):
#         return self._type
# 
#     def get_distance(self):
#         return self._distance
# 
#     def set_distance(self, distance):
#         self._distance = distance
# 
#     def get_intensity(self):
#         return self._intensity
# 
#     def get_cycle_age(self):
#         return self._cycle_age
# 
#     def set_cycle_age(self, cycle_age):
#         self._cycle_age = cycle_age
# 
#     def increment_intensity(self, increment_value):
#         self._intensity += increment_value


from intelligine.cst import MOLECULES_DIRECTION
from intelligine.simulation.object.molecule.MoleculeGland import MoleculeGland
from intelligine.simulation.molecule.Molecule import Molecule


class MovementMoleculeGland(MoleculeGland):

    def get_molecule(self):
        """
        :return: Molecule
        """

# Path: intelligine/cst.py
# MOLECULES_DIRECTION = IncrementedNamedInt.get('intelligine.mol.direction')
# 
# Path: intelligine/simulation/object/molecule/MoleculeGland.py
# class MoleculeGland():
# 
#     def __init__(self, host, context):
#         self._molecule_type = None
#         self._host = host
#         self._context = context
#         self._enabled = False
# 
#     def set_molecule_type(self, molecule_type):
#         self._molecule_type = molecule_type
# 
#     def get_molecule_type(self):
#         if self._molecule_type is None:
#             raise Exception("molecule_type not specified")
#         return self._molecule_type
# 
#     def get_molecule(self):
#         raise NotImplementedError()
# 
#     def appose(self):
#         if not self._enabled:
#             raise MoleculeGlandDisabled()
# 
#         try:
#             DirectionMolecule.appose(self._context,
#                                      self._host.get_position(),
#                                      self.get_molecule())
#         except BestMoleculeHere as best_molecule_here:
#             self._host.get_brain().set_distance_from_objective(best_molecule_here.get_best_distance())
# 
#     def disable(self):
#         self._enabled = False
# 
#     def enable(self):
#         self._enabled = True
# 
#     def is_enabled(self):
#         return self._enabled
# 
# Path: intelligine/simulation/molecule/Molecule.py
# class Molecule():
# 
#     def __init__(self, category, type, distance=None, intensity=0, cycle_age=None):
#         self._category = category
#         self._type = type
#         self._distance = distance
#         self._intensity = intensity
#         self._cycle_age = cycle_age
# 
#     def get_category(self):
#         return self._category
# 
#     def get_type(self):
#         return self._type
# 
#     def get_distance(self):
#         return self._distance
# 
#     def set_distance(self, distance):
#         self._distance = distance
# 
#     def get_intensity(self):
#         return self._intensity
# 
#     def get_cycle_age(self):
#         return self._cycle_age
# 
#     def set_cycle_age(self, cycle_age):
#         self._cycle_age = cycle_age
# 
#     def increment_intensity(self, increment_value):
#         self._intensity += increment_value


# Path: intelligine/simulation/object/molecule/MovementMoleculeGland.py
from intelligine.cst import MOLECULES_DIRECTION
from intelligine.simulation.object.molecule.MoleculeGland import MoleculeGland
from intelligine.simulation.molecule.Molecule import Molecule



class MovementMoleculeGland(MoleculeGland):

    def get_molecule(self):
        """
        :return: Molecule
        """

        return Molecule(MOLECULES_DIRECTION,