blob: dda43c2ff7696c590bed35d7c803f6bc8c620bb4 [file] [log] [blame]
/*******************************************************************************
* 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);
}
}
}