View Javadoc
1   package com.atlassian.plugin.manager;
2   
3   import java.io.Serializable;
4   
5   import static java.lang.System.currentTimeMillis;
6   
7   /**
8    * The state of a plugin with the current status (enabled/disabled) and a timestamp of last state update
9    */
10  public class PluginEnabledState implements Serializable {
11      public static final long UNKNOWN_ENABLED_TIME = 0;
12  
13      private final boolean enabled;
14      private final long timestamp;
15  
16      public PluginEnabledState(boolean enabled, long timestamp) {
17          this.enabled = enabled;
18          this.timestamp = timestamp;
19      }
20  
21      /**
22       * @param enabled whether the plugin is or should be enabled
23       * @deprecated in 4.5 for removal in 6.0. Use {@link #PluginEnabledState(boolean, long)} or
24       *             {@link #getPluginEnabledStateWithCurrentTime(boolean)} instead
25       */
26      @Deprecated
27      public PluginEnabledState(boolean enabled) {
28          this(enabled, UNKNOWN_ENABLED_TIME);
29      }
30  
31      public Boolean isEnabled() {
32          return enabled;
33      }
34  
35      public long getTimestamp() {
36          return timestamp;
37      }
38  
39      @Override
40      public boolean equals(Object o) {
41          if (this == o) return true;
42          if (o == null || getClass() != o.getClass()) return false;
43  
44          PluginEnabledState that = (PluginEnabledState) o;
45  
46          return enabled == that.enabled;
47      }
48  
49      @Override
50      public int hashCode() {
51          return (enabled ? 1 : 0);
52      }
53  
54      public static PluginEnabledState getPluginEnabledStateWithCurrentTime(boolean enabled){
55          return new PluginEnabledState(enabled, currentTimeMillis());
56      }
57  }