# -*- coding: utf-8 -*- # Copyright 2013-2017 Camptocamp SA # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) """ Backend Adapter =============== An external adapter has a common interface to speak with the backend. It translates the basic orders (search, read, write) to the protocol used by the backend. """ from odoo.addons.component.core import AbstractComponent class BackendAdapter(AbstractComponent): """ Base Backend Adapter for the connectors """ _name = 'base.backend.adapter' _inherit = 'base.connector' _usage = 'backend.adapter' class CRUDAdapter(AbstractComponent): """ Base External Adapter specialized in the handling of records on external systems. This is an empty shell, Components can inherit and implement their own implementation for the methods. """ _name = 'base.backend.adapter.crud' _inherit = 'base.backend.adapter' _usage = 'backend.adapter' def search(self, *args, **kwargs): """ Search records according to some criterias and returns a list of ids """ raise NotImplementedError def read(self, *args, **kwargs): """ Returns the information of a record """ raise NotImplementedError def search_read(self, *args, **kwargs): """ Search records according to some criterias and returns their information""" raise NotImplementedError def create(self, *args, **kwargs): """ Create a record on the external system """ raise NotImplementedError def write(self, *args, **kwargs): """ Update records on the external system """ raise NotImplementedError def delete(self, *args, **kwargs): """ Delete a record on the external system """ raise NotImplementedError