use of org.whole.lang.json.factories.JSONEntityFactory in project whole by wholeplatform.
the class JSONLDEntityEncoder method encode.
public Value encode(IEntity entity) {
JSONEntityFactory ef = JSONEntityFactory.instance(RegistryConfigurations.RESOLVER);
org.whole.lang.json.model.Object resultObject = ef.createObject(entity.wSize());
setCopy(entity, resultObject);
EntityDescriptor<?> ed = entity.wGetEntityDescriptor();
resultObject.add(ef.createPair(ef.createName("@type"), ef.createString(ed.getURI())));
switch(ed.getEntityKind()) {
case SIMPLE:
for (int i = 0; i < entity.wSize(); i++) resultObject.add(ef.createPair(ef.createName(entity.wGetFeatureDescriptor(i).getName()), encode(entity.wGet(i))));
break;
case COMPOSITE:
org.whole.lang.json.model.Array arrayLiteral = ef.createArray(entity.wSize());
resultObject.add(ef.createPair(ef.createName(ed.getCompositeKind().isOrdered() ? "@list" : "@set"), arrayLiteral));
for (int i = 0; i < entity.wSize(); i++) arrayLiteral.add(encode(entity.wGet(i)));
break;
default:
case DATA:
Value value = null;
switch(ed.getDataKind()) {
case BOOLEAN:
value = ef.createBool(entity.wBooleanValue());
break;
case BYTE:
value = ef.createInt(entity.wByteValue());
break;
case SHORT:
value = ef.createInt(entity.wShortValue());
break;
case INT:
value = ef.createInt(entity.wIntValue());
break;
case LONG:
value = ef.createInt(entity.wLongValue());
break;
case FLOAT:
value = ef.createDecimal(entity.wFloatValue());
break;
case DOUBLE:
value = ef.createDecimal(entity.wDoubleValue());
break;
case STRING:
value = ef.createString(entity.wStringValue());
break;
default:
value = ef.createString(DataTypeUtils.getAsPersistenceString(entity));
}
resultObject.add(ef.createPair(ef.createName("@value"), value));
}
return resultObject;
}
use of org.whole.lang.json.factories.JSONEntityFactory 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