• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.onboarding.bedsteadonboarding.queryable
2 
3 import com.android.onboarding.nodes.OnboardingGraphNode
4 import com.android.queryable.Queryable
5 import com.android.queryable.queries.BooleanQuery
6 import com.android.queryable.queries.LongQuery
7 import com.android.queryable.queries.Query
8 import com.android.queryable.queries.StringQuery
9 
10 /**
11  * Query for onboarding graph nodes.
12  */
13 interface NodeQuery<E: Queryable>: Query<OnboardingGraphNode> {
14   /** Query a node based on its [id]. */
idnull15   fun id(): LongQuery<E>
16 
17   /** Query a node based on its [name]. */
18   fun name(): StringQuery<E>
19 
20   /** Query a node based on its [component]. */
21   fun component(): ComponentQuery<E>
22 
23   /**
24    * Query for a started node. This query must have an [id], [name], or [component] filter
25    * as well.
26    */
27   fun isStarted(): BooleanQuery<E>
28 
29   /**
30    * Query for a finished node. This query must have an [id], [name], or [component] filter
31    * as well.
32    */
33   fun isFinished(): BooleanQuery<E>
34 
35   /**
36    * Query for a failed node. This query must have an [id], [name], or [component] filter
37    * as well.
38    */
39   fun isFailed(): BooleanQuery<E>
40 
41   /** Query for all nodes that started before the specified [node]. */
42   fun happenedBefore(node: OnboardingGraphNode): NodeSequenceQuery<E>
43 
44   /** Query for all nodes that started after the specified [node]. */
45   fun happenedAfter(node: OnboardingGraphNode): NodeSequenceQuery<E>
46 }
47