@@ -0,0 +1,2519 @@
+/*%0A * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.%0A *%0A * WSO2 Inc. licenses this file to you under the Apache License,%0A * Version 2.0 (the %22License%22); you may not use this file except%0A * in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing,%0A * software distributed under the License is distributed on an%0A * %22AS IS%22 BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY%0A * KIND, either express or implied.  See the License for the%0A * specific language governing permissions and limitations%0A * under the License.%0A */%0A%0Apackage org.wso2.carbon.uuf.renderablecreator.hbs.internal.serialize;%0A%0Aimport com.github.jknack.handlebars.Context;%0Aimport com.google.gson.Gson;%0Aimport com.google.gson.GsonBuilder;%0Aimport jdk.nashorn.api.scripting.ScriptObjectMirror;%0A%0A/**%0A * JSON serializer for JavaScript object of Nashorn.%0A *%0A * @since 1.0.0%0A */%0Apublic class JsonSerializer %7B%0A%0A    private static final Gson safeSerializer, prettySerializer;%0A%0A    static %7B%0A        safeSerializer = new GsonBuilder()%0A                .registerTypeAdapter(ScriptObjectMirror.class, new ScriptObjectMirrorSerializer())%0A                .create();%0A        prettySerializer = new GsonBuilder()%0A                .registerTypeAdapter(ScriptObjectMirror.class, new FunctionScriptObjectMirrorSerializer())%0A                .registerTypeAdapter(Context.class, new HbsContextSerializer())%0A                .setPrettyPrinting()%0A                .disableHtmlEscaping()%0A                .serializeNulls()%0A                .create();%0A    %7D%0A%0A    /**%0A     * Converts the given object to JSON. The returned JSON string doesn't include any %7B@code null%7D values/fields%0A     * and any HTML special characters (e.g. &gt;) will be escaped with unicode characters.%0A     *%0A     * @param src object to be serialized to JSON%0A     * @return JSON representation of %7B@code src%7D%0A     */%0A    public static String toSafeJson(Object src) %7B%0A        return safeSerializer.toJson(src);%0A    %7D%0A%0A    /**%0A     * Converts the given object to JSON. The returned JSON string includes indentations and new lines to for%0A     * formatting, has any null values/fields of the object, and any HTML special characters won't be escaped.%0A     *%0A     * @param src object to be serialized to JSON%0A     * @return JSON representation of %7B@code src%7D%0A     */%0A    public static String toPrettyJson(Object src) %7B%0A        return prettySerializer.toJson(src);%0A    %7D%0A%7D%0A

add JsonSerializer class