Search in sources :

Example 76 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class OrientDatabasePlugin method createPool.

private OPartitionedDatabasePool createPool(String name, ApiSpace space, JsonObject spec) {
    String factoryKey = createFactoryKey(name, space);
    if (space.containsRecyclable(factoryKey)) {
        return null;
    }
    JsonObject auth = Json.getObject(spec, Spec.Auth);
    if (Json.isNullOrEmpty(auth)) {
        return null;
    }
    OPartitionedDatabasePool pool = new OPartitionedDatabasePool(createUrl(spec), Json.getString(auth, Spec.User), Json.getString(auth, Spec.Password), weight, weight);
    space.addRecyclable(factoryKey, new RecyclablePool(pool));
    return pool;
}
Also used : OPartitionedDatabasePool(com.orientechnologies.orient.core.db.OPartitionedDatabasePool) JsonObject(com.bluenimble.platform.json.JsonObject)

Example 77 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class DatabaseObjectImpl method toJson.

@SuppressWarnings({ "unchecked", "rawtypes" })
private JsonObject toJson(DatabaseObjectImpl dbo, DatabaseObjectSerializer serializer, int level) {
    if (serializer == null) {
        serializer = DatabaseObjectSerializer.Default;
    }
    String entity = dbo.entity();
    Fields fields = serializer.fields(level);
    if (fields == null || Fields.None.equals(fields)) {
        return null;
    }
    String[] fieldNames = null;
    if (Fields.All.equals(fields)) {
        fieldNames = dbo.document.fieldNames();
    } else {
        fieldNames = MinimalFields;
    }
    JsonObject json = serializer.create(entity, level);
    if (json == null) {
        return null;
    }
    for (String f : fieldNames) {
        Object v = dbo.get(f);
        if (v == null) {
            continue;
        }
        if (v instanceof Date) {
            v = Lang.toUTC((Date) v);
        } else if (v instanceof Map) {
            v = new JsonObject((Map<String, Object>) v, true);
        } else if (v instanceof List) {
            List<Object> list = (List<Object>) v;
            if (list.isEmpty()) {
                continue;
            }
            JsonArray arr = new JsonArray();
            for (Object o : list) {
                if (o == null) {
                    continue;
                }
                if (o instanceof DatabaseObjectImpl) {
                    arr.add(toJson((DatabaseObjectImpl) o, serializer, level + 1));
                } else {
                    if (o instanceof Date) {
                        arr.add(Lang.toUTC((Date) o));
                    } else if (Map.class.isAssignableFrom(o.getClass())) {
                        arr.add(new JsonObject((Map) o, true));
                    } else {
                        arr.add(o);
                    }
                }
            }
            v = arr;
        } else if (v instanceof DatabaseObjectImpl) {
            v = toJson((DatabaseObjectImpl) v, serializer, level + 1);
        }
        serializer.set(entity, json, f, v);
    }
    return json;
}
Also used : JsonArray(com.bluenimble.platform.json.JsonArray) Fields(com.bluenimble.platform.db.DatabaseObjectSerializer.Fields) JsonObject(com.bluenimble.platform.json.JsonObject) JsonObject(com.bluenimble.platform.json.JsonObject) DatabaseObject(com.bluenimble.platform.db.DatabaseObject) ArrayList(java.util.ArrayList) List(java.util.List) Map(java.util.Map) Date(java.util.Date)

Example 78 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class DatabaseObjectImpl method load.

@Override
public void load(JsonObject data) throws DatabaseException {
    if (data == null) {
        return;
    }
    data.shrink();
    if (Json.isNullOrEmpty(data)) {
        return;
    }
    Iterator<String> keys = data.keys();
    while (keys.hasNext()) {
        String key = keys.next();
        Object value = data.get(key);
        if (value == null || value.equals(Null) || Undefined.class.equals(value.getClass())) {
            document.removeField(key);
            continue;
        }
        set(key, data.get(key));
    }
}
Also used : Undefined(jdk.nashorn.internal.runtime.Undefined) JsonObject(com.bluenimble.platform.json.JsonObject) DatabaseObject(com.bluenimble.platform.db.DatabaseObject)

Example 79 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class Update method main.

public static void main(String[] args) throws DatabaseException {
    Database db = new DatabaseServer().get();
    DatabaseObject employee = db.get("Employees", "e0e296f0-1937-4b7c-b077-1d7fe50e2482");
    employee.set("age", 43);
    employee.set("salary", 200.54);
    employee.set("contact", new JsonObject().set("phone", "4089786532").set("email", "alpha@beta.com"));
    DatabaseObject city = db.create("Cities");
    city.set("name", "Sunnyvale");
    employee.set("city", city);
    employee.save();
    System.out.println(employee.toJson(new DefaultDatabaseObjectSerializer(2, 2)));
}
Also used : DefaultDatabaseObjectSerializer(com.bluenimble.platform.db.impls.DefaultDatabaseObjectSerializer) Database(com.bluenimble.platform.db.Database) DatabaseObject(com.bluenimble.platform.db.DatabaseObject) JsonObject(com.bluenimble.platform.json.JsonObject)

Example 80 with JsonObject

use of com.bluenimble.platform.json.JsonObject in project serverless by bluenimble.

the class DataSourcePlugin method createDataSources.

private void createDataSources(ApiSpace space) throws PluginRegistryException {
    // create factories
    JsonObject dbFeature = Json.getObject(space.getFeatures(), feature);
    if (dbFeature == null || dbFeature.isEmpty()) {
        return;
    }
    Iterator<String> keys = dbFeature.keys();
    while (keys.hasNext()) {
        String key = keys.next();
        JsonObject source = Json.getObject(dbFeature, key);
        if (!this.getName().equalsIgnoreCase(Json.getString(source, ApiSpace.Features.Provider))) {
            continue;
        }
        JsonObject spec = Json.getObject(source, ApiSpace.Features.Spec);
        if (spec == null) {
            continue;
        }
        createDataSource(key, space, spec);
    }
}
Also used : JsonObject(com.bluenimble.platform.json.JsonObject)

Aggregations

JsonObject (com.bluenimble.platform.json.JsonObject)230 ApiServiceExecutionException (com.bluenimble.platform.api.ApiServiceExecutionException)40 DatabaseObject (com.bluenimble.platform.db.DatabaseObject)37 JsonArray (com.bluenimble.platform.json.JsonArray)37 JsonApiOutput (com.bluenimble.platform.api.impls.JsonApiOutput)34 Database (com.bluenimble.platform.db.Database)29 ApiSpace (com.bluenimble.platform.api.ApiSpace)26 File (java.io.File)25 ApiAccessDeniedException (com.bluenimble.platform.api.ApiAccessDeniedException)23 Map (java.util.Map)22 IOException (java.io.IOException)20 CommandExecutionException (com.bluenimble.platform.cli.command.CommandExecutionException)17 JsonQuery (com.bluenimble.platform.db.query.impls.JsonQuery)16 InputStream (java.io.InputStream)14 Date (java.util.Date)14 DefaultCommandResult (com.bluenimble.platform.cli.command.impls.DefaultCommandResult)13 ApiManagementException (com.bluenimble.platform.api.ApiManagementException)12 DefaultDatabaseObjectSerializer (com.bluenimble.platform.db.impls.DefaultDatabaseObjectSerializer)11 HashMap (java.util.HashMap)11 DatabaseException (com.bluenimble.platform.db.DatabaseException)9