/* * Copyright (c) 2012, the Dart project authors. * * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.dart.tools.core.dart2js; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; /** * A JSON object that represents a response from the JSON server. * * @coverage dart.tools.core.dart2js */ public class Response { public enum Kind { Done, Message, Unknown } private static final Map<String, Kind> kindMap = new HashMap<String, Kind>(); static { kindMap.put("done", Kind.Done); kindMap.put("message", Kind.Message); } private final JSONObject json; public Response(JSONObject json) { this.json = json; } public ResponseDone createDoneResponse() throws JSONException { return new ResponseDone(json); } public ResponseMessage createMessageResponse() throws JSONException { return new ResponseMessage(json); } public int getId() throws JSONException { return json.getInt("id"); } public Kind getKind() throws JSONException { Kind kind = kindMap.get(getKindText()); return kind != null ? kind : Kind.Unknown; } public String getKindText() throws JSONException { return json.getString("kind"); } @Override public String toString() { return "Response[" + json.toString() + "]"; } }