| /******************************************************************************* |
| * Copyright (c) 2014 Bosch Software Innovations GmbH and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * and Eclipse Distribution License v1.0 which accompany this distribution. |
| * |
| * The Eclipse Public License is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * The Eclipse Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Contributors: |
| * Bosch Software Innovations GmbH - Please refer to git log |
| * |
| *******************************************************************************/ |
| package org.eclipse.vorto.fbeditor.ui.internal.serializer; |
| |
| import java.io.ByteArrayOutputStream; |
| import java.io.IOException; |
| import java.util.HashMap; |
| |
| import org.eclipse.emf.common.util.URI; |
| import org.eclipse.emf.ecore.resource.Resource; |
| import org.eclipse.vorto.fbeditor.FunctionblockRuntimeModule; |
| import org.eclipse.vorto.fbeditor.ui.api.serializer.IFunctionBlockSerializer; |
| import org.eclipse.vorto.functionblock.FunctionblockModel; |
| import org.eclipse.xtext.resource.IResourceFactory; |
| |
| import com.google.inject.Guice; |
| |
| |
| public class FunctionBlockSerializer implements IFunctionBlockSerializer { |
| |
| public String serialize(FunctionblockModel model) { |
| IResourceFactory resourceFactory = Guice.createInjector( |
| new FunctionblockRuntimeModule()).getInstance( |
| IResourceFactory.class); |
| Resource resource = resourceFactory.createResource(URI |
| .createURI("fakeDsl.fbmodel")); |
| resource.getContents().add(model); |
| |
| ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
| |
| try { |
| resource.save(baos, new HashMap<String, String>()); |
| return new String(baos.toByteArray(), "utf-8"); |
| } catch (IOException e) { |
| throw new RuntimeException( |
| "Something went wrong during serialization", e); |
| } |
| |
| } |
| } |