package at.bestsolution.efxclipse.tooling.pde.e4.project.media.tpl.model;
import at.bestsolution.efxclipse.tooling.rrobot.model.task.CompilationUnit;
import at.bestsolution.efxclipse.tooling.rrobot.model.task.DynamicFile;
import at.bestsolution.efxclipse.tooling.rrobot.model.task.Generator;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtend2.lib.StringConcatenation;
@SuppressWarnings("all")
public class MediaTpl implements Generator<DynamicFile> {
public InputStream generate(final DynamicFile file, final Map<String,Object> data) {
EObject _eContainer = file.eContainer();
final CompilationUnit cu = ((CompilationUnit) _eContainer);
String _packagename = cu.getPackagename();
CharSequence _generate = this.generate(_packagename);
String _string = _generate.toString();
byte[] _bytes = _string.getBytes();
ByteArrayInputStream _byteArrayInputStream = new ByteArrayInputStream(_bytes);
return _byteArrayInputStream;
}
public CharSequence generate(final String packageName) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package ");
_builder.append(packageName, "");
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append("import javafx.beans.property.ReadOnlyObjectProperty;");
_builder.newLine();
_builder.append("import javafx.beans.property.SimpleObjectProperty;");
_builder.newLine();
_builder.append("import javafx.beans.property.SimpleStringProperty;");
_builder.newLine();
_builder.append("import javafx.beans.property.StringProperty;");
_builder.newLine();
_builder.newLine();
_builder.append("public class Media {");
_builder.newLine();
_builder.append("\t");
_builder.append("private ReadOnlyObjectProperty<MediaType> type;");
_builder.newLine();
_builder.append("\t");
_builder.append("private SimpleStringProperty name = new SimpleStringProperty(this, \"name\");");
_builder.newLine();
_builder.append("\t");
_builder.append("private SimpleStringProperty url = new SimpleStringProperty(this, \"url\");");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public Media(MediaType type) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("this.type = new SimpleObjectProperty<MediaType>(this, \"type\", type);");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public Media(MediaType type, String name, String url) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("this(type);");
_builder.newLine();
_builder.append("\t\t");
_builder.append("this.name.set(name);");
_builder.newLine();
_builder.append("\t\t");
_builder.append("this.url.set(url);");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public MediaType getType() {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return this.type.get();");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public ReadOnlyObjectProperty<MediaType> type() {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return type;");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public void setName(String name) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("this.name.set(name);");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public String getName() {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return this.name.get();");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public StringProperty name() {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return this.name;");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public void setUrl(String url) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("this.url.set(url);");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public String getUrl() {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return this.url.get();");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public StringProperty url() {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return this.url;");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public static final String serialize(Media media) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return media.type.getValue().name() + \"##_##\" + media.name.getValue() + \"##_##\" + media.url.getValue();");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("\t");
_builder.newLine();
_builder.append("\t");
_builder.append("public static final Media deserialize(String serializedObject) {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("String[] parts = serializedObject.split(\"##_##\");");
_builder.newLine();
_builder.append("\t\t");
_builder.append("Media m = new Media(MediaType.valueOf(parts[0]));");
_builder.newLine();
_builder.append("\t\t");
_builder.append("m.setName(parts[1]);");
_builder.newLine();
_builder.append("\t\t");
_builder.append("m.setUrl(parts[2]);");
_builder.newLine();
_builder.append("\t\t");
_builder.append("return m;");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
return _builder;
}
}