class GroupAdministration extends AnyRef
This class handles the joining, leaving, and reassigning of group members. A group's state is stored in a GroupResult. Group dispatchers manage group channels (the handlers of the WebSockets). Members of a group are identified by the study result ID (which represents a particular study run).
- Annotations
- @Singleton()
- Alphabetic
- By Inheritance
- GroupAdministration
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new GroupAdministration(groupDispatcherRegistry: GroupDispatcherRegistry, studyResultDao: StudyResultDao, groupResultDao: GroupResultDao, jpa: JPAApi)
- Annotations
- @Inject()
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def closeGroupChannel(studyResultId: Long, groupResultId: Long): Unit
Closes the group channel for the study result specified by its ID that belongs to the group dispatcher specified by its group result ID.
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def join(studyResult: StudyResult, batch: Batch): GroupResult
Joins a group or creates a new group.
Joins a group or creates a new group.
It looks in the database whether we have an incomplete GroupResult (state STARTED, maxActiveMember not reached, maxTotalMembers not reached). If there is none, create a new GroupResult.
- def leave(studyResult: StudyResult): Unit
Leaves the group that this study result is a member of.
Leaves the group that this study result is a member of. Moves the study result in its group result into history. Closes the group channel. Finishes a group if necessary. We don't need a JPA transaction here because the transaction is already started by the calling methods.
- def leaveGroup(studyResult: StudyResult): Unit
Checks if the given study result belongs to a group study and then leaves the group
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def reassign(studyResult: StudyResult, batch: Batch): Boolean
Reassigns this study result to a different group if possible.
Reassigns this study result to a different group if possible. It moves the study result to a different group result and the group channel to a different group dispatcher (corresponding to the different group result).
- returns
returns true if the study result was reassigned, false if not.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()