| package net.onrc.onos.api.newintent; |
| |
| /** |
| * This class represents the states of an intent. |
| * |
| * <p> |
| * Note: The state is expressed as enum, but there is possibility |
| * in the future that we define specific class instead of enum to improve |
| * the extensibility of state definition. |
| * </p> |
| */ |
| public enum IntentState { |
| // FIXME: requires discussion on State vs. EventType and a solid state-transition diagram |
| // TODO: consider the impact of conflict detection |
| // TODO: consider the impact that external events affect an installed intent |
| /** |
| * The beginning state. |
| * |
| * All intent in the runtime take this state first. |
| */ |
| SUBMITTED, |
| |
| /** |
| * The intent compilation has been completed. |
| * |
| * An intent translation graph (tree) is completely created. |
| * Leaves of the graph are installable intent type. |
| */ |
| COMPILED, |
| |
| /** |
| * The intent has been successfully installed. |
| */ |
| INSTALLED, |
| |
| /** |
| * The intent is being withdrawn. |
| * |
| * When {@link IntentService#withdraw(Intent)} is called, |
| * the intent takes this state first. |
| */ |
| WITHDRAWING, |
| |
| /** |
| * The intent has been successfully withdrawn. |
| */ |
| WITHDRAWN, |
| |
| /** |
| * The intent has failed to be compiled, installed, or withdrawn. |
| * |
| * When the intent failed to be withdrawn, it is still, at least partially installed. |
| */ |
| FAILED, |
| } |