org.positronicnet.orm

SoftDeleteQueries

trait SoftDeleteQueries [T <: ManagedRecord] extends Scope[T]

Mixin for Scopes on a SoftDelete-supporting record class, to give useful information about subject records...

Linear Supertypes
Scope[T], NotifierDelegator[IndexedSeq[T]], Notifier[IndexedSeq[T]], NotificationManager, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. SoftDeleteQueries
  2. Scope
  3. NotifierDelegator
  4. Notifier
  5. NotificationManager
  6. AnyRef
  7. Any
Visibility
  1. Public
  2. All

Abstract Value Members

  1. val baseQuery : org.positronicnet.content.ContentQuery[_, _]

    ContentQuery whose conditions match those declared for the Scope.

    ContentQuery whose conditions match those declared for the Scope.

    Attributes
    abstract
    Definition Classes
    Scope
  2. def cursorNotifier [T] (thunk: ⇒ T): Notifier[T]

    Attributes
    abstract
    Definition Classes
    NotificationManager
  3. def cursorQuery [Q, R] (initialVal: Q)(func: (Q) ⇒ R): NonSharedValueQuery[Q, R]

    Attributes
    abstract
    Definition Classes
    NotificationManager
  4. def doChange (thunk: ⇒ Unit): Unit

    Attributes
    abstract
    Definition Classes
    NotificationManager
  5. val facility : AppFacility

    AppFacility associated with the content source.

    AppFacility associated with the content source.

    Attributes
    abstract
    Definition Classes
    Scope
  6. def noteChange : Unit

    Attributes
    abstract
    Definition Classes
    NotificationManager
  7. def onThread (thunk: ⇒ Unit): Unit

    Attributes
    abstract
    Definition Classes
    NotificationManager
  8. def valueNotifier [T] (thunk: ⇒ T): CachingNotifier[T]

    Attributes
    abstract
    Definition Classes
    NotificationManager
  9. def valueQuery [Q, R] (initialVal: Q)(func: (Q) ⇒ R): ValueQuery[Q, R]

    Attributes
    abstract
    Definition Classes
    NotificationManager

Concrete Value Members

  1. def ! (action: Action[IndexedSeq[T]]): Unit

    Perform the action, usually on a worker thread associated with this notifier.

    Perform the action, usually on a worker thread associated with this notifier. Results may be posted back to the calling thread, viz. the conventions documented in org.positronicnet.notifications.Actions.

    Definition Classes
    ScopeNotifierDelegatorNotifier
  2. def != (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  3. def != (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  4. def ## (): Int

    Attributes
    final
    Definition Classes
    AnyRef → Any
  5. def == (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  6. def == (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  7. def asInstanceOf [T0] : T0

    Attributes
    final
    Definition Classes
    Any
  8. def clone (): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  9. lazy val count : CachingNotifier[Long]

    Notifier which can be used to fetch, or to receive updates on, the number of records matching the scope's conditions.

    Notifier which can be used to fetch, or to receive updates on, the number of records matching the scope's conditions. One usage pattern:

        Bugs.count ! AddWatcher( this ) { bugCount =>
          if (bugCount == 0) {
            startActivity( new Intent( this, classOf[ CelebrationActivity ])
            Bugs ! StopWatcher( this )
            finish
          }
        }
    

    The onChangeTo method in PositronicActivityHelpers can simplify this a bit... but I digress.

    Note that count is supported only if it is supported by the underlying ContentRepository; e.g., by databases, but not by ContentProviders.

    Definition Classes
    Scope
  10. def countQuery [Q] (initial: Q)(fn: (Q) ⇒ Scope[T]): ValueQuery[Q, Long]

    As for recordsQuery, but returns a notifier of the count of records matching the extra conditions.

    As for recordsQuery, but returns a notifier of the count of records matching the extra conditions.

    Definition Classes
    Scope
  11. def eq (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  12. def equals (arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. def fetchOnThisThread : IndexedSeq[T]

    Synchronously fetch the value being monitored by this Notifier.

    Synchronously fetch the value being monitored by this Notifier.

    Definition Classes
    NotifierDelegatorNotifier
  14. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  15. def findOnThisThread (id: RecordId[T]): T

    Find the record with the given id, if it exists, running the query on the current thread, and returning it as the value.

    Find the record with the given id, if it exists, running the query on the current thread, and returning it as the value.

    XXX should only find it if it matches conditions of the scope, as per Rails.

    Definition Classes
    Scope
  16. lazy val fullQuery : org.positronicnet.content.ContentQuery[_, _]

    ContentQuery whose conditions match those for the records in scope.

    ContentQuery whose conditions match those for the records in scope. Ordinarily the same as baseQuery, but some RecordManagers may add extra conditions to, e.g., make soft-deleted records invisible from an ordinary fetch.

    Definition Classes
    Scope
  17. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef
  18. def hasDeleted : CachingNotifier[Boolean]

    org.positronicnet.notications.Notifier for whether this Scope has any deleted records within it:

    org.positronicnet.notications.Notifier for whether this Scope has any deleted records within it:

        myList.items.hasDeleted ! Fetch{ hasDeleted => {
          if ( hasDeleted )
            myList.items ! Undelete
          else
            toast( R.string.undeletes_exhausted )
        }}
    
  19. def hashCode (): Int

    Definition Classes
    AnyRef → Any
  20. def isInstanceOf [T0] : Boolean

    Attributes
    final
    Definition Classes
    Any
  21. def limit (lim: Int): Scope[T]

    Produce a modified subscope which supplies at most a given number of records.

    Produce a modified subscope which supplies at most a given number of records. The string supplied is used directly in a SQL limit clause. May not be supported by all repositories; in particular, it is not supported by ContentProviders.

    Definition Classes
    Scope
  22. def limit (str: String): Scope[T]

    Produce a modified subscope which supplies at most a given number of records.

    Produce a modified subscope which supplies at most a given number of records. The string supplied is used directly in a SQL limit clause. May not be supported by all repositories; in particular, it is not supported by ContentProviders.

    Definition Classes
    Scope
  23. def ne (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  24. def notifierDelegate : CachingNotifier[IndexedSeq[T]]

    The Notifier to which the delegator forwards, well.

    The Notifier to which the delegator forwards, well... everything here.

    Definition Classes
    ScopeNotifierDelegator
  25. def notify (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  26. def notifyAll (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  27. def numDeleted : CachingNotifier[Long]

    As hasDeleted, but notifies for the number of deleted records.

  28. def onThisThread (action: Action[IndexedSeq[T]]): Unit

    Perform the action, synchronously on the calling thread.

    Perform the action, synchronously on the calling thread.

    Definition Classes
    ScopeNotifierDelegatorNotifier
  29. def order (str: String): Scope[T]

    Produce a modified subscope which supplies records in a particular order.

    Produce a modified subscope which supplies records in a particular order. The string supplied is used directly in a SQL order clause (or passed to the underlying ContentProvider, if appropriate).

    Definition Classes
    Scope
  30. lazy val records : CachingNotifier[IndexedSeq[T]]

    Definition Classes
    Scope
  31. def recordsQuery [Q] (initial: Q)(fn: (Q) ⇒ Scope[T]): ValueQuery[Q, IndexedSeq[T]]

    Returns a notifier for a subset of the records covered by this scope, matching extra conditions, which can be changed later by sending a Requery message.

    Returns a notifier for a subset of the records covered by this scope, matching extra conditions, which can be changed later by sending a Requery message.

    This can be used, for example, as the source for an IndexedSeqSourceAdapter, which displays the rows matching the user's "current search condition", whatever it may be, and changes when the condition changes, but without having to rewire the IndexedSeqSourceAdapter, perhaps something like so:

        val matchingBugs =
          Bugs.recordsQuery( "" ){ pattern =>
            Bugs.where( "tag_line like ?", pattern )
          }
    
         // ... later ...
    
        matchingBugs ! Requery( "newpattern" )
    

    The Requery will cause any declared watchers of matchingBugs to be notified of the new query result.

    Definition Classes
    Scope
  32. def subScopeFor (query: org.positronicnet.content.ContentQuery[_, _]): Scope[T]

    Attributes
    protected[orm]
    Definition Classes
    Scope
  33. def synchronized [T0] (arg0: ⇒ T0): T0

    Attributes
    final
    Definition Classes
    AnyRef
  34. def toString (): String

    Definition Classes
    AnyRef → Any
  35. def wait (): Unit

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

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

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  38. def where (str: String, vals: ContentValue*): Scope[T]

    Produce a restricted subscope containing only records matching an extra SQL condition, possibly including ? placeholders which can get filled in by the supplied ContentValue arguments, if any.

    Produce a restricted subscope containing only records matching an extra SQL condition, possibly including ? placeholders which can get filled in by the supplied ContentValue arguments, if any. Example:

        val recentBugs =
          Bugs.where( "state != ? and create_date > ?",
                      "closed",
                      System.currentTimeMillis - 3*86400*1000 )
    

    Note that the columns are named using internal SQL column names, not the Java mapped versions.

    (Note for the future: we could consider changing this by allowing syntax like "{createDate}>?", where the string in curly-braces would be a Java field name to be mapped to the SQL equivalent. But that's not there yet.)

    Definition Classes
    Scope
  39. def whereEq (pairs: (String, ContentValue)*): Scope[T]

    Produce a restricted subscope containing only records where particular fields have particular values.

    Produce a restricted subscope containing only records where particular fields have particular values. The argument is a set of (String,[[org.positronicnet.content.ContentValue]]) pairs, often entered using -> notation, like so:

        Bugs.whereEq( "status"->"done", "ownerId"->joe.id )
    

    Note that columns can be designated by either the names of the columns in the underlying tables, or the names of the Scala vals in the classes that they get mapped to.

    Definition Classes
    Scope

Inherited from Scope[T]

Inherited from NotifierDelegator[IndexedSeq[T]]

Inherited from Notifier[IndexedSeq[T]]

Inherited from NotificationManager

Inherited from AnyRef

Inherited from Any