Class

io.udash.properties.model

ModelPropertyImpl

Related Doc: package model

Permalink

abstract class ModelPropertyImpl[A] extends ModelProperty[A] with single.CastableProperty[A] with ModelPropertyMacroApi[A]

Linear Supertypes
single.CastableProperty[A], single.CastableReadableProperty[A], ModelProperty[A], AbstractProperty[A], single.Property[A], AbstractReadableModelProperty[A], ModelPropertyMacroApi[A], ReadableModelProperty[A], AbstractReadableProperty[A], single.ReadableProperty[A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ModelPropertyImpl
  2. CastableProperty
  3. CastableReadableProperty
  4. ModelProperty
  5. AbstractProperty
  6. Property
  7. AbstractReadableModelProperty
  8. ModelPropertyMacroApi
  9. ReadableModelProperty
  10. AbstractReadableProperty
  11. ReadableProperty
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ModelPropertyImpl(parent: single.ReadableProperty[_], id: PropertyId)

    Permalink

Abstract Value Members

  1. abstract def initialize(): Unit

    Permalink

    Creates all sub properties and puts them in properties.

    Creates all sub properties and puts them in properties.

    Attributes
    protected
  2. abstract def internalGet: A

    Permalink
    Attributes
    protected
  3. abstract def internalSet(value: A, withCallbacks: Boolean, force: Boolean): Unit

    Permalink
    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def addValidator(f: (A) ⇒ ValidationResult): utils.Registration

    Permalink

    Adds new validator and clears current validation result.

    Adds new validator and clears current validation result. It does not fire validation process.

    Definition Classes
    AbstractProperty → Property
  5. def addValidator(v: Validator[A]): utils.Registration

    Permalink

    Adds new validator and clears current validation result.

    Adds new validator and clears current validation result. It does not fire validation process.

    Definition Classes
    AbstractProperty → Property
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def asModel(implicit ev: ModelPropertyCreator[A]): ModelProperty[A]

    Permalink

    Safely casts DirectProperty[A] to ModelProperty[A]

    Safely casts DirectProperty[A] to ModelProperty[A]

    Definition Classes
    CastablePropertyCastableReadableProperty
  8. def asSeq[B](implicit sev: <:<[A, Seq[B]], ev: SeqPropertyCreator[B, Seq]): seq.SeqProperty[B, single.CastableProperty[B]]

    Permalink

    Safely casts DirectProperty[Seq[A]] to DirectSeqProperty[A]

    Safely casts DirectProperty[Seq[A]] to DirectSeqProperty[A]

    Definition Classes
    CastablePropertyCastableReadableProperty
  9. def clearListeners(): Unit

    Permalink

    Removes all listeners from property.

    Removes all listeners from property.

    Definition Classes
    AbstractProperty → Property
  10. def clearValidators(): Unit

    Permalink

    Removes all validators from property and clears current validation result.

    Removes all validators from property and clears current validation result. It does not fire validation process.

    Definition Classes
    AbstractProperty → Property
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @throws( ... )
  12. def combine[B, O](property: single.ReadableProperty[B], combinedParent: single.ReadableProperty[_] = null)(combiner: (A, B) ⇒ O)(implicit arg0: PropertyCreator[O]): single.ReadableProperty[O]

    Permalink

    Combines two properties into a new one.

    Combines two properties into a new one. Created property will be updated after any change in the origin ones.

    B

    Type of elements in provided property.

    O

    Output property elements type.

    property

    Property[B] to combine with this.

    combinedParent

    Parent of combined property, null by default.

    combiner

    Method combining values A and B into O.

    returns

    Property[O] updated on any change in this or property.

    Definition Classes
    ReadableProperty
  13. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  14. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  15. def fireValueListeners(): Unit

    Permalink

    Fires value listeners.

    Fires value listeners.

    Attributes
    protected[io.udash.properties]
    Definition Classes
    AbstractReadableProperty → ReadableProperty
  16. def get: A

    Permalink

    returns

    Current property value.

    Definition Classes
    ModelPropertyImplReadableProperty
  17. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  18. def getSubModel[T](getter: (A) ⇒ T, key: String)(implicit arg0: ModelPropertyCreator[T]): ReadableModelProperty[T]

    Permalink
  19. def getSubProperty[T](getter: (A) ⇒ T, key: String)(implicit arg0: PropertyCreator[T]): single.Property[T]

    Permalink
  20. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  21. val id: PropertyId

    Permalink

    Unique property ID.

    Unique property ID.

    Definition Classes
    ModelPropertyImplReadableProperty
  22. var initialized: Boolean

    Permalink

    False if subproperties were not created yet.

    False if subproperties were not created yet.

    Attributes
    protected
  23. var isEmpty: Boolean

    Permalink

    True if value was never changed.

    True if value was never changed.

    Attributes
    protected
  24. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  25. def isValid: Future[ValidationResult]

    Permalink

    ModelProperty is valid if all validators return io.udash.properties.Valid and all subproperties are valid.

    ModelProperty is valid if all validators return io.udash.properties.Valid and all subproperties are valid.

    returns

    Validation result as Future, which will be completed on the validation process ending. It can fire validation process if needed.

    Definition Classes
    AbstractReadableModelProperty → AbstractReadableProperty → ReadableProperty
  26. def listen(valueListener: (A) ⇒ Any, initUpdate: Boolean = false): utils.Registration

    Permalink

    Registers listener which will be called on value change.

    Registers listener which will be called on value change.

    initUpdate

    If true, listener will be instantly triggered with current value of property.

    Definition Classes
    AbstractReadableProperty → ReadableProperty
  27. def listenOnce(valueListener: (A) ⇒ Any): utils.Registration

    Permalink

    Registers listener which will be called on the next value change.

    Registers listener which will be called on the next value change. This listener will be fired only once.

    Definition Classes
    AbstractReadableProperty → ReadableProperty
  28. final val listeners: ArrayBuffer[(A) ⇒ Any]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    AbstractReadableProperty
  29. def listenersCount(): Int

    Permalink

    Returns listeners count.

    Returns listeners count.

    Definition Classes
    AbstractReadableProperty → ReadableProperty
  30. def listenersUpdate(): Unit

    Permalink

    This method should be called when the listener is registered or removed.

    This method should be called when the listener is registered or removed.

    Attributes
    protected[io.udash.properties]
    Definition Classes
    AbstractReadableProperty → ReadableProperty
  31. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  32. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  33. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  34. final val oneTimeListeners: ArrayBuffer[utils.Registration]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    AbstractReadableProperty
  35. val parent: single.ReadableProperty[_]

    Permalink

    Parent property.

    Parent property. null if this property has no parent.

    Definition Classes
    ModelPropertyImplReadableProperty
  36. val properties: Map[String, single.Property[_]]

    Permalink
    Attributes
    protected
    Definition Classes
    AbstractReadableModelProperty
  37. lazy val readable: ReadableModelProperty[A]

    Permalink

    Ensures read-only access to this property.

    Ensures read-only access to this property.

    Definition Classes
    AbstractReadableModelProperty → ReadableModelProperty → AbstractReadableProperty → ReadableProperty
  38. macro def roSubModel[B](f: (A) ⇒ B)(implicit arg0: ModelPropertyCreator[B]): ReadableModelProperty[B]

    Permalink

    Returns child ModelProperty[B].

    Returns child ModelProperty[B].

    Definition Classes
    ReadableModelProperty
  39. macro def roSubProp[B](f: (A) ⇒ B)(implicit arg0: PropertyCreator[B]): single.ReadableProperty[B]

    Permalink

    Returns child DirectProperty[B].

    Returns child DirectProperty[B].

    Definition Classes
    ReadableModelProperty
  40. macro def roSubSeq[B](f: (A) ⇒ Seq[B])(implicit ev: SeqPropertyCreator[B, Seq]): seq.ReadableSeqProperty[B, single.CastableReadableProperty[B]]

    Permalink

    Returns child DirectSeqProperty[B]

    Returns child DirectSeqProperty[B]

    Definition Classes
    ReadableModelProperty
  41. def set(t: A, force: Boolean): Unit

    Permalink

    Changes current property value.

    Changes current property value. Fires value change listeners.

    t

    Should not be null!

    force

    If true, the value change listeners will be fired even if value didn't change.

    Definition Classes
    ModelPropertyImplProperty
  42. def setInitValue(t: A): Unit

    Permalink

    Changes current property value.

    Changes current property value. Does not fire value change listeners.

    Definition Classes
    ModelPropertyImplProperty
  43. def setSubProp[T](p: single.Property[T], v: T, withCallbacks: Boolean, force: Boolean): Unit

    Permalink
    Attributes
    protected
  44. def streamTo[B](target: single.Property[B], initUpdate: Boolean = true)(transformer: (A) ⇒ B): utils.Registration

    Permalink

    Streams value changes to the target property.

    Streams value changes to the target property. It is not as strong relation as transform, because target can change value independently.

    Definition Classes
    AbstractReadableProperty → ReadableProperty
  45. macro def subModel[B](f: (A) ⇒ B)(implicit arg0: ModelPropertyCreator[B]): ModelProperty[B]

    Permalink

    Returns child ModelProperty[B].

    Returns child ModelProperty[B].

    Definition Classes
    ModelProperty
  46. macro def subProp[B](f: (A) ⇒ B)(implicit arg0: PropertyCreator[B]): single.Property[B]

    Permalink

    Returns child DirectProperty[B].

    Returns child DirectProperty[B].

    Definition Classes
    ModelProperty
  47. macro def subSeq[B, SeqTpe[T] <: Seq[T]](f: (A) ⇒ SeqTpe[B])(implicit ev: SeqPropertyCreator[B, SeqTpe]): seq.SeqProperty[B, single.CastableProperty[B]]

    Permalink

    Returns child DirectSeqProperty[B] of any Seq-like field.

    Returns child DirectSeqProperty[B] of any Seq-like field. Note that due to SeqProperty mutable nature, there may be performance overhead while calling subSeq on fields of type more specific than scala.collection.Seq, e.g. scala.collection.immutable.List or scala.collection.immutable.Seq

    Definition Classes
    ModelProperty
  48. def sync[B](p: single.Property[B])(transformer: (A) ⇒ B, revert: (B) ⇒ A): utils.Registration

    Permalink

    Bidirectionally synchronizes Property[B] with this.

    Bidirectionally synchronizes Property[B] with this. The transformed value is synchronized from this to Property[B] on initialization.

    B

    Type of new Property.

    p

    Property to be synchronized with this.

    transformer

    Method transforming type A of existing Property to type B of new Property.

    revert

    Method transforming type B of new Property to type A of existing Property.

    returns

    Bidirectional registration between existing and new property.

    Definition Classes
    AbstractProperty → Property
  49. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  50. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  51. def touch(): Unit

    Permalink

    Fires value change listeners with current value and clears validation result.

    Fires value change listeners with current value and clears validation result.

    Definition Classes
    ModelPropertyImplProperty
  52. def transform[B](transformer: (A) ⇒ B, revert: (B) ⇒ A): single.Property[B]

    Permalink

    Creates Property[B] linked to this.

    Creates Property[B] linked to this. Changes will be bidirectionally synchronized between this and new property.

    B

    Type of new Property.

    transformer

    Method transforming type A of existing Property to type B of new Property.

    revert

    Method transforming type B of new Property to type A of existing Property.

    returns

    New Property[B], which will be synchronised with original Property[A].

    Definition Classes
    AbstractProperty → Property
  53. def transform[B](transformer: (A) ⇒ B): single.ReadableProperty[B]

    Permalink

    Creates ReadableProperty[B] linked to this.

    Creates ReadableProperty[B] linked to this. Changes will be synchronized with this.

    B

    Type of new Property.

    transformer

    Method transforming type A of existing Property to type B of new Property.

    returns

    New ReadableProperty[B], which will be synchronised with original ReadableProperty[A].

    Definition Classes
    AbstractReadableProperty → ReadableProperty
  54. def transformToSeq[B](transformer: (A) ⇒ Seq[B], revert: (Seq[B]) ⇒ A)(implicit arg0: PropertyCreator[B]): seq.SeqProperty[B, single.Property[B]]

    Permalink

    Creates SeqProperty[B] linked to this.

    Creates SeqProperty[B] linked to this. Changes will be synchronized with this in both directions.

    B

    Type of elements in new SeqProperty.

    transformer

    Method transforming type A of existing Property to type Seq[B] of new Property.

    revert

    Method transforming type Seq[B] to A.

    returns

    New ReadableSeqProperty[B], which will be synchronised with original Property[A].

    Definition Classes
    AbstractProperty → Property
  55. def transformToSeq[B](transformer: (A) ⇒ Seq[B])(implicit arg0: PropertyCreator[B]): seq.ReadableSeqProperty[B, single.ReadableProperty[B]]

    Permalink

    Creates ReadableSeqProperty[B] linked to this.

    Creates ReadableSeqProperty[B] linked to this. Changes will be synchronized with this.

    B

    Type of elements in new SeqProperty.

    transformer

    Method transforming type A of existing Property to type Seq[B] of new Property.

    returns

    New ReadableSeqProperty[B], which will be synchronised with original ReadableProperty[A].

    Definition Classes
    AbstractReadableProperty → ReadableProperty
  56. lazy val valid: single.ReadableProperty[ValidationResult]

    Permalink

    Property containing validation result.

    Property containing validation result.

    Definition Classes
    AbstractReadableProperty → ReadableProperty
  57. def validate(): Unit

    Permalink

    Triggers validation.

    Triggers validation.

    Attributes
    protected[io.udash.properties]
    Definition Classes
    AbstractReadableProperty → ReadableProperty
  58. final lazy val validationProperty: ValidationProperty[A]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    AbstractReadableProperty
  59. var validationResult: Future[ValidationResult]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    AbstractReadableProperty
  60. final val validators: Buffer[Validator[A]]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    AbstractReadableProperty
  61. def valueChanged(): Unit

    Permalink

    This method should be called when the value has changed.

    This method should be called when the value has changed.

    Attributes
    protected[io.udash.properties]
    Definition Classes
    ModelPropertyImpl → AbstractReadableProperty → ReadableProperty
  62. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  63. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  64. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  65. def wrapListenerRegistration(reg: utils.Registration): utils.Registration

    Permalink
    Attributes
    protected
    Definition Classes
    AbstractReadableProperty
  66. def wrapOneTimeListenerRegistration(reg: utils.Registration): utils.Registration

    Permalink
    Attributes
    protected
    Definition Classes
    AbstractReadableProperty

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from single.CastableProperty[A]

Inherited from ModelProperty[A]

Inherited from AbstractProperty[A]

Inherited from single.Property[A]

Inherited from AbstractReadableModelProperty[A]

Inherited from ModelPropertyMacroApi[A]

Inherited from ReadableModelProperty[A]

Inherited from AbstractReadableProperty[A]

Inherited from single.ReadableProperty[A]

Inherited from AnyRef

Inherited from Any

Ungrouped