package com.android.onboarding.bedsteadonboarding.queryable import com.android.onboarding.nodes.OnboardingGraphNode import com.android.queryable.Queryable import com.android.queryable.queries.BooleanQuery import com.android.queryable.queries.LongQuery import com.android.queryable.queries.Query import com.android.queryable.queries.StringQuery /** * Query for onboarding graph nodes. */ interface NodeQuery: Query { /** Query a node based on its [id]. */ fun id(): LongQuery /** Query a node based on its [name]. */ fun name(): StringQuery /** Query a node based on its [component]. */ fun component(): ComponentQuery /** * Query for a started node. This query must have an [id], [name], or [component] filter * as well. */ fun isStarted(): BooleanQuery /** * Query for a finished node. This query must have an [id], [name], or [component] filter * as well. */ fun isFinished(): BooleanQuery /** * Query for a failed node. This query must have an [id], [name], or [component] filter * as well. */ fun isFailed(): BooleanQuery /** Query for all nodes that started before the specified [node]. */ fun happenedBefore(node: OnboardingGraphNode): NodeSequenceQuery /** Query for all nodes that started after the specified [node]. */ fun happenedAfter(node: OnboardingGraphNode): NodeSequenceQuery }