Search in sources :

Example 1 with JSONNumericLiteral

use of org.eclipse.n4js.json.JSON.JSONNumericLiteral in project n4js by eclipse.

the class JSONSemanticSequencer method sequence.

@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
    EPackage epackage = semanticObject.eClass().getEPackage();
    ParserRule rule = context.getParserRule();
    Action action = context.getAssignedAction();
    Set<Parameter> parameters = context.getEnabledBooleanParameters();
    if (epackage == JSONPackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case JSONPackage.JSON_ARRAY:
                sequence_JSONArray(context, (JSONArray) semanticObject);
                return;
            case JSONPackage.JSON_BOOLEAN_LITERAL:
                sequence_JSONBooleanLiteral(context, (JSONBooleanLiteral) semanticObject);
                return;
            case JSONPackage.JSON_DOCUMENT:
                sequence_JSONDocument(context, (JSONDocument) semanticObject);
                return;
            case JSONPackage.JSON_NULL_LITERAL:
                sequence_JSONNullLiteral(context, (JSONNullLiteral) semanticObject);
                return;
            case JSONPackage.JSON_NUMERIC_LITERAL:
                sequence_JSONNumericLiteral(context, (JSONNumericLiteral) semanticObject);
                return;
            case JSONPackage.JSON_OBJECT:
                sequence_JSONObject(context, (JSONObject) semanticObject);
                return;
            case JSONPackage.JSON_STRING_LITERAL:
                sequence_JSONStringLiteral(context, (JSONStringLiteral) semanticObject);
                return;
            case JSONPackage.NAME_VALUE_PAIR:
                sequence_NameValuePair(context, (NameValuePair) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) NameValuePair(org.eclipse.n4js.json.JSON.NameValuePair) Action(org.eclipse.xtext.Action) JSONArray(org.eclipse.n4js.json.JSON.JSONArray) JSONNumericLiteral(org.eclipse.n4js.json.JSON.JSONNumericLiteral) JSONStringLiteral(org.eclipse.n4js.json.JSON.JSONStringLiteral) EPackage(org.eclipse.emf.ecore.EPackage) JSONBooleanLiteral(org.eclipse.n4js.json.JSON.JSONBooleanLiteral) JSONObject(org.eclipse.n4js.json.JSON.JSONObject) Parameter(org.eclipse.xtext.Parameter) JSONDocument(org.eclipse.n4js.json.JSON.JSONDocument) JSONNullLiteral(org.eclipse.n4js.json.JSON.JSONNullLiteral)

Example 2 with JSONNumericLiteral

use of org.eclipse.n4js.json.JSON.JSONNumericLiteral in project n4js by eclipse.

the class ProjectDescriptionLoader method copy.

private JSONValue copy(JsonElement jsonElement) {
    if (jsonElement.isJsonNull()) {
        return JSONFactory.eINSTANCE.createJSONNullLiteral();
    }
    if (jsonElement.isJsonPrimitive()) {
        JsonPrimitive primitive = jsonElement.getAsJsonPrimitive();
        if (primitive.isBoolean()) {
            JSONBooleanLiteral result = JSONFactory.eINSTANCE.createJSONBooleanLiteral();
            result.setBooleanValue(primitive.getAsBoolean());
            return result;
        }
        if (primitive.isNumber()) {
            JSONNumericLiteral result = JSONFactory.eINSTANCE.createJSONNumericLiteral();
            result.setValue(primitive.getAsBigDecimal());
            return result;
        }
        if (primitive.isString()) {
            JSONStringLiteral result = JSONFactory.eINSTANCE.createJSONStringLiteral();
            result.setValue(primitive.getAsString());
            return result;
        }
        throw new IllegalArgumentException(jsonElement.toString());
    }
    if (jsonElement.isJsonObject()) {
        JsonObject object = jsonElement.getAsJsonObject();
        JSONObject result = JSONFactory.eINSTANCE.createJSONObject();
        for (Map.Entry<String, JsonElement> entry : object.entrySet()) {
            NameValuePair pair = JSONFactory.eINSTANCE.createNameValuePair();
            pair.setName(entry.getKey());
            pair.setValue(copy(entry.getValue()));
            result.getNameValuePairs().add(pair);
        }
        return result;
    }
    if (jsonElement.isJsonArray()) {
        JsonArray array = jsonElement.getAsJsonArray();
        JSONArray result = JSONFactory.eINSTANCE.createJSONArray();
        for (JsonElement arrayElement : array) {
            result.getElements().add(copy(arrayElement));
        }
        return result;
    }
    throw new IllegalArgumentException(jsonElement.toString());
}
Also used : NameValuePair(org.eclipse.n4js.json.JSON.NameValuePair) JsonPrimitive(com.google.gson.JsonPrimitive) JSONNumericLiteral(org.eclipse.n4js.json.JSON.JSONNumericLiteral) JSONArray(org.eclipse.n4js.json.JSON.JSONArray) JsonObject(com.google.gson.JsonObject) JSONStringLiteral(org.eclipse.n4js.json.JSON.JSONStringLiteral) JsonArray(com.google.gson.JsonArray) JSONBooleanLiteral(org.eclipse.n4js.json.JSON.JSONBooleanLiteral) JSONObject(org.eclipse.n4js.json.JSON.JSONObject) JsonElement(com.google.gson.JsonElement) Map(java.util.Map)

Aggregations

JSONArray (org.eclipse.n4js.json.JSON.JSONArray)2 JSONBooleanLiteral (org.eclipse.n4js.json.JSON.JSONBooleanLiteral)2 JSONNumericLiteral (org.eclipse.n4js.json.JSON.JSONNumericLiteral)2 JSONObject (org.eclipse.n4js.json.JSON.JSONObject)2 JSONStringLiteral (org.eclipse.n4js.json.JSON.JSONStringLiteral)2 NameValuePair (org.eclipse.n4js.json.JSON.NameValuePair)2 JsonArray (com.google.gson.JsonArray)1 JsonElement (com.google.gson.JsonElement)1 JsonObject (com.google.gson.JsonObject)1 JsonPrimitive (com.google.gson.JsonPrimitive)1 Map (java.util.Map)1 EPackage (org.eclipse.emf.ecore.EPackage)1 JSONDocument (org.eclipse.n4js.json.JSON.JSONDocument)1 JSONNullLiteral (org.eclipse.n4js.json.JSON.JSONNullLiteral)1 Action (org.eclipse.xtext.Action)1 Parameter (org.eclipse.xtext.Parameter)1 ParserRule (org.eclipse.xtext.ParserRule)1