package com.scorpiac.javarant;

public enum Vote {
    UP(1),
    NONE(0),
    DOWN(-1);

    private final int number;

    Vote(int number) {
        this.number = number;
    }

    /**
     * Get the number value of this vote.
     *
     * @return The number value.
     */
    public int getNumber() {
        return number;
    }
}

@@ -29,116 +29,406 @@
 t;%0A%0A
-public enum Vote %7B%0A    UP(1),%0A    NONE(0),%0A    DOWN(-1);%0A%0A    private final int number;%0A%0A    Vote(int number
+import org.apache.http.NameValuePair;%0Aimport org.apache.http.message.BasicNameValuePair;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0A%0Apublic class Vote %7B%0A    /**%0A     * An upvote.%0A     */%0A    public static final Vote UP = new Vote(%221%22);%0A    /**%0A     * A neutral vote.%0A     */%0A    public static final Vote NONE = new Vote(%220%22);%0A%0A    private final String value;%0A%0A    private Vote(String value
 ) %7B%0A
@@ -444,23 +444,21 @@
 his.
-number = number
+value = value
 ;%0A  
@@ -481,142 +481,825 @@
   * 
-Get the number value of this vote.%0A     *%0A     * @return The number value.%0A     */%0A    public int getNumber() %7B%0A        return number;
+A downvote.%0A     *%0A     * @param reason The reason for the downvote.%0A     * @return A downvote.%0A     */%0A    public static Vote DOWN(Reason reason) %7B%0A        return new DownVote(reason);%0A    %7D%0A%0A    List%3CNameValuePair%3E getOptions() %7B%0A        List%3CNameValuePair%3E options = new ArrayList%3C%3E();%0A        options.add(new BasicNameValuePair(%22vote%22, value));%0A        return options;%0A    %7D%0A%0A    private static class DownVote extends Vote %7B%0A        private final Reason reason;%0A%0A        private DownVote(Reason reason) %7B%0A            super(%22-1%22);%0A            this.reason = reason;%0A        %7D%0A%0A        @Override%0A        List%3CNameValuePair%3E getOptions() %7B%0A            List%3CNameValuePair%3E options = super.getOptions();%0A            options.add(new BasicNameValuePair(%22reason%22, reason.toString()));%0A            return options;%0A        %7D
 %0A   

Make Vote a class instead of enum, use the Reason