p

xyz.cofe.stsl

types

package types

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. case class AnyVariant(name: String) extends GenericParam with Product with Serializable

    Тип переменная TypeVariable может указывать на любой тип.

    Тип переменная TypeVariable может указывать на любой тип.

    name

    имя переменной

  2. trait Assignable extends AnyRef

    Проверка возможности выполнеия операции присвоения (или передачи значения) над типами данных

    Проверка возможности выполнеия операции присвоения (или передачи значения) над типами данных

    Допустим есть две переменных разных типов:

    • a : number
    • b : int

    тогда:

    • a.assignable( b ) = true
    • b.assignable( a ) = false
  3. class CallableFn extends Fn with Invoke

    Функция с возможностью вызова

  4. case class CoVariant(name: String, tip: Type) extends GenericParam with Product with Serializable

    Тип переменная TypeVariable указывает на ковариантный тип: selfType.

    Тип переменная TypeVariable указывает на ковариантный тип: selfType. assignable( someType ).

    name

    имя переменной

    tip

    тип переменной

  5. case class ContraVariant(name: String, tip: Type) extends GenericParam with Product with Serializable

    Тип переменная TypeVariable указывает на контрвариантный тип: someType.

    Тип переменная TypeVariable указывает на контрвариантный тип: someType. assignable( selfType ).

    name

    имя переменной

    tip

    тип переменной

  6. trait Extendable extends Assignable

    Производные типы данных - "наследование"

  7. class Field extends Named

    Поле класса / Атрибут класса

  8. class Fields extends Seq[Field]

    Имутабельный список полей класса

  9. class Fn extends Fun

    Функция.

    Функция.

    Для создания вызываемой функции используйте invoke / invoking

    Пример создания функции

    • Fn(Params("a" -> INT),INT)
    • Создает функцию с одним аргментом
    • имя аргумента a,
    • тип аргмента INT
    • возвращает тип INT - Fn(
        GenericParams(
          AnyVariant("A"), AnyVariant("B") ),
        Params(
          "a" -> TypeVariable("A", Type.FN) ),
        TypeVariable("B", Type.FN)
      ) - Создает функцию с типа параметрами (GenericParams) A, B - Один аргумент, с именем a и типом переменной A - Тип результата - тип переменная B - сигнатура (toString()) = [A,B](a:A):B
  10. trait Freezing extends AnyRef

    "Заморозка" изменений в мутабельном объекте, Разморозки не предполагается - только клонирование

  11. trait Fun extends Type with TypeVarReplace[Fun] with TypeVarFetch

    Функция/метод

    Функция/метод

    • Функция сама по себе является типом
    • Функция может содержаеть параметрические типы (типы переменные)
    • Переменные типа (TypeVariable) могут ссылаться (owner):
    • На класс в случае метода: owner=THIS
    • На саму функцию: owner=FN
    • Метод в качестве первого аргмента должен принимать ссылку на объект, с типом THIS
  12. class Funs extends Seq[Fun]

    Иммутабельный список функций

  13. class GenericInstance[A <: Type with TypeVarReplace[A]] extends Type with TypeVarReplace[GenericInstance[A]] with TypeVarFetch

    Тип данных - экземпляр переменной параметрезированного типа

    Тип данных - экземпляр переменной параметрезированного типа

    A

    Объект реализующий TypeVarReplace

    See also

    TypeVarReplace

  14. sealed trait GenericParam extends Type with Named

    Тип параметра - модели ковариантности

  15. class GenericParams extends Seq[GenericParam]

    Коллекция типов-параметров

  16. trait Genericable extends Assignable

    Патаметры типа

  17. trait Invoke extends AnyRef

    Вызов функции

  18. sealed trait LocatorItem extends AnyRef

    Компонент пути локатора вложенного типа TypeVarLocator

  19. case class LocatorItemFunParam(fun: Fun, param: Param, next: Option[LocatorItem]) extends LocatorItem with Product with Serializable

    Компонент указывает на параметр функции

    Компонент указывает на параметр функции

    fun

    Функции

    param

    Параметр

    next

    Следующий компонент

  20. case class LocatorItemFunResult(fun: Fun, next: Option[LocatorItem]) extends LocatorItem with Product with Serializable

    Компонент указывает на результат функции

    Компонент указывает на результат функции

    fun

    Функции

    next

    Следующий компонент

  21. case class LocatorItemGenericInstance[A <: Type with TypeVarReplace[A]](gi: GenericInstance[A], param: String, next: Option[LocatorItem]) extends LocatorItem with Product with Serializable

    Компонент указывает на GenericInstance

    Компонент указывает на GenericInstance

    gi

    GenericInstance

    param

    Параметр

    next

    Следующий компонент

  22. class Methods extends Seq[(String, Fun)]

    Методы объекта

  23. class MutableFields extends Fields with Freezing

    Мутабельный список полей/аттрибутов класса

  24. class MutableFuns extends Funs with Freezing

    Мутабельный список функций

  25. class MutableGenericParams extends GenericParams with Freezing

    Мутабельная коллекция типов-параметров

  26. class MutableMethods extends Methods with Freezing

    Мутабельный список методов объекта

  27. trait Named extends AnyRef

    Именнованое значение, например тип данных или поле класса

  28. trait Obj extends Type with Named

    Интерфейс класса, любой клас обладает:

    Интерфейс класса, любой клас обладает:

    • Списком полей/атрибутов
    • Список методов
  29. class Param extends Named with TypeVarReplace[Param]

    Параметр метода / функции

  30. class Params extends Seq[Param] with TypeVarReplace[Params] with TypeVarFetch

    Параметры метода/функции

  31. class TObject extends Obj with TypeVarReplace[TObject] with Freezing

    Определение класса данных/объектов

  32. trait Type extends Assignable with Extendable with Genericable

    Описывает тип данных

  33. class TypeError extends Error

    Ошибка при работе с типами данных, может быть как ошибка компилятора, так и пользователя компилятора

  34. trait TypeVarFetch extends AnyRef

    Извлечение переменных xyz.cofe.stsl.types.TypeVariable

  35. class TypeVarLocator extends AnyRef

    Описывает расположение переменной типа TypeVariable в GenericInstance, Fun

  36. trait TypeVarReplace[A] extends AnyRef

    Замена переменной Типа.

    Замена переменной Типа.

    Актуально когда есть параметризированный тип, например List с параметром A.

      List[A] {
        add( item : A )
      }
    

    Для правильной проверке типов и соответ вывода типов, необходима процедура замены переменных на реальные значения.

    Для примера возьмем тип User:

    User {
      name : String
      enabled : Boolean
    }
    

    Создадим переменную типа List, которая может создержать только элементы типа User. Для java кода это так: var userList = new List<User>

    В нашем случае это такой код: val userList = new GenericInstance( Map("A"->userType), listType )

    Тогда при вызове userList.add( something )

    будет выведен новый тип для userList:

      List {
        add( item: User )
      }
    

    Этот вывод новго типа осуществляется за счет TypeVarReplace.

    A

    Объект реализующий TypeVarReplace

  37. class TypeVarReplacer extends AnyRef
  38. class TypeVariable extends Type with Named

    Переменная типа - т.е переменная для подстановки типов xyz.cofe.stsl.types.TypeVarReplace

  39. class WriteableField extends Field

    Поле объекта с поддержкой записи

Value Members

  1. object Fields
  2. object Fn

    Создание функции

  3. object Funs
  4. object GenericInstance
  5. object GenericParams
  6. object JvmType

    Прикладные JVM типы данных

  7. object LocatorItem
  8. object Param
  9. object Params
  10. object TObject
  11. object Type

    Предопределенные типы

  12. object TypeDescriber
  13. object TypeError extends Serializable
  14. object TypeVariable

Ungrouped