/**
* Copyright 2004-2016 Riccardo Solmi. All rights reserved.
* This file is part of the Whole Platform.
*
* The Whole Platform is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Whole Platform is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the Whole Platform. If not, see <http://www.gnu.org/licenses/>.
*/
package org.whole.lang.json.util;
import java.util.HashMap;
import java.util.Map;
import org.whole.lang.json.factories.JSONEntityFactory;
import org.whole.lang.json.model.Pair;
import org.whole.lang.json.model.Value;
import org.whole.lang.json.reflect.JSONEntityDescriptorEnum;
import org.whole.lang.matchers.Matcher;
import org.whole.lang.model.IEntity;
/**
* @author Riccardo Solmi
*/
public class JSONUtils {
public static Map<String, Value> toMap(IEntity entity) {
Map<String, Value> map = new HashMap<String, Value>();
if (Matcher.matchImpl(JSONEntityDescriptorEnum.Object, entity)) {
org.whole.lang.json.model.Object object = (org.whole.lang.json.model.Object) entity;
for (int i=0, size=object.size(); i<size; i++) {
Pair pair = object.get(i);
map.put(pair.getName().getValue(), pair.getValue());
}
}
return map;
}
public static Value get(IEntity entity, String name) {
if (Matcher.matchImpl(JSONEntityDescriptorEnum.Object, entity)) {
org.whole.lang.json.model.Object object = (org.whole.lang.json.model.Object) entity;
for (int i=0, size=object.size(); i<size; i++) {
Pair pair = object.get(i);
if (pair.getName().getValue().equals(name))
return pair.getValue();
}
}
return null;
}
public static void set(IEntity entity, String name, Value value) {
if (!Matcher.matchImpl(JSONEntityDescriptorEnum.Object, entity))
throw new IllegalArgumentException();
org.whole.lang.json.model.Object object = (org.whole.lang.json.model.Object) entity;
for (int i=0, size=object.size(); i<size; i++) {
Pair pair = object.get(i);
if (pair.getName().getValue().equals(name)) {
pair.setValue(value);
return;
}
}
JSONEntityFactory ef = JSONEntityFactory.instance;
object.add(ef.createPair(ef.createName(name), value));
}
}