package com.toopher; import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; /** * Provide information about the status of an authentication request * */ public class AuthenticationStatus { /** * The unique id for the authentication request */ public String id; /** * Indicates if the request is still pending */ public boolean pending; /** * Indicates if the request was granted */ public boolean granted; /** * Indicates if the request was automated */ public boolean automated; /** * Indicates if the request was cancelled */ public boolean cancelled; /** * Indicates the reason (if any) for the request's outcome */ public String reason; /** * The unique id for the terminal associated with the request */ public String terminalId; /** * The descriptive name for the terminal associated with the request */ public String terminalName; @Override public String toString() { return String.format("[AuthenticationStatus: id=%s; pending=%b; granted=%b; automated=%b; cancelled=%d; reason=%s; terminalId=%s; terminalName=%s]", id, pending, granted, automated, cancelled, reason, terminalId, terminalName); } static AuthenticationStatus fromJSON(JSONObject json) throws JSONException { AuthenticationStatus as = new AuthenticationStatus(); as.id = json.getString("id"); as.pending = json.getBoolean("pending"); as.granted = json.getBoolean("granted"); as.automated = json.getBoolean("automated"); as.cancelled = json.getBoolean("cancelled"); as.reason = json.getString("reason"); JSONObject terminal = json.getJSONObject("terminal"); as.terminalId = terminal.getString("id"); as.terminalName = terminal.getString("name"); return as; } }