Minor changes to PI runtime classes
- New class for action runtime parameter and its identifier
- PiAction builder
- Various indentifier builders
Change-Id: I265f71c868c21dbbbe633622b0c4330712f5a5ad
diff --git a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionId.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionId.java
index ae17071..d0655da 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionId.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiActionId.java
@@ -19,6 +19,9 @@
import com.google.common.annotations.Beta;
import org.onlab.util.Identifier;
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+
/**
* Identifier of an action of a match+action table in a protocol-independent pipeline.
*/
@@ -30,7 +33,19 @@
*
* @param name action name
*/
- public PiActionId(String name) {
+ private PiActionId(String name) {
super(name);
}
+
+ /**
+ * Returns an action identifier with the given name.
+ *
+ * @param name action name
+ * @return action identifier
+ */
+ public static PiActionId of(String name) {
+ checkNotNull(name);
+ checkArgument(!name.isEmpty(), "Name can't be empty");
+ return new PiActionId(name);
+ }
}