@classmethod
def declare_entry(cls, entry, pre_assemble_callback=None, assemble_callback
    =None, initialize_callback=None):
    """ Add new entry in the declared entries

        ::

            def assemble_callback(registry):
                ...

            def initialize_callback(registry):
                ...

            RegistryManager.declare_entry(
                'Entry name', assemble_callback=assemble_callback,
                initialize_callback=initialize_callback)

            @Declarations.register(Declarations.``Entry name``)
            class MyClass:
                ...

        .. warning::

            The entry must be declared in the application, not in the bloks
            The declaration must be done before the loading of the bloks

        :param entry: entry name
        :param assemble_callback: function callback to call to assemble
        :param initialize_callback: function callback to call to init after
            assembling
        """
    if entry not in cls.declared_entries:
        cls.declared_entries.append(entry)
        if pre_assemble_callback:
            cls.callback_pre_assemble_entries[entry] = pre_assemble_callback
        if assemble_callback:
            cls.callback_assemble_entries[entry] = assemble_callback
        if initialize_callback:
            cls.callback_initialize_entries[entry] = initialize_callback
