Search in sources :

Example 1 with Pair

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;
}
Also used : IEntity(org.whole.lang.model.IEntity) ArrayList(java.util.ArrayList) Pair(org.whole.lang.json.model.Pair)

Example 2 with Pair

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;
}
Also used : HashMap(java.util.HashMap) Value(org.whole.lang.json.model.Value) Pair(org.whole.lang.json.model.Pair)

Example 3 with Pair

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;
}
Also used : FeatureDescriptorEnum(org.whole.lang.reflect.FeatureDescriptorEnum) IEntity(org.whole.lang.model.IEntity) FeatureDescriptor(org.whole.lang.reflect.FeatureDescriptor) IEntityFactory(org.whole.lang.factories.IEntityFactory) Value(org.whole.lang.json.model.Value) Pair(org.whole.lang.json.model.Pair)

Example 4 with Pair

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));
}
Also used : JSONEntityFactory(org.whole.lang.json.factories.JSONEntityFactory) Pair(org.whole.lang.json.model.Pair)

Aggregations

Pair (org.whole.lang.json.model.Pair)4 Value (org.whole.lang.json.model.Value)2 IEntity (org.whole.lang.model.IEntity)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 IEntityFactory (org.whole.lang.factories.IEntityFactory)1 JSONEntityFactory (org.whole.lang.json.factories.JSONEntityFactory)1 FeatureDescriptor (org.whole.lang.reflect.FeatureDescriptor)1 FeatureDescriptorEnum (org.whole.lang.reflect.FeatureDescriptorEnum)1