/** * Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.gistlabs.mechanize.document.json.node.impl; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.gistlabs.mechanize.document.json.exceptions.JsonException; import com.gistlabs.mechanize.document.json.node.JsonNode; public class IndexedAttributeNode extends AttributeNode { private final int index; private final JSONArray array; public IndexedAttributeNode(final JsonNode parent, final String name, final JSONArray array, final int index) { super(parent, name); this.array = array; this.index = index; } @Override public String toString() { try { return new JSONObject().put(name, getValue()).toString(); } catch (JSONException e) { throw new JsonException(e); } } @Override public String getValue() { try { return this.array.getString(this.index); } catch (JSONException e) { throw new JsonException(e); } } @Override public void setValue(final String value) { try { this.array.put(this.index, value); } catch (JSONException e) { throw new JsonException(e); } } }