Copybara ❤️: Add capability of marking nodes as being fully specified. Default all to light.
CL: cl/580569792
PiperOrigin-RevId: 580569792
Change-Id: I890d8a15bb996ff1962032a6ab9de48131a7dc9c
diff --git a/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt b/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt
index 3ea43f6..17c9645 100644
--- a/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt
+++ b/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt
@@ -14,13 +14,32 @@
val name: String,
/** True if this is a node which presents a UI to the user. */
- val hasUi: HasUi
+ val hasUi: HasUi,
+
+ /** The type of specification given for this node. */
+ val specificationType: SpecificationType = SpecificationType.LIGHT
) {
enum class HasUi {
NO,
YES,
YES_TEMPORARILY
}
+
+ enum class SpecificationType {
+ /**
+ * This means that full Javadoc is provided, all arguments are fully defined, documented and
+ * typed (no undefined Bundles or Intents), and return values are properly defined and typed.
+ */
+ V1,
+
+ /**
+ * No requirements.
+ *
+ * Most "Light" nodes will be lacking Javadoc, and using Intents and Bundles as arguments and
+ * return values.
+ */
+ LIGHT
+ }
}
const val MAX_NODE_NAME_LENGTH: Int = 40