]> source.dussan.org Git - pf4j.git/commitdiff
Modified org.pf4j.PluginState to an enum (#328)
authorMacTrophy <macworld@sympatico.ca>
Tue, 2 Jul 2019 20:39:33 +0000 (16:39 -0400)
committerDecebal Suiu <decebal.suiu@gmail.com>
Tue, 2 Jul 2019 20:39:33 +0000 (23:39 +0300)
pf4j/src/main/java/org/pf4j/PluginState.java

index 51c3f489ea77ce7b3a7b312022b3f63c87055e4a..7b5037a2eacd479aad6bcff0d106b6b15bb6bb90 100644 (file)
@@ -18,33 +18,33 @@ package org.pf4j;
 /**
  * @author Decebal Suiu
  */
-public class PluginState {
+public enum PluginState {
 
     /**
      * The runtime knows the plugin is there. It knows about the plugin path, the plugin descriptor.
      */
-    public static final PluginState CREATED = new PluginState("CREATED");
-
+    CREATED("CREATED"),
+    
     /**
      * The plugin cannot be used.
      */
-    public static final PluginState DISABLED = new PluginState("DISABLED");
-
+    DISABLED("DISABLED"),
+    
     /**
      * The plugin is created. All the dependencies are created and resolved.
      * The plugin is ready to be started.
      */
-    public static final PluginState RESOLVED = new PluginState("RESOLVED");
+    RESOLVED("RESOLVED"),
 
     /**
      * The {@link Plugin#start()} has executed. A started plugin may contribute extensions.
      */
-    public static final PluginState STARTED = new PluginState("STARTED");
+    STARTED("STARTED"),
 
     /**
      * The {@link Plugin#stop()} has executed.
      */
-    public static final PluginState STOPPED = new PluginState("STOPPED");
+    STOPPED("STOPPED");
 
     private String status;
 
@@ -52,19 +52,8 @@ public class PluginState {
         this.status = status;
     }
 
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        PluginState that = (PluginState) o;
-
-        return status.equals(that.status);
-    }
-
-    @Override
-    public int hashCode() {
-        return status.hashCode();
+    public boolean equals(String status) {
+       return (status == null ? false : this.status.equalsIgnoreCase(status));
     }
 
     @Override
@@ -72,4 +61,13 @@ public class PluginState {
         return status;
     }
 
+    public static PluginState parse(String string) {
+               for (PluginState status : values()) {
+                       if (status.equals(string)) {
+                               return status;
+                       }
+               }
+
+               return null;
+       }
 }