Trait/Object

net.liftweb.mapper

MappedForeignKey

Related Docs: object MappedForeignKey | package mapper

Permalink

trait MappedForeignKey[KeyType, MyOwner <: Mapper[MyOwner], Other <: KeyedMapper[KeyType, Other]] extends MappedField[KeyType, MyOwner] with LifecycleCallbacks

The Trait that defines a field that is mapped to a foreign key

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. MappedForeignKey
  2. LifecycleCallbacks
  3. MappedField
  4. Equals
  5. PSettableValueHolder
  6. PValueHolder
  7. BaseOwnedMappedField
  8. BaseMappedField
  9. Serializable
  10. Serializable
  11. MixableMappedField
  12. BaseField
  13. FieldContainer
  14. SettableField
  15. SettableValueHolder
  16. Settable
  17. ReadableField
  18. ValueHolder
  19. FieldIdentifier
  20. Bindable
  21. SelectableField
  22. TypedField
  23. AnyRef
  24. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. abstract type FieldType <: KeyType

    Permalink
  2. type TheOwnerType = MyOwner

    Permalink

    Will be set to the type of the owner of the field

    Will be set to the type of the owner of the field

    Definition Classes
    MappedFieldMixableMappedField
  3. type ValueType = KeyType

    Permalink

    Will be set to the type of the field

    Will be set to the type of the field

    Definition Classes
    MappedFieldPValueHolderValueHolder

Abstract Value Members

  1. abstract def asJsExp: JsExp

    Permalink
    Definition Classes
    BaseMappedField
  2. abstract def asJsonValue: Box[JValue]

    Permalink
    Definition Classes
    BaseMappedField
  3. abstract def buildSetActualValue(accessor: Method, inst: AnyRef, columnName: String): (MyOwner, AnyRef) ⇒ Unit

    Permalink
    Definition Classes
    MappedField
  4. abstract def buildSetBooleanValue(accessor: Method, columnName: String): (MyOwner, Boolean, Boolean) ⇒ Unit

    Permalink
    Definition Classes
    MappedField
  5. abstract def buildSetDateValue(accessor: Method, columnName: String): (MyOwner, Date) ⇒ Unit

    Permalink
    Definition Classes
    MappedField
  6. abstract def buildSetLongValue(accessor: Method, columnName: String): (MyOwner, Long, Boolean) ⇒ Unit

    Permalink
    Definition Classes
    MappedField
  7. abstract def buildSetStringValue(accessor: Method, columnName: String): (MyOwner, String) ⇒ Unit

    Permalink
    Definition Classes
    MappedField
  8. abstract def dbFieldClass: Class[KeyType]

    Permalink

    What is the real class that corresponds to FieldType

    What is the real class that corresponds to FieldType

    Definition Classes
    TypedField
  9. abstract def dbKeyToTable: KeyedMetaMapper[KeyType, Other]

    Permalink
  10. abstract def defaultValue: KeyType

    Permalink

    The default value for the field

    The default value for the field

    Definition Classes
    TypedField
  11. abstract def defined_?: Boolean

    Permalink

    Is the key defined

  12. abstract def doneWithSave(): Unit

    Permalink

    Called after the field is saved to the database

    Called after the field is saved to the database

    Attributes
    protected[net.liftweb.mapper]
    Definition Classes
    BaseMappedField
  13. abstract def fieldCreatorString(dbType: DriverType, colName: String): String

    Permalink

    Given the driver type, return the string required to create the column in the database

    Given the driver type, return the string required to create the column in the database

    Definition Classes
    MappedFieldBaseMappedField
  14. abstract def fieldOwner: MyOwner

    Permalink

    Return the owner of this field

    Return the owner of this field

    Definition Classes
    MappedField
  15. abstract def foreignMeta: KeyedMetaMapper[KeyType, Other]

    Permalink

    What's the MetaMapper for the foreign key

  16. abstract def i_is_!: KeyType

    Permalink

    The actual value of the field

    The actual value of the field

    Attributes
    protected
    Definition Classes
    MappedField
  17. abstract def i_obscure_!(in: KeyType): KeyType

    Permalink

    Obscure the incoming value to a "safe" value (e.g., if there are not enough rights to view the entire social security number 123-45-5678, this method might return ***-**-*678

    Obscure the incoming value to a "safe" value (e.g., if there are not enough rights to view the entire social security number 123-45-5678, this method might return ***-**-*678

    Attributes
    protected
    Definition Classes
    MappedField
  18. abstract def i_was_!: KeyType

    Permalink

    The value of the field when it was pulled from the DB

    The value of the field when it was pulled from the DB

    Attributes
    protected
    Definition Classes
    MappedField
  19. abstract def jdbcFriendly(field: String): AnyRef

    Permalink

    Get a JDBC friendly representation of the named field (this is used for MappedFields that correspond to more than 1 column in the database.)

    Get a JDBC friendly representation of the named field (this is used for MappedFields that correspond to more than 1 column in the database.)

    field

    -- the name of the field being mapped to

    Definition Classes
    MappedFieldBaseMappedField
  20. abstract def manifest: scala.reflect.api.JavaUniverse.TypeTag[KeyType]

    Permalink
    Definition Classes
    MappedField
  21. abstract def real_convertToJDBCFriendly(value: KeyType): AnyRef

    Permalink
    Attributes
    protected
    Definition Classes
    MappedField
  22. abstract def real_i_set_!(value: KeyType): KeyType

    Permalink

    Must be implemented to store the value of the field

    Must be implemented to store the value of the field

    Attributes
    protected
    Definition Classes
    MappedField
  23. abstract def setFromAny(value: Any): KeyType

    Permalink

    Attempt to figure out what the incoming value is and set the field to that value.

    Attempt to figure out what the incoming value is and set the field to that value. Return true if the value could be assigned

    Definition Classes
    MappedField
  24. abstract def sourceInfoMetadata(): SourceFieldMetadata { type ST = KeyType }

    Permalink

    Get the source field metadata for the field

    Get the source field metadata for the field

    returns

    the source field metadata for the field

    Definition Classes
    MappedField
  25. abstract def targetSQLType: Int

    Permalink

    Get the JDBC SQL Type for this field

    Get the JDBC SQL Type for this field

    Definition Classes
    MappedFieldBaseMappedField

Concrete Value Members

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  3. def :=(v: KeyType): KeyType

    Permalink
    Definition Classes
    MappedField
  4. def :=[Q](v: Q)(implicit arg0: (Q) ⇒ KeyType): KeyType

    Permalink
    Definition Classes
    MappedField
  5. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  6. final def _dbColumnNameLC: String

    Permalink

    The forced lower case column names

    The forced lower case column names

    Definition Classes
    BaseMappedField
  7. def _toForm: Box[Elem]

    Permalink

    Create an input field for the item

    Create an input field for the item

    Definition Classes
    MappedForeignKeyMappedFieldBaseMappedField
  8. def actualField(actual: MyOwner): MappedField[KeyType, MyOwner]

    Permalink

    Get the field that this prototypical field represents

    Get the field that this prototypical field represents

    actual

    the object to find the field on

    Definition Classes
    MappedField
  9. def afterCreate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  10. def afterDelete: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  11. def afterSave: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  12. def afterUpdate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  13. def afterValidation: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  14. def afterValidationOnCreate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  15. def afterValidationOnUpdate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  16. def allFields: Seq[BaseField]

    Permalink
    Definition Classes
    BaseFieldFieldContainer
  17. def appendFieldId(in: Elem): Elem

    Permalink

    If the field has a defined fieldId, append it

    If the field has a defined fieldId, append it

    Attributes
    protected
    Definition Classes
    MappedField
  18. def apply(v: Other): MyOwner

    Permalink

    Set the value from an instance of the foreign mapper class.

    Set the value from an instance of the foreign mapper class. obj will be set to Full(v)

    returns

    the Mapper containing this field

  19. def apply(v: Box[Other]): MyOwner

    Permalink

    Set the value from a possible instance of the foreign mapper class.

    Set the value from a possible instance of the foreign mapper class. v will be cached in obj. If v is Empty, set the value to defaultValue (-1)

    returns

    the Mapper containing this field

  20. def apply(v: KeyType): MyOwner

    Permalink
    Definition Classes
    MappedField
  21. def apply[Q](v: Q)(implicit arg0: (Q) ⇒ KeyType): MyOwner

    Permalink
    Definition Classes
    MappedField
  22. def asHtml: Node

    Permalink

    Default read-only rendering of field

    Default read-only rendering of field

    Definition Classes
    MappedFieldBaseMappedFieldMixableMappedFieldReadableFieldBindable
  23. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  24. def asJs: List[(String, JsExp)]

    Permalink
    Definition Classes
    BaseMappedField
  25. def asJsonField: Box[JField]

    Permalink
    Definition Classes
    BaseMappedField
  26. def asString: String

    Permalink

    Return the field name and field value, delimited by an '='

    Return the field name and field value, delimited by an '='

    Definition Classes
    MappedFieldBaseMappedFieldMixableMappedField
  27. def atomicUpdate(f: (ValueType) ⇒ ValueType): ValueType

    Permalink

    Perform an atomic update of this Settable.

    Perform an atomic update of this Settable. The current value is passed to the function and the ValueHolder is set to the result of the function. This is enclosed in the performAtomicOperation method which will, by default, synchronize this instance

    Definition Classes
    Settable
  28. def beforeCreate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  29. def beforeDelete: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  30. def beforeSave: Unit

    Permalink

    This method, which gets called when the mapper class is going to be saved, sets the field's value from obj if it's set to the default (!defined_?).

    This method, which gets called when the mapper class is going to be saved, sets the field's value from obj if it's set to the default (!defined_?). Overrides LifecycleCallbacks.beforeSave

    Definition Classes
    MappedForeignKeyLifecycleCallbacks
  31. def beforeUpdate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  32. def beforeValidation: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  33. def beforeValidationOnCreate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  34. def beforeValidationOnUpdate: Unit

    Permalink
    Definition Classes
    LifecycleCallbacks
  35. def cached_?: Boolean

    Permalink

    Is the obj field cached

  36. def calcFieldName: String

    Permalink
    Definition Classes
    MappedField
  37. def canEqual(that: Any): Boolean

    Permalink
    Definition Classes
    MappedField → Equals
  38. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. final def convertToJDBCFriendly(value: KeyType): AnyRef

    Permalink
    Definition Classes
    MappedField
  40. def dbAddedColumn: Box[() ⇒ Unit]

    Permalink

    Called when a column has been added to the database via Schemifier

    Called when a column has been added to the database via Schemifier

    Definition Classes
    MappedFieldBaseMappedField
  41. def dbAddedIndex: Box[() ⇒ Unit]

    Permalink

    Called when a column has indexed via Schemifier

    Called when a column has indexed via Schemifier

    Definition Classes
    MappedFieldBaseMappedField
  42. def dbAutogenerated_?: Boolean

    Permalink

    Is the primary key autogenerated

    Is the primary key autogenerated

    Definition Classes
    BaseMappedField
  43. def dbColumnCount: Int

    Permalink

    The number of database columns that this field represents

    The number of database columns that this field represents

    Definition Classes
    MappedFieldBaseMappedFieldMixableMappedField
  44. def dbColumnName: String

    Permalink
    Definition Classes
    MappedFieldBaseMappedField
  45. def dbColumnNames(in: String): List[String]

    Permalink
    Definition Classes
    MappedFieldBaseMappedField
  46. def dbDisplay_?: Boolean

    Permalink
    Definition Classes
    BaseMappedField
  47. def dbForeignKey_?: Boolean

    Permalink

    Is the field a foreign key reference

    Is the field a foreign key reference

    Definition Classes
    MappedFieldBaseMappedFieldMixableMappedField
  48. def dbIgnoreSQLType_?: Boolean

    Permalink

    Do we ignore the targetSQLType for setObject

    Do we ignore the targetSQLType for setObject

    Definition Classes
    BaseMappedField
  49. def dbIncludeInForm_?: Boolean

    Permalink
    Definition Classes
    BaseMappedField
  50. def dbIndexFieldIndicatesSaved_?: Boolean

    Permalink

    override this method in indexed fields to indicate that the field has been saved

    override this method in indexed fields to indicate that the field has been saved

    Definition Classes
    MappedField
  51. def dbIndexed_?: Boolean

    Permalink

    Should the field be indexed?

    Should the field be indexed?

    Definition Classes
    MappedFieldBaseMappedFieldMixableMappedField
  52. def dbNotNull_?: Boolean

    Permalink

    Set to true if the field should be created as NOT NULL

    Set to true if the field should be created as NOT NULL

    Definition Classes
    MappedFieldBaseMappedFieldMixableMappedField
  53. def dbPrimaryKey_?: Boolean

    Permalink

    Is the field the table's primary key

    Is the field the table's primary key

    Definition Classes
    MappedFieldBaseMappedFieldMixableMappedField
  54. def dbSelectString: String

    Permalink
    Definition Classes
    MappedFieldSelectableField
  55. def dirty_?(b: Boolean): Unit

    Permalink

    Make the field dirty

    Make the field dirty

    Attributes
    protected
    Definition Classes
    MappedForeignKeyMappedField
  56. def dirty_?: Boolean

    Permalink

    Is the field dirty (has it been changed since the record was loaded from the database

    Is the field dirty (has it been changed since the record was loaded from the database

    Definition Classes
    MappedField
  57. def displayHtml: NodeSeq

    Permalink
    Definition Classes
    ReadableField
  58. def displayName: String

    Permalink

    The display name of this field (e.g., "First Name")

    The display name of this field (e.g., "First Name")

    Definition Classes
    MappedFieldReadableField
  59. def displayNameHtml: Box[NodeSeq]

    Permalink
    Definition Classes
    ReadableField
  60. def doField(inst: MyOwner, meth: Method, func: PartialFunction[MappedField[KeyType, MyOwner], Unit]): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    MappedField
  61. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  62. def equals(other: Any): Boolean

    Permalink

    Does the "right thing" comparing mapped fields

    Does the "right thing" comparing mapped fields

    Definition Classes
    MappedForeignKeyMappedField → Equals → AnyRef → Any
  63. def fieldCreatorString(dbType: DriverType): List[String]

    Permalink

    Given the driver type, return a list of SQL creation strings for the columns represented by this field

    Given the driver type, return a list of SQL creation strings for the columns represented by this field

    Definition Classes
    MappedFieldBaseMappedField
  64. def fieldId: Option[NodeSeq]

    Permalink

    A unique 'id' for the field for form generation

    A unique 'id' for the field for form generation

    Definition Classes
    SettableField
  65. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  66. def foreign: Box[Other]

    Permalink

    Some people prefer the name foreign to materialize the foreign reference.

    Some people prefer the name foreign to materialize the foreign reference. This is a proxy to the obj method.

  67. def formElemAttrs: Seq[http.SHtml.ElemAttr]

    Permalink

    What form elements are we going to add to this field?

    What form elements are we going to add to this field?

    Definition Classes
    BaseMappedField
  68. def formInputType: String

    Permalink

    When building the form field, what's the input element's type attribute.

    When building the form field, what's the input element's type attribute. Defaults to 'text', but change to 'email' or other HTML5 values.

    Attributes
    protected
    Definition Classes
    MappedField
  69. def get: KeyType

    Permalink

    Convert the field to its "context free" type (e.g., String, Int, Long, etc.) If there are no read permissions, the value will be obscured

    Convert the field to its "context free" type (e.g., String, Int, Long, etc.) If there are no read permissions, the value will be obscured

    Definition Classes
    MappedFieldValueHolder
  70. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  71. def getField(inst: MyOwner, meth: Method): MappedField[KeyType, MyOwner]

    Permalink
    Attributes
    protected
    Definition Classes
    MappedField
  72. def hashCode(): Int

    Permalink
    Definition Classes
    MappedField → AnyRef → Any
  73. def helpAsHtml: Box[NodeSeq]

    Permalink
    Definition Classes
    SettableField
  74. final def i_set_!(value: KeyType): KeyType

    Permalink
    Attributes
    protected
    Definition Classes
    MappedField
  75. def ignoreField_?: Boolean

    Permalink

    Should the field be ignored by the OR Mapper?

    Should the field be ignored by the OR Mapper?

    Definition Classes
    MappedField
  76. def immutableMsg: NodeSeq

    Permalink
  77. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  78. def jdbcFriendly: AnyRef

    Permalink

    Get a JDBC friendly object for the part of this field that maps to the first column in the database

    Get a JDBC friendly object for the part of this field that maps to the first column in the database

    Definition Classes
    MappedFieldBaseMappedField
  79. final def name: String

    Permalink

    The name of this field

    The name of this field

    Definition Classes
    MappedFieldReadableField
  80. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  81. def notNullAppender(): String

    Permalink
    Definition Classes
    MappedField
  82. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  83. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  84. def obj: Box[Other]

    Permalink

    Load and cache the record that this field references

  85. def performAtomicOperation[T](f: ⇒ T): T

    Permalink

    Perform an atomic operation on the Settable.

    Perform an atomic operation on the Settable. By default synchronizes the instance, but it could use other mechanisms

    Definition Classes
    Settable
  86. def primeObj(obj: Box[Other]): Unit

    Permalink

    Prime the reference of this FK reference

  87. def readPermission_?: Boolean

    Permalink

    Given the current execution state, can the field be read?

    Given the current execution state, can the field be read?

    Definition Classes
    MappedField
  88. def renderJs_?: Boolean

    Permalink
    Definition Classes
    BaseMappedField
  89. def required_?: Boolean

    Permalink

    Is the Field required (and will have a style designating it as such)

    Is the Field required (and will have a style designating it as such)

    Definition Classes
    SettableField
  90. def resetDirty: Unit

    Permalink
    Definition Classes
    MappedField
  91. def runFilters(in: KeyType, filter: List[(KeyType) ⇒ KeyType]): KeyType

    Permalink
    Definition Classes
    MappedField
  92. final def safe_?: Boolean

    Permalink

    Are we in "safe" mode (i.e., the value of the field can be read or written without any security checks.)

    Are we in "safe" mode (i.e., the value of the field can be read or written without any security checks.)

    Definition Classes
    MappedField
  93. def set(value: KeyType): KeyType

    Permalink

    Set the field to the value

    Set the field to the value

    Definition Classes
    MappedFieldSettable
  94. def setFilter: List[(KeyType) ⇒ KeyType]

    Permalink

    A list of functions that transform the value before it is set.

    A list of functions that transform the value before it is set. The transformations are also applied before the value is used in a query. Typical applications of this are trimming and/or toLowerCase-ing strings

    Definition Classes
    MappedFieldSettableField
  95. def set_?(value: Box[KeyType]): Box[KeyType]

    Permalink

    Set the field to the Box value if the Box is Full

    Set the field to the Box value if the Box is Full

    Definition Classes
    MappedField
  96. def shouldDisplay_?: Boolean

    Permalink

    Given the current context, should this field be displayed

    Given the current context, should this field be displayed

    Definition Classes
    ReadableField
  97. def show_?: Boolean

    Permalink

    Given the current state of things, should this field be shown

    Given the current state of things, should this field be shown

    Definition Classes
    SettableField
  98. def sourceFieldInfo(): SourceFieldInfo { type T = KeyType }

    Permalink
    Definition Classes
    MappedField
  99. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  100. def targetSQLType(field: String): Int

    Permalink

    Get the JDBC SQL Type for this field

    Get the JDBC SQL Type for this field

    Definition Classes
    MappedFieldBaseMappedField
  101. def toForm: Box[NodeSeq]

    Permalink

    Create an input field for the item

    Create an input field for the item

    Definition Classes
    MappedFieldSettableField
  102. def toFormAppendedAttributes: MetaData

    Permalink
    Definition Classes
    MappedField
  103. def toString(): String

    Permalink
    Definition Classes
    MappedField → AnyRef → Any
  104. def uniqueFieldId: Box[String]

    Permalink

    The unique field id is the field name and the mapper name

    The unique field id is the field name and the mapper name

    Definition Classes
    MappedFieldFieldIdentifier
  105. def update[Q](v: Q)(implicit arg0: (Q) ⇒ KeyType): Unit

    Permalink

    Assignment from the underlying type.

    Assignment from the underlying type. It's ugly, but:
    field() = new_value
    field set new_value
    field.set(new_value)
    are all the same

    Definition Classes
    MappedField
  106. def uploadField_?: Boolean

    Permalink

    Is this an upload field so that a form that includes this field must be multi-part mime

    Is this an upload field so that a form that includes this field must be multi-part mime

    Definition Classes
    SettableField
  107. val valHasObj: (Long) ⇒ List[FieldError]

    Permalink

    A validation function that checks that obj is nonempty

  108. def validSelectValues: Box[List[(KeyType, String)]]

    Permalink
  109. def validate: List[FieldError]

    Permalink

    Validate this field and return a list of Validation Issues

    Validate this field and return a list of Validation Issues

    Definition Classes
    MappedFieldSettableField
  110. def validations: List[(KeyType) ⇒ List[FieldError]]

    Permalink
    Definition Classes
    MappedFieldSettableField
  111. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  112. final def wait(arg0: Long, arg1: Int): Unit

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  114. def was: KeyType

    Permalink

    What value was the field's value when it was pulled from the DB?

    What value was the field's value when it was pulled from the DB?

    Definition Classes
    MappedField
  115. def writePermission_?: Boolean

    Permalink

    Given the current execution state, can the field be written?

    Given the current execution state, can the field be written?

    Definition Classes
    MappedField

Inherited from LifecycleCallbacks

Inherited from MappedField[KeyType, MyOwner]

Inherited from Equals

Inherited from PSettableValueHolder[KeyType]

Inherited from PValueHolder[KeyType]

Inherited from BaseOwnedMappedField[MyOwner]

Inherited from BaseMappedField

Inherited from Serializable

Inherited from Serializable

Inherited from MixableMappedField

Inherited from BaseField

Inherited from FieldContainer

Inherited from SettableField

Inherited from SettableValueHolder

Inherited from Settable

Inherited from ReadableField

Inherited from ValueHolder

Inherited from FieldIdentifier

Inherited from Bindable

Inherited from SelectableField

Inherited from TypedField[KeyType]

Inherited from AnyRef

Inherited from Any

Ungrouped