/* See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * Esri Inc. licenses this file to You under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 * * 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.esri.gpt.agp.client; import org.json.JSONArray; import org.json.JSONObject; /** * An ArcGIS Portal communication error object. */ public class AgpError { /** instance variables ====================================================== */ private int code = -1; private String[] details; private String message; /** constructors ============================================================ */ /** Default constructor. */ public AgpError() {} /** properties ============================================================== */ /** * Gets the error code. * @return the error code */ public int getCode() { return this.code; } /** * Sets the error code. * @param code the error code */ public void setCode(int code) { this.code = code; } /** * Gets the error details. * @return the error details */ public String[] getDetails() { return this.details; } /** * Sets the error details. * @param details the error details */ public void setDetails(String[] details) { this.details = details; } /** * Gets the error message. * @return the error message */ public String getMessage() { return this.message; } /** * Sets the error message. * @param message the error message */ public void setMessage(String message) { this.message = message; } /** methods ================================================================= */ /** * Parse the JSON response. * @param jsoResponse the JSON response * @throws Exception if an exception occurs */ public void parse(JSONObject jsoResponse) throws Exception { String sProp = "error"; if (jsoResponse.has(sProp) && (!jsoResponse.isNull(sProp))) { this.parseError(jsoResponse.getJSONObject(sProp)); } } /** * Parse the JSON error object. * @param jsoError the JSON error object * @throws Exception if an exception occurs */ private void parseError(JSONObject jsoError) throws Exception { String sProp; sProp = "code"; if (jsoError.has(sProp) && (!jsoError.isNull(sProp))) { this.setCode(jsoError.getInt(sProp)); } sProp = "message"; if (jsoError.has(sProp) && (!jsoError.isNull(sProp))) { this.setMessage(jsoError.getString(sProp)); } sProp = "details"; if (jsoError.has(sProp) && (!jsoError.isNull(sProp))) { JSONArray jsoValues = jsoError.getJSONArray(sProp); int n = jsoValues.length(); if (n > 0) { String[] aValues = new String[n]; for (int i=0;i<n;i++) { aValues[i] = jsoValues.getString(i); } this.setDetails(aValues); } } } }