@@ -0,0 +1,2112 @@
+/*%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.JsonElement;%0Aimport com.google.gson.JsonObject;%0Aimport com.google.gson.JsonSerializationContext;%0Aimport com.google.gson.JsonSerializer;%0A%0Aimport java.lang.reflect.Field;%0Aimport java.lang.reflect.Type;%0A%0A/**%0A * JSON Serializer for Handlebars %7B@link Context%7D objects.%0A *%0A * @since 1.0.0%0A */%0Apublic class HbsContextSerializer implements JsonSerializer%3CContext%3E %7B%0A%0A    /**%0A     * %7B@inheritDoc%7D%0A     */%0A    @Override%0A    public JsonElement serialize(Context hbsContext, Type type, JsonSerializationContext serializationContext) %7B%0A        JsonObject serialized = serializationContext.serialize(hbsContext.model()).getAsJsonObject();%0A%0A        Context extendedContext;%0A        try %7B%0A            Field extendedContextField = ((Class) type).getDeclaredField(%22extendedContext%22);%0A            extendedContextField.setAccessible(true);%0A            extendedContext = (Context) extendedContextField.get(hbsContext);%0A        %7D catch (NoSuchFieldException %7C IllegalAccessException e) %7B%0A            return serialized;%0A        %7D%0A        if (extendedContext == null) %7B%0A            return serialized;%0A        %7D%0A%0A        serializationContext.serialize(extendedContext.model()).getAsJsonObject().entrySet()%0A                .forEach(entry -%3E serialized.add(entry.getKey(), entry.getValue()));%0A        return serialized;%0A    %7D%0A%7D%0A

add HbsContextSerializer class