# Path: voidwalker/framework/interface/parameter.py
# class BooleanParameter(Parameter):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def default_value(self):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/command.py
# class Command(object):
#     pass
# 
# Path: voidwalker/framework/interface/command.py
# class CommandFactory(object):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def create(self, command_type, inferior_repository, platform_factory,
#                inferior_factory, thread_factory, config, terminal):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/command.py
# class DataCommand(Command):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def execute(self, terminal, thread, argument):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/parameter.py
# class EnumParameter(Parameter):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def sequence(self):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/parameter.py
# class Parameter(object):
#     __metaclass__ = abc.ABCMeta
# 
#     def init(self):
#         pass
# 
#     @staticmethod
#     def name():
#         raise NotImplementedError
# 
#     @abc.abstractmethod
#     def default_value(self):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/parameter.py
# class ParameterFactory(object):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def create(self, parameter_type):
#         raise NotImplementedError
# 
# Path: voidwalker/backends/test/target.py
# class TestInferior(Inferior):
#     def __init__(self, cpu, inferior_id):
#         super(TestInferior, self).__init__(cpu)
#         self._id = inferior_id
# 
#     def id(self):
#         return self._id
# 
#     def disassemble(self, address, length):
#         return None
# 
#     def read_memory(self, address, length):
#         return None
# 
#     def write_memory(self, buf, address):
#         return None
# 
# Path: voidwalker/backends/test/target.py
# class TestThread(Thread):
#     def __init__(self, inferior, thread_id):
#         super(TestThread, self).__init__(inferior)
#         self._thread_id = thread_id
# 
#     def name(self):
#         return ('thread %d' % self._thread_id)
# 
#     def id(self):
#         return self._thread_id
# 
#     def is_valid(self):
#         return True


from ...framework.interface import BooleanParameter
from ...framework.interface import Command
from ...framework.interface import CommandFactory
from ...framework.interface import DataCommand
from ...framework.interface import EnumParameter
from ...framework.interface import Parameter
from ...framework.interface import ParameterFactory
from .target import TestInferior
from .target import TestThread
# (void)walker unit test backend
# Copyright (C) 2012 David Holm <dholmster@gmail.com>

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.




class TestCommandFactory(CommandFactory, object):
    def create(self, command_type, inferior_repository, platform_factory,
               inferior_factory, thread_factory, config, terminal):

# Path: voidwalker/framework/interface/parameter.py
# class BooleanParameter(Parameter):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def default_value(self):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/command.py
# class Command(object):
#     pass
# 
# Path: voidwalker/framework/interface/command.py
# class CommandFactory(object):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def create(self, command_type, inferior_repository, platform_factory,
#                inferior_factory, thread_factory, config, terminal):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/command.py
# class DataCommand(Command):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def execute(self, terminal, thread, argument):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/parameter.py
# class EnumParameter(Parameter):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def sequence(self):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/parameter.py
# class Parameter(object):
#     __metaclass__ = abc.ABCMeta
# 
#     def init(self):
#         pass
# 
#     @staticmethod
#     def name():
#         raise NotImplementedError
# 
#     @abc.abstractmethod
#     def default_value(self):
#         raise NotImplementedError
# 
# Path: voidwalker/framework/interface/parameter.py
# class ParameterFactory(object):
#     __metaclass__ = abc.ABCMeta
# 
#     @abc.abstractmethod
#     def create(self, parameter_type):
#         raise NotImplementedError
# 
# Path: voidwalker/backends/test/target.py
# class TestInferior(Inferior):
#     def __init__(self, cpu, inferior_id):
#         super(TestInferior, self).__init__(cpu)
#         self._id = inferior_id
# 
#     def id(self):
#         return self._id
# 
#     def disassemble(self, address, length):
#         return None
# 
#     def read_memory(self, address, length):
#         return None
# 
#     def write_memory(self, buf, address):
#         return None
# 
# Path: voidwalker/backends/test/target.py
# class TestThread(Thread):
#     def __init__(self, inferior, thread_id):
#         super(TestThread, self).__init__(inferior)
#         self._thread_id = thread_id
# 
#     def name(self):
#         return ('thread %d' % self._thread_id)
# 
#     def id(self):
#         return self._thread_id
# 
#     def is_valid(self):
#         return True


# Path: voidwalker/backends/test/interface.py
from ...framework.interface import BooleanParameter
from ...framework.interface import Command
from ...framework.interface import CommandFactory
from ...framework.interface import DataCommand
from ...framework.interface import EnumParameter
from ...framework.interface import Parameter
from ...framework.interface import ParameterFactory
from .target import TestInferior
from .target import TestThread

# (void)walker unit test backend
# Copyright (C) 2012 David Holm <dholmster@gmail.com>

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.




class TestCommandFactory(CommandFactory, object):
    def create(self, command_type, inferior_repository, platform_factory,
               inferior_factory, thread_factory, config, terminal):

        if issubclass(command_type, DataCommand):