use of org.whole.lang.json.model.Pair in project whole by wholeplatform.
the class PairPart method getModelSpecificChildren.
protected List<IEntity> getModelSpecificChildren() {
Pair entity = getModelEntity();
List<IEntity> children = new ArrayList<IEntity>(2);
children.add(entity.getName());
children.add(entity.getValue());
return children;
}
use of org.whole.lang.json.model.Pair in project whole by wholeplatform.
the class JSONUtils method toMap.
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;
}
use of org.whole.lang.json.model.Pair in project whole by wholeplatform.
the class JSONLDEntityDecoder method decode.
public IEntity decode(org.whole.lang.json.model.Object jsonEntity) {
String edUri = null;
Value body = jsonEntity;
for (int i = 0; i < jsonEntity.size(); i++) {
Pair pair = jsonEntity.get(i);
String name = pair.getName().getValue();
if (name.equals("@type"))
edUri = pair.getValue().wStringValue();
else if (name.equals("@list") || name.equals("@set") || name.equals("@value"))
body = pair.getValue();
}
if (edUri == null)
return super.applyRules(jsonEntity);
EntityDescriptor<?> ed = CommonsDataTypePersistenceParser.getEntityDescriptor(edUri, true, null);
IEntityFactory ef = GenericEntityFactory.instance(RegistryConfigurations.RESOLVER);
IEntity entity = ef.create(ed);
switch(ed.getEntityKind()) {
case SIMPLE:
FeatureDescriptorEnum fdEnum = ed.getFeatureDescriptorEnum();
for (int i = 0; i < body.wSize(); i++) {
Pair pair = (Pair) body.wGet(i);
String name = pair.getName().getValue();
if (!name.startsWith("@")) {
FeatureDescriptor fd = fdEnum.valueOf(name);
entity.wSet(fd, applyRules(pair.getValue()));
}
}
break;
case COMPOSITE:
for (int i = 0; i < body.wSize(); i++) entity.wAdd(applyRules(body.wGet(i)));
break;
case DATA:
DataTypeUtils.convert(body, entity);
}
return entity;
}
use of org.whole.lang.json.model.Pair in project whole by wholeplatform.
the class JSONUtils method set.
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));
}
Aggregations