Source code for xsdata.codegen.mixins

import abc
from typing import Callable
from typing import Iterator
from typing import List
from typing import Optional

from xsdata.codegen.models import Class
from xsdata.utils.constants import return_true


[docs]class ContainerInterface(metaclass=abc.ABCMeta): """Wrap a list of classes and expose a simple api for easy access and process."""
[docs] @abc.abstractmethod def iterate(self) -> Iterator[Class]: """Create an iterator for the class map values."""
[docs] @abc.abstractmethod def find(self, qname: str, condition: Callable = return_true) -> Optional[Class]: """Search by qualified name for a specific class with an optional condition callable."""
[docs] @abc.abstractmethod def find_inner( self, source: Class, name: str, condition: Callable = return_true ) -> Optional[Class]: """Search by name for a specific inner class with an optional condition callable."""
[docs] @abc.abstractmethod def add(self, item: Class): """Add class item to the container."""
[docs] @abc.abstractmethod def extend(self, items: List[Class]): """Add a list of classes the container."""
[docs]class HandlerInterface(metaclass=abc.ABCMeta): """Class handler interface."""
[docs] @abc.abstractmethod def process(self, target: Class): """Process the given target class."""