summaryrefslogtreecommitdiffstats
path: root/dcaedt_be/src/main/java/org/onap/sdc/dcae/rule/editor/utils/RulesPayloadUtils.java
blob: 8391d76063c793d9b0a78da84fcc852544fefcc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package org.onap.sdc.dcae.rule.editor.utils;

import java.util.List;

import org.onap.sdc.common.onaplog.Enums.LogLevel;
import org.onap.sdc.common.onaplog.OnapLoggerError;
import org.onap.sdc.dcae.composition.restmodels.sdc.Artifact;
import org.onap.sdc.dcae.composition.restmodels.ruleeditor.*;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParseException;

public class RulesPayloadUtils {

    private static OnapLoggerError errLogger = OnapLoggerError.getInstance();

    private static Gson gson = new GsonBuilder().serializeNulls()
            .registerTypeAdapter(BaseAction.class, new ActionDeserializer())
            .registerTypeAdapter(BaseCondition.class, new ConditionDeserializer()).create();

    private RulesPayloadUtils(){}

    public static Rule parsePayloadToRule(String payload) {
        return gson.fromJson(payload, Rule.class);
    }

    public static MappingRules parseMappingRulesArtifactPayload(String payload) {
        return gson.fromJson(payload, MappingRules.class);
    }

	public static MappingRulesResponse parsePayloadToMappingRules(String payload) {
		return gson.fromJson(payload, MappingRulesResponse.class);
	}

    public static SchemaInfo extractInfoFromDescription(Artifact rulesArtifact) {
        try {
            return gson.fromJson(rulesArtifact.getArtifactDescription(), SchemaInfo.class);
        }catch (JsonParseException e) {
            errLogger.log(LogLevel.ERROR, RulesPayloadUtils.class.getName(), "Exception thrown while parsing rule artifact description: {}", e);
            return null;
        }
    }

    public static String buildSchemaAndRulesResponse(String payload, List<EventTypeDefinitionUI> schema) {
        return  "{\"schema\":"+gson.toJson(schema)+","+payload.replaceFirst("\\{", "");
    }


}