$Id: base_classes.html,v 1.24 2007-09-11 10:32:38 almo Exp $

Базовые классы и интерфейсы компонентов тестовой системы

  1. Базовые классы и интерфейсы компонентов тестовой системы
    1. Базовый класс объектов, с которыми можно выполнять "глубокие" операции
      #DeepSubject
      [ jatva.lang.sevices.DeepSubject ]
      1. Копирование и сравнение по полям
        1. Копирование по полям
          public #DeepSubject #shallowClone ( )
          [ _ts_shallowClone ]
        2. Сравнение по полям
          public boolesn #shallowEquals ( Object obj )
          [ _ts_shallowEquals ]
        3. Присваивание по полям
          public void #shallowAssign ( Object obj )
          [ _ts_shallowAssign ]
        4. Сброс полей в строку
          protected void #appendFields ( StringBuffer #buf )
          [ _ts_appendFields ]
      2. Копирование и сравнение на всю глубину
        1. Глубокое копирование
          public final #DeepSubject #DeepClone ( )
          [ _ts_deepClone ]
        2. Построение копии при глубоком копировании другого объекта
          final #DeepSubject #ImplDeepClone ( )
          [ _ts_implDeepClone ]
        3. Глубокое сравнение
          public final boolean #DeepEquals ( Object obj )
          [ _ts_deepEquals ]
        4. Сравнение при глубоком сравнении другого объекта
          final boolean #ImplDeepEquals ( #DeepSubject #obj )
          [ _ts_implDeepEquals]
        5. Метод построения глубоких копий полей
          protected void #fieldsDeepClone ( #DeepSubject #obj, #IdentityMap #map )
          [ _ts_fieldsDeepClone ]
        6. Глубокое сравнение полей
          protected boolean #fieldsDeepEquals ( #DeepSubject #obj, #IdentityMap #map )
          [ _ts_fieldsDeepEquals ]
        7. Глубокое восстановление значений полей
          protected void #fieldsDeepAssign ( #DeepSubject #obj, #IdentityMap #map )
          [ _ts_fieldsDeepAssign ]
        8. Сброс полей в строку с учетом их полной структуры
          protected void #fieldsDeepAppend ( StringBuffer #buf, #IdentityMap #map )
          [ _ts_fieldsDeepAppend ]
  2. Базовый класс всех спецификационных классов
    #ModelObject extends #DeepSubject
    [ jatva.lang.ModelObject ]
    1. Работа с моделью класса
      1. Ссылка на объект-модель класса
        private static #ModelClass #class_model
        [ _ts_classModel ]
      2. Получение объекта-модели класса
        protected static #ModelClass #getClassModel ( )
        [ _ts_getClassModel ]
      3. Установка объекта-модели класса
        protected static void #setClassModel ( #ModelClass #model )
        [ _ts_setClassModel ]
    2. Работа с оракулом
      1. Объекта
        1. Подключение оракула
          public final void #attachOracle ( )
          [ attachOracle ]
        2. Подключение оракула с проверкой read-only полей
          public final void #attachOracle ( boolean #rocheck )
          [ attachOracle ]
        3. Отключение оракула
          public final void #removeOracle()
          [ removeOracle ]
        4. Наличие оракула
          protected boolean #isOracleSet
          [ _ts_isOracleSet ]
        5. Проверка флага вызова оракула
          protected bool #OracleCall
          [ _ts_isOracleCalled ]
        6. Установка флага вызова оракула
          protected void #SetOracleCalled
          [ _ts_setOracleCalled ]
        7. Счетчик проверенных уточнений
          protected ushort #Counter
          [ _ts_Counter ]
      2. Работа с оракулом класса
        1. Подключение оракула
          public static void #attachClassOracle()
          [ attachClassOracle ]
        2. Отключение оракула
          public static void #removeClassOracle()
          [ removeClassOracle ]
    3. Методы синхронизации состояния
      1. Объекта
        1. Синхронизация модельного состояния
          public void #mapStateUp()
          [ _ts_mapStateUp ]
        2. Синхронизация реализационного состояния
          public void #mapStateDown()
          [ mapStateDown ]
      2. Класса
        1. Синхронизация модельного состояния
          public static void #mapClassStateUp()
          [ _ts_mapClassStateUp ]
        2. Синхронизация реализационного состояния
          public static void #mapClassStateDown()
          [ mapClassStateDown ]
    4. Проверка инвариантов
      1. Объекта
        public void #checkInvariants ( )
        [ _ts_checkInvariants ]
      2. Класса
        public static void #checkClassInvariants ( )
        [ _ts_checkClassInvariants ]
      3. Базовых инвариантов объекта
        public void #checkPrimeInvariants ( )
        [ _ts_checkPrimeInvariants ]
      4. Базовых инвариантов класса
        public void #checkClassPrimeInvariants ( )
        [ _ts_checkClassPrimeInvariants ]
    5. Поддержка уточнения и наследования
      1. Уровень класса в иерархии наследования
        protected static int #class_level
        [ _ts_classLevel ]
      2. Счетчик вызовов основоного метода при наследовании
        protected final int #CallCounter ( )
        [ _ts_callCounter ]
      3. Увеличение счетчика вызовов на единицу
        protected final int #IncreaseCallCounter ( )
        [ _ts_increaseCallCounter ]
      4. Уменьшение счетчика вызовов на единицу
        protected final int #DecreaseCallCounter ( )
        [ _ts_decreaseCallCounter ]
      5. Счетчик глубины наследования
        protected final int #InheritanceCounter ( )
        [ _ts_inheritanceCounter ]
      6. Установка значения счетчика глубины наследования
        protected final int #SetInheritanceCounter ( int #value )
        [ _ts_setInheritanceCounter ]
      7. Проверка флага выполнения одного из унаследованных предусловий
        protected boolean #isAnyPreconditionHolds ( )
        [ _ts_isAnyPreHolds ]
      8. Установка флага выполнения одного из унаследованных предусловий
        protected void #setAnyPreconditionHolds ( )
        [ _ts_setAnyPreHolds ]
    6. Работа с описателями спецификационных операций
      1. Хранилище описателей
        private static #OperationMap #specificationOperations
        [ _ts_specificationOperations ]
      2. Инициализация хранилища описателей спецификационных операций
        private static void #initializeSpecificationOperations ( )
        [ _ts_initSpecificationOperations ]
      3. Получение информации об операции в классе
        public static #OperationInfo #getClassOperationInfo ( String #operation_signature )
        [ _ts_getClassOperationInfo ]
      4. Получение информации об операции в объекте
        public #OperationInfo #getOperationInfo ( String #operation_signature )
        [ _ts_getOperationInfo ]

    7. Работа с реализационными ссылками
      1. Имя поля, хранящего таблицу существующих медиаторов
        protected static #MediatorSet #mediator_set
        [ _ts_mediatorSet ]
      2. Сравнение медиатора с набором реализационных ссылок
        public virtual boolean #compareImplementationLinkWithObjects ( Object[] #objects )
        [ _ts_compareImplementationFields ]
      3. Инициалиазация реализации
        public void #initializeImplementation ( )
        [ _ts_initializeImplementation ]
    8. Зачистка и проверки релевантности
      1. Проверка релевантности модели
        bool #IsValidModel
        [ IsValidModel ]
      2. Пометка модели как нерелевантной
        void #InvalidateModel ( )
        [ InvalidateModel ]
      3. Метод зачистки модели
        void #CleanUpModel ( )
        [ CleanUpModel ]

  3. Формальный предок спецификационных классов
    #FormalModelObject
    [ jatva.lang.FormalModelObject ]
  4. Базовый класс моделей классов
    #ModelClass
    [ jatva.lang.ModelClass ]
    1. Имя исходного класса
      public string #Name
      [ _ts_name ]
    2. Получение имени класса, определяющего статические методы и синхронизацию состояния класса
      public string #getStaticUpdateManager
      [ _ts_getStaticUpdateManager ]
    3. Установка имени класса, определяющего статические методы и синхронизацию состояния класса
      public string #setStaticUpdateManager
      [ _ts_setStaticUpdateManager ]
    4. Синхронизация полей данного объекта с полями соответсвующего класса
      public virtual void #updateClassFields ( )
      [ _ts_updateClassFields ]
  5. Общий интерефейс медиаторов
    #MediatorInterface
    [ jatva.lang.MediatorInterface ]
  6. Базовый класс моделей тестирования
    #TestingModel
    [ jatva.lang.TestingModel ]
    1. Общий интерфейс для обходчиков
      1. Метод инициализации воздействия в данном состоянии
        public virtual #AbstractAction #Initialize ( )
        [ _ts_initialize ]
      2. Метод получения следующего воздействия
        public virtual #AbstractAction #Next ( #AbstractAction #a )
        [ _ts_next ]
      3. Метод, применяющий воздействие
        public virtual void #Execute ( #AbstractAction #a )
        [ _ts_execute ]
      4. Метод трассировки воздействия
        public virtual void #TraceAction ( #AbstractAction #a )
        [ _ts_traceAction ]
      5. Метод вычисления обобщенного состояния
        public Object #state ( )
        [ _ts_state ]


  7. Формальный предок сценарных классов
    #FormalScenario
    [ jatva.lang.FormalScenario ]

  8. Базовый класс обощенных воздействий
    #AbstractAction
    [ jatva.lang.AbstractAction ]
    1. Номер сценарного метода, соответсвующего данному воздействию
      public int #method ( )
      [ method ]
    2. Проверка наличия следующего воздействия
      public boolean #actionNext ( )
      [ next ]
    3. Снятие флагов использования итерационных переменных
      public void #ClearUsedIterations ( )
      [ clearUsedIterations ]
    4. Проверка признака инициализации переменной обощенного состояния
      public boolean #isStateVariableInitialized ( int i )
      [ isStateVariableInitialized ]
    5. Установка признака инициализации переменной обощенного состояния
      public boolean #setStateVariableInitialized ( int i )
      [ setStateVariableInitialized ]
    6. Проверка признака вычисления очередного значения итерационной переменной
      public boolean #isIterationMove ( int i )
      [ isIterationMove ]
    7. Установка признака вычисления очередного значения итерационной переменной
      public void #setIterationMove ( int i , boolean #value )
      [ setIterationMove ]
    8. Проверка признака инициализации итерационной переменной
      public boolean #isIterationInitialized ( int i )
      [ isIterationInitialized ]
    9. Установка признака инициализации итерационной переменной
      public void #setIterationInitialized ( int i, boolean value )
      [ setIterationInitialized ]
    10. Копирование общих данных обощенного воздействия
      protected void #copyBase ( #AbstractAction #r )
      [ _ts_copyBase ]
    11. Сравнение общих данных обощенного воздействия
      protected boolean #compareBase ( #AbstractAction #r )
      [ _ts_compareBase ]
    12. Обработка флагов итерационных переменных
      public void #retrieveFlags ( #IterationFlags #f )
      [ retrieveFlags ]
  9. Вспомогательный класс-контейнер для хранения временных флагов итерационных переменных
    #IterationFlags
    [ jatva.lang.AbstractAction.IterationFlags ]
    1. Установка признака использования итерационной переменной
      public void #SetUsage ( int #i )
      [ setUsage ]
    2. Установка признака последнего значения итерационной переменной
      public void #SetLast ( int #i , boolean #value )
      [ setLast ]

  10. Класс-заглушка для генерации уникальных сигнатур
    #DummyClass
    [ jatva.lang.DummyClass ]

    Методы
    1. Получение объекта-заглушки
      public final static #DummyClass #dummyObject ( )
      [ dummyObject ]
  11. Координатор глубокого копирования
    #DeepOperationManager
    [ jatva.lang.services.DeepOperationManager ]
    1. Получение копии объекта
      public static #DeepSubject #GetClone( #DeepSubject #obj )
      [ getClone ]
    2. Получение глубокой копии
      public static #DeepSubject #getDeepClone ( Object #obj, #IdentityMap #map )
      [ getDeepClone ]
    3. Сравнение объектов на ссылочный изоморфизм
      public static boolean #areDeeplyEqual ( Object #o1 , Object #o2 , #IdentityMap #map )
      [ areDeeplyEqual ]
    4. Восстановление объекта из глубокой копии
      public static Object #restoreFromClone ( Object #obj , #IdentityMap #map )
      [ restoreFormClone ]
    5. Сброс в строку объекта с его ссылочной структурой
      public static void #appendDeepString ( Object #obj , #IdentityMap #map , StringBuffer #buf )
      [ appendDeepString ]
    6. Сравнение объектов
      public static boolean #Equals( #DeepSubject #obj1, #DeepSubject #obj2 )
      [ equals ]
    7. Глубокое сравнение объектов
      public static boolean #DeepEquals( #DeepSubject #obj1, #DeepSubject #obj2 )
      [ deepEquals ]
    8. Окончание копирования или сравнения
      public static void #Finish( #DeepSubject #obj )
      [ finish ]
  12. Регистратор событий и менеджер теста
    #TestManager
    [ jatva.lang.synchronization.TestManager ]
    1. Получение регистратора событий текущего потока
      public static #TestManager #getRegistrar ( )
      [ getRegistrar ]
    2. Вход в инвариант
      public void #invariantEnter ( #ModelObject #obj, String #name, String #msg )
      public void #invariantEnter ( String #class_name, String #name, String #msg )
      [ invariantEnter ]
    3. Выход из инварианта
      public void #invariantExit ( )
      [ invariantExit ]
    4. Регистрация модельного события
      public void #registerModelEvent ( #ModelEvent #e )
      [ registerModelEvent ]
    5. Получение текущего модельного события
      public #ModelEvent #getCurrentEvent ( )
      [ getCurrentEvent ]
    6. Сохранение результата текущего вызова
      public void #storeResult ( Object #o )
      [ storeResult ]
    7. Сохранение исключения при текущем вызове
      public void #storeException ( Throwable #error )
      [ storeException ]
    8. Вход в проверку предусловия
      public void #preconditionEnter ( #ModelEvent #e )
      [ preconditionEnter ]
    9. Выход из проверки предусловия
      public void
      #preconditionExit ( )
      [ preconditionExit ]
    10. Вход в предусловие при вычислении элемента покрытия
      public void #coverageAnalysisPreconditionEnter ( #ModelEvent #e )
      [ coverageAnalysisPreconditionEnter ]
    11. Выход из предусловия при вычислении элемента покрытия
      public void #coverageAnalysisPreconditionExit ( )
      [ coverageAnalysisPreconditionExit ]
    12. Вход в постусловие при вычислении элемента покрытия
      public void #coverageAnalysisPostconditionEnter ( )
      [ coverageAnalysisPostconditionEnter ]
    13. Выход из постусловия при вычислении элемента покрытия
      public void #coverageAnalysisPostconditionExit ( )
      [ coverageAnalysisPostconditionExit ]
    14. Вход в предусловие в оракуле
      public void #oraclePreconditionEnter ( String #classname )
      [ oraclePreconditionEnter ]
    15. Выход из предусловия в оракуле
      public void #oraclePreconditionExit ( )
      [ oraclePreconditionExit ]
    16. Вход в постусловие в оракуле
      public void #oraclePostconditionEnter ( String #classname )
      [ oraclePostconditionEnter ]
    17. Выход из постусловия в оракуле
      public void #oraclePostconditionExit ( )
      [ oraclePostconditionExit ]
    18. Регистрация значения формулы
      public boolean #formulaValue ( int #id, boolean #value )
      [ formulaValue ]
    19. Регистрация прохождения метки
      public void #markExecution ( String #coverage, String #label )
      [ markExecution ]
    20. Регистрация прохождения ветви
      public void #branchExecution ( String #id, String #msg )
      [ branchExecution ]
    21. Регистрация неразрывности вызова с возвращением результата
      public void #markImmediateResult ( )
      [ markImmediateResult ]
    22. Регистрация исключения в оракуле
      public void #registerOracleException ( #TestException #error )
      [ registerOracleException ]
    23. Проверка режима выполнения при тестировании с сериализациями
      public boolean #isExecuting ( )
      [ isExecuting ]
    24. Переход на модельный уровень при выполнении теста
      public void #returnToModel ( )
      [ returnToModel ]
    25. Вход в реализационный вызов
      public void #implementationCallEnter ( Object #obj, String #method, Object [ ] #args )
      public void #implementationCallEnter ( String #class , String #method, Object [ ] #args )
      [ implementationCallEnter ]
    26. Выход из реализационного вызова
      public void #implementationCallExit ( )
      [ implementationCallExit ]
    27. Регистрация реализационного резултата
      public void #registerImplementationResult ( { Object, boolean, char, byte, short, int, long, double, float } #obj , long #time )
      [ registerImplementationResult ]
    28. Регистрация реализационного исключения
      public void #registerImplementationException ( Throwable #error, long #time )
      [ registerImplementationException ]
    29. Получение сохраненного реализационного исключения
      public Throwable #getImplementationException ( )
      [ getImplementationException ]
    30. Вход в сценарный метод
      public void #scenarioMethodEnter ( TestingModel #object, String #method, AbstractAction #action )
      [ scenarioMethodEnter ]
    31. Выход из сценарного метода
      public void #scenarioMethodExit ( )
      [ scenarioMethodExit ]
    32. Вход в медиаторный метод
      public void #implementationStart ( )
      [ implementationStart ]
    33. Выход из медиаторного метода
      public void #implementationExit ( )
      [ implementationExit ]
    34. Проверка всех инвариантов
      public void #checkAllInvariants ( )
      [ checkAllInvariants ]
    35. Проверка базовых инвариантов
      public void #checkPrimeInvariants ( )
      [ checkPrimeInvariants ]
    36. Регистрация значения итерационной переменной
      public void #registerIterationVariableValue ( #ValueKind #kind, String #type, String #name, Object #value )
      [ registerIterationVariableValue ]
    37. Трассировка корректного исключения в сценарном методе
      public void #traceValidException ( Throwable #ex )
      [ traceValidException ]
  13. Трассировщик
    #Tracer
    [ Chase.Trace.Tracer ]
    1. Метод получения объекта-трассировщика
      public static #Tracer #TracerObject
      [ TracerObject ]
    2. Трассировка исключения
      public void #TraceException ( string #info, string #format, params string[] #fields )
      [ trace_exception ]
    3. Трассировка обернутого исключения
      public void #TraceException ( string #info, System.Exception #cause, string #format, params string[] #fields )
      [ trace_exception ]
    4. Трассировка начала инварианта
      public void #TraceInvariantStart( string #signature )
      [ trace_invariant_start ]
    5. Трассировка конца инварианта
      public void #TraceInvariantEnd()
      [ trace_invariant_end ]
    6. Трассировка начала оракула
      public void #TraceOracleStart ( string #signature, #OperationInfo #operationData )
      [ trace_oracle_start ]
    7. Трассировка выполнения предусловия
      public void #TracePreconditionEnd ( )
      [ trace_precondition_end ]
    8. Трассировка конца оракула
      public void #TraceOracleEnd ( )
      [ trace_oracle_end ]
    9. Трассировка модельного объекта
      public void #TraceModelObject ( object #obj )
      [ trace_model_object ]
    10. Трассировка модельного класса
      public void #TraceModelClass ( string #name )
      [ trace_model_class ]
    11. Трассировка начала работы модельной операции
      public void #TraceModelOperationStart ( string #signature )
      [ trace_model_operation_start ]
    12. Трассировка конца работы модельной операции
      public void #TraceModelOperationEnd ( )
      [ trace_model_operation_end ]
    13. Трассировка модельного значения
      public void #TraceModelValue ( string #kind, string #type, string #id, string #value )
      [ trace_model_value ]
    14. Отключение трассировки пользовательских сообщений
      public void #UserInfoOff ( )
      [ user_info_off ]
    15. Включение трассировки пользовательских сообщений
      public void #UserInfoOn ( )
      [ user_info_on ]
    16. Трассировка метки
      public void #TraceMark ( string #mark )
      [ trace_mark ]
    17. Трассировка функциональной ветви
      public void #TraceBranch ( string #branch_id, string #branch )
      [ trace_branch ]
    18. Трассировка значения элементарной формулы
      public void #TracePrimeFormula ( string #formula, bool #value )
      [ trace_prime_formula ]
    19. Трассировка реализационного объекта
      public void #TraceImplementationObject ( object #obj )
      [ trace_implementation_object ]
    20. Трассировка реализационного класса
      public void #TraceImplementationClass ( string #name )
      [ trace_implementation_class ]
    21. Трассировка начала работы реализационной операции
      public void #TraceImplementationOperationStart ( string #signature )
      [ trace_implementation_operation_start ]
    22. Трассировка интервала работы реализационной операции
      public void #TraceImplementationTimeInterval ( long #startTime, long #endTime )
      [ trace_implementation_time_interval ]
    23. Трассировка конца работы реализационной операции
      public void #TraceImplementationOperationEnd ( )
      [ trace_implementation_operation_end ]
    24. Трассировка реализационного значения
      public void #TraceImplementationValue ( string #kind, string #type, string #id, string #value )
      [ trace_implementation_value ]
    25. Трассировка сценарного значения
      public void #TraceScenarioValue ( string #kind, string #type, string #id, string #value )
      [ trace_scenario_value ]
    26. Сброс запомненных сообщений о нарушении предусловий
      public void #FlushPreconditionExceptions ( )
      [ flush_precondition_exceptions ]
  14. Вспомогательные классы трассировки
    1. Виды трассируемых значений
      #ValueKind
      [ jatva.trace.ValueKind ]
      1. Итерационная переменная
        #ITERATION_VARIABLE
        [ ITERATION_VARIABLE ]
      2. Итерационная переменная колекции
        #COLLECTION_ITERATION_VARIABLE
        [ COLLECTION_ITERATION_VARIABLE ]
      3. Генерируемая итерационная переменная выбора
        #CHOICE_ITERATION_VARIABLE
        [ CHOICE_ITERATION_VARIABLE ]
      4. Генерируемая итерационная переменная жесткой групповой итерации
        #COVERAGE_ITERATION_VARIABLE
        [ COVERAGE_ITERATION_VARIABLE ]

  15. Описатели элементов
    1. Описатель спецификационной операции
      #OperationInfo
      [ jatva.lang.coverage.OperationInfo ]
      1. Добавление описания элементарной формулы
        #addFormula( int id, string description )
        [ addFormula ]
      2. Добавление описания фунциональной ветви
        #addBranch( int id, string identifier )
        [ addBranch ]
      3. Добавление описания маркированного пути
        #addMarkedPath( int id, string description )
        [ addMarkedPath ]
      4. Добавление описания полного предиката
        #addPredicate( int id, string description )
        [ addPredicate ]
      5. Добавление описания дизъюнкта
        #addDisjunct( int id, #DisjunctInfo info )
        [ addDisjunct ]
    2. Описатель модельного события
      #ModelEvent
      [ jatva.lang.ModelEvent ]
      1. Описатель операции
        protected #OperationInfo #operation
        [ operation ]
      2. Результат
        protected Object #result
        [ result ]
      3. Аргументы
        protected Object[] #arguments
        [ arguments ]
      4. Объект
        protected #ModelObject #object
        [ object ]
      5. Исключение
        protected Throwable #exception
        [ exception ]
      6. Получение результата
        public Object #getResult ( )
        [ getResult ]
      7. Получение исключения
        public Throwable #getException ( )
        [ getException ]
      8. Флаг реализационного исключения
        public boolean #ExceptionFlag
        [ ExceptionFlag ]
      9. Время работы
        public long #Time
        [ Time ]
      10. Оракул
        public boolean #check ( )
        [ check ]
      11. Метод выполнения
        public void #execute ( )
        [ execute ]
      12. Метод добавления синхронизационного объекта
        public void #addSynchronizationObject ( #SynchronizationObjectInterface o )
        [ addSynchronizationObject ]
      13. Метод синхронизации модельного состояния
        public void #update ( )
        [ update ]
    3. Описатель вызова модельного метода
      #ModelCall
      [ jatva.lang.ModelCall ]
    4. Описатель модельной реакции
      #ModelReaction
      [ jatva.lang.ModelReaction ]
    5. Объект синхронизации состояния модели
      #SynchronizationObjectInterface
      [ jatva.lang.synchronization.SynchronizationObjectInterface ]
  16. Вспомогательные классы для работы с покрытиями
    1. Описатель дизъюнкта
      #DisjunctInfo
      [ jatva.lang.coverage.DisjunctInfo ]
    2. Перечислимый тип значений элементарных формул
      #FormulaValue
      [ jatva.lang.coverage.FormulaValue ]
    3. Анализатор дизъюнктов
      #DisjunctAnalyser
      [ jatva.lang.coverage.DisjunctAnalyser ]
      1. Конструктор
        #DisjunctAnalyser ( #OperationInfo info )
      2. Запись значения формулы при поиске подходящего дизъюнкта
        public boolean #recordFormulaValue ( int id, boolean value )
        [ recordFormulaValue ]
      3. Получение индекса элемента разбиения, соответсвующего записанным значениям формул
        #getPartitionElementIndex ( string partition )
        [ getPartitionElementIndex ]
  17. Вспомогательные классы
    1. Map строк в описатели операций
      #OperationMap
      [ jatva.lang.coverage.OperationMap ]
    2. Map строк в строки с флагами
      #StringToFlaggedObjectMap
      [ Chase.Util.StringToFlaggedObjectMap ]
    3. Симметричная битовая матрица
      #SkewBitMatrix
      [ Chase.Util.SkewBitMatrix ]
    4. Битовое множество
      #BitSet
      [ Chase.Util.BitSet ]
    5. Вспомогательный класс - IdentityMap
      #IdentityMap
      [ jatva.utils.IdentityMap ]
    6. Таблица медиаторов
      #MediatorSet
      [ jatva.lang.MediatorSet ]
      1. Конструктор
        public #MediatorSet ( #ModelClass #model_class , #MediatorSet #parentTable )
      2. Поиск медиатора по заданному набору реализационных ссылок
        public #ModelObject #findObjects ( Object[] #objs )
        [ find ]
      3. Добавление медиатора
        public void #add ( #ModelObject #obj )
        [ add ]
      4. Удаление медиатора из таблицы
        public void #remove ( #ModelObject #obj )
        [ remove ]
    7. Утилиты
      #Utils
      [ jatva.util.Utils ]
      1. Получение короткой строки по объекту или значению
        public static String #getSimpleString ( { Object, boolean, char, byte, short, int, long, double, float } )
        [ getSimpleString ]
      2. Преобразование значения примитивного типа в объект
        public static Object #toObject ( { boolean, char, byte, short, int, long, double, float } )
        [ toObject ]
      3. Преобразование объекта в значение примитивного типа
        public static boolean #toBoolean ( Object ) [ toBoolean ]
        public static char #toCharacter ( Object ) [ toCharacter ]
        public static byte #toByte ( Object ) [ toByte ]
        public static short #toShort ( Object ) [ toShort ]
        public static int #toInteger ( Object ) [ toInteger ]
        public static long #toLong ( Object ) [ toLong ]
        public static float #toFloat ( Object ) [ toFloat ]
        public static double #toDouble ( Object ) [ toDouble ]

  18. Исключения
    1. Исключение в тестовой системе
      #TestException
      [ jatva.lang.TestException ]
      1. Флаг критического исключения
        public boolean #isCritical ( )
        [ isCritical ]
    2. Исключение в оракуле
      #OracleException
      [ jatva.lang.OracleException ]
    3. Нарушение инварианта
      #InvariantException
      [ jatva.lang.InvariantException ]
    4. Исключительная ситуация, возникшая в спецификационном методе
      #RuntimeSpecificationMethodException
      [ jatva.lang.RuntimeSpecificationMethodException ]
    5. Исключительная ситуация, возникшая в медиаторе
      #MediatorException
      [ jatva.lang.MediatorException ]
    6. Нарушение предусловия
      #PreconditionViolationException
      [ jatva.lang.PreconditionViolationException ]
    7. Нарушение постдусловия
      #PostconditionViolationException
      [ jatva.lang.PostconditionViolationException ]
    8. Появление неожиданного исключения из реализации
      #UnexpectedImplementationException
      [ java.lang.UnexpectedImplementationException ]
    9. Вызов неявно определенной операции
      #ImplicitMethodCallException
      [ jatva.lang.ImplicitMethodCallException ]
    10. Нарушение правил построения тестовой системы (bug)
      #TestSystemInternalError
      [ jatva.lang.TestSystemInternalError ]
    11. Неоднозначность в определении метода синхронизации состояния класса
      #AmbigousStaticSynchronizationException
      [ jatva.lang.AmbigousStaticSynchronizationException ]
    12. Нарушение правил создания объектов-медиаторов
      #IncorrectMediatorObjectException
      [ jatva.lang.IncorrectMediatorObjectException ]
    13. Конфликт между медиаторными объектами по реализационным ссылкам.
      #ConflictingMediatorObjectsException
      [ jatva.lang.ConflictingMediatorObjectsException ]
    14. Исключение в методе синхронизации состояний
      #StateSynchronizationMethodException
      [ jatva.lang.StateSynchronizationMethodException ]
    15. Исключение при трассировке результатов
      #ResultTracingException
      [ jatva.lang.ResultTracingException ]
    16. Исключение при работе медиаторного метода
      #RuntimeMediatorMethodException
      [ jatva.lang.RuntimeMediatorMethodException ]
    17. Исключение в ходе работы сценарного метода
      #RuntimeScenarioMethodException
      [ jatva.lang.RuntimeScenarioMethodException ]
    18. Нарушение ограничения сценарного метода
      # ScenarioConstraintViolationException
      [ jatva.lang.ScenarioConstraintViolationException ]
  19. Менеждер синхронизации состояний
    #SynchronizationManager
    [ jatva.lang.SynchronizationManager ]
    1. Регистрация модельного объекта
      public static void #Register ( #ModelObject #obj )
      [ Register ]
    2. Удаление модельного объекта
      public static void #Unregister ( #ModelObject #obj )
      [ Unregister ]
    3. Проверка и регистрация группы медиаторов
      public static void #RegisterGroup( params #ModelObject[] #mediators )
      [ RegisterGroup ]
      {
          foreach( #ModelObject #mediator in #mediators )
          {
              #MediatorSet #mediator_table = #mediator . #mediator_set ;
              if( #mediator_table != null && #mediator_table . #find ( #mediator ) != null )
              {
                  throw new #TS_IllegalMediatorException( ... );
              }
              #SynchronizationManager.#Register( #result ); 
          }
          #SynchronizationManager.#Update(); 
      }
    4. Обновление зарегистрированных медиаторов
      public static void
      #Update ( )
      [ Update ]
    5. Обновление обратных медиаторов
      public static void #UpdateInverse ( )
      [ UpdateInverse ]
    6. Проверка всех модельных объектов
      public static void #CheckAll ( )
      [ CheckAll ]
    7. Начало блока инструкций для последующей сериализации
      public static void #StartSerializationBlock ( )
      [ StartSerializationBlock ]
    8. Конец блока инструкций для сериализации
      public static void #EndSerializationBlock ( )
      [ EndSerializationBlock ]
    9. Начало реализационного блока
      public static void #StartImplementationBlock ( )
      [ StartImplementationBlock ]
    10. Конец реализационного блока
      public static void #EndImplementationBlock ( )
      [ EndImplementationBlock ]