summaryrefslogtreecommitdiffstats
path: root/EssentialsUpdate/src/f00f/net/irc/martyr/Mode.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsUpdate/src/f00f/net/irc/martyr/Mode.java')
-rw-r--r--EssentialsUpdate/src/f00f/net/irc/martyr/Mode.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/f00f/net/irc/martyr/Mode.java b/EssentialsUpdate/src/f00f/net/irc/martyr/Mode.java
new file mode 100644
index 000000000..5cc39e1a9
--- /dev/null
+++ b/EssentialsUpdate/src/f00f/net/irc/martyr/Mode.java
@@ -0,0 +1,103 @@
+package f00f.net.irc.martyr;
+
+/**
+ * Any class which is to represent a mode must implement this
+ * interface. They must also implement equals(...) so that if the
+ * parameter for either mode is null they are equal based on the
+ * character, and if both parameters are not null, base the equal
+ * on the character and the parameters being equal.
+ */
+public interface Mode
+{
+ /**
+ * A Mode can be constructed and asked to make copies of itself.
+ *
+ * @return New Mode instance
+ */
+ Mode newInstance();
+
+ /**
+ * The character that represents this mode (ie o for operator)
+ *
+ * @return Character representation of mode
+ */
+ char getChar();
+
+ /**
+ * Should return true if this mode requires a parameter.
+ *
+ * @return True or false if a param is required for mode
+ */
+ boolean requiresParam();
+
+ /**
+ * This mode should be recorded in the list of channel modes. This
+ * would NOT include such things as operator status, as it is recored
+ * with the Member object.
+ *
+ * @return True or false of the mode should be recorded in the list of channels
+ */
+ boolean recordInChannel();
+
+ /**
+ * Determines if there can be multiple versions of this mode in
+ * the channel.
+ *
+ * @return True or false if only one instance of mode can exist per channel
+ */
+ boolean onePerChannel();
+
+ /**
+ * Returns the parameter that was set with setParam(...)
+ *
+ * @return Parameter that was set previously
+ */
+ String getParam();
+
+ /**
+ * Sets the parameter that can be retrieved with getParam()
+ *
+ * @param str Parameter to set on mode
+ */
+ void setParam( String str );
+
+ /**
+ * Sets the sign of the operation. Must be positive (granting),
+ * negative (revoking) or nosign (neutral operation).
+ *
+ * @param sign Sign (+/-) of the mode
+ */
+ void setSign( Sign sign );
+
+ /**
+ * @return the sign of this mode.
+ */
+ Sign getSign();
+
+ /**
+ * Finally, the Sign enumeration.
+ */
+ public class Sign
+ {
+ public static final Sign POSITIVE = new Sign( "positive" );
+ public static final Sign NEGATIVE = new Sign( "negative" );
+ public static final Sign NOSIGN = new Sign( "nosign" );
+
+ private String name;
+ private Sign( String name )
+ {
+ this.name = name;
+ }
+
+ public String toString()
+ {
+ return name;
+ }
+ }
+
+}
+
+
+
+
+