blob: 3d01930dd8175a4ce96ddb6c39afb580ffa6e087 [file] [log] [blame]
/**
* Copyright (c) 2013-2015 Angelo ZERR.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
*/
package org.eclipse.wst.json.core.internal.document;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.wst.json.core.document.IJSONNode;
import org.eclipse.wst.json.core.document.IJSONObject;
import org.eclipse.wst.json.core.document.IJSONPair;
import org.eclipse.wst.json.core.document.JSONException;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
public class JSONObjectImpl extends JSONStructureImpl implements IJSONObject {
public JSONObjectImpl() {
this(null);
}
public JSONObjectImpl(JSONObjectImpl object) {
super(object);
}
@Override
public IJSONNode cloneNode(boolean deep) {
JSONObjectImpl cloned = new JSONObjectImpl(this);
if (deep)
cloneChildNodes(cloned, deep);
return cloned;
}
@Override
public short getNodeType() {
return IJSONNode.OBJECT_NODE;
}
public boolean hasEndTag() {
return (getLastStructuredDocumentRegion() != null);
}
public boolean isContainer() {
return true;
}
public boolean isEmptyTag() {
return false;
}
public boolean hasStartTag() {
return (getStructuredDocumentRegion() != null);
}
@Override
public String getNodeName() {
return "object";
}
@Override
public String getNodeValue() throws JSONException {
// TODO Auto-generated method stub
return null;
}
public IJSONObject add(IJSONPair newAttr) {
if (newAttr == null)
return null;
JSONPairImpl attr = (JSONPairImpl) newAttr;
if (attr.getOwnerObject() != null)
return null;
// if (this.attrNodes == null)
// this.attrNodes = new NodeListImpl();
// this.attrNodes.appendNode(attr);
attr.setOwnerObject(this);
//pairs.add(newAttr);
notifyPairReplaced(attr, null);
return this;
}
protected void notifyPairReplaced(IJSONPair newPair, IJSONPair oldPair) {
JSONDocumentImpl document = (JSONDocumentImpl) getContainerDocument();
if (document == null)
return;
JSONModelImpl model = (JSONModelImpl) document.getModel();
if (model == null)
return;
model.pairReplaced(this, newPair, oldPair);
}
@Override
public IJSONObject remove(IJSONPair pair) {
notifyPairReplaced(null, pair);
return this;
}
public String toString() {
StringBuilder buffer = new StringBuilder();
String tagName = null;//getName();
if (hasStartTag())
buffer.append(tagName);
if (isEmptyTag())
buffer.append('/');
if (hasEndTag()) {
buffer.append('/');
buffer.append(tagName);
}
if (buffer.length() == 0)
buffer.append(tagName);
IStructuredDocumentRegion startStructuredDocumentRegion = getStartStructuredDocumentRegion();
if (startStructuredDocumentRegion != null) {
buffer.append('@');
buffer.append(startStructuredDocumentRegion.toString());
}
IStructuredDocumentRegion endStructuredDocumentRegion = getEndStructuredDocumentRegion();
if (endStructuredDocumentRegion != null) {
buffer.append('@');
buffer.append(endStructuredDocumentRegion.toString());
}
return buffer.toString();
}
// @Override
// public boolean getBoolean(String paramString) {
// // TODO Auto-generated method stub
// return false;
// }
//
// @Override
// public boolean getBoolean(String paramString, boolean paramBoolean) {
// // TODO Auto-generated method stub
// return false;
// }
//
// @Override
// public int getInt(String paramString) {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public int getInt(String paramString, int paramInt) {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public JsonArray getJsonArray(String paramString) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public JsonNumber getJsonNumber(String paramString) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public JsonObject getJsonObject(String paramString) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public JsonString getJsonString(String paramString) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public String getString(String paramString) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public String getString(String paramString1, String paramString2) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public boolean isNull(String paramString) {
// // TODO Auto-generated method stub
// return false;
// }
//
// @Override
// public ValueType getValueType() {
// return ValueType.OBJECT;
// }
//
// @Override
// public void clear() {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public boolean containsKey(Object arg0) {
// // TODO Auto-generated method stub
// return false;
// }
//
// @Override
// public boolean containsValue(Object arg0) {
// // TODO Auto-generated method stub
// return false;
// }
//
// @Override
// public Set<java.util.Map.Entry<String, JsonValue>> entrySet() {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public JsonValue get(Object arg0) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public boolean isEmpty() {
// // TODO Auto-generated method stub
// return false;
// }
//
// @Override
// public Set<String> keySet() {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public JsonValue put(String key, JsonValue value) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public void putAll(Map<? extends String, ? extends JsonValue> arg0) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public JsonValue remove(Object arg0) {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public int size() {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public Collection<JsonValue> values() {
// // TODO Auto-generated method stub
// return null;
// }
@Override
public String getSimpleValue() {
return null;
}
@Override
public String getValueRegionType() {
return null;
}
}