diff --git a/plugins/org.etsi.mts.tdl.helper/src/org/etsi/mts/tdl/helper/TDLHelper.java b/plugins/org.etsi.mts.tdl.helper/src/org/etsi/mts/tdl/helper/TDLHelper.java index 23b1fa96f5ebd8258cf34721c3e6876f70a24117..b513c4f42088121fdd85efaa137d22108c9ed886 100644 --- a/plugins/org.etsi.mts.tdl.helper/src/org/etsi/mts/tdl/helper/TDLHelper.java +++ b/plugins/org.etsi.mts.tdl.helper/src/org/etsi/mts/tdl/helper/TDLHelper.java @@ -2,8 +2,8 @@ package org.etsi.mts.tdl.helper; +import java.io.ByteArrayInputStream; import java.io.IOException; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -16,7 +16,9 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceVisitor; import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.emf.common.util.URI; @@ -43,7 +45,6 @@ import org.etsi.mts.tdl.TDLtxStandaloneSetup; import org.etsi.mts.tdl.TDLtxiStandaloneSetup; import org.etsi.mts.tdl.TPLan2StandaloneSetup; import org.etsi.mts.tdl.impl.tdlPackageImpl; -import org.etsi.mts.tdl.resources.ResourceHandler; import org.etsi.mts.tdl.structuredobjectives.impl.StructuredObjectivesPackageImpl; import org.osgi.framework.Bundle; @@ -141,9 +142,22 @@ public class TDLHelper { * @param resource A resource to be saved. * @throws Exception */ - public static void store(Resource resource) throws Exception { + public static void store(Resource resource, boolean derived) throws Exception { + if (derived) { + IFile file = resourceToFile(resource); + if (file != null) { + if (!file.exists()) + file.create(new ByteArrayInputStream(new byte[0]), false, null); + file.setDerived(derived, new NullProgressMonitor()); + } + } resource.save(Collections.emptyMap()); } + + public static IFile resourceToFile(Resource resource) { + URI uri = resource.getURI(); + return ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(uri.toPlatformString(true))); + } /** diff --git a/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF b/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF index a0bd5c0116448abcfd370a655837dc9c944433c3..58883f63eb5b2405df25661d7ea0df10e409c63c 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF +++ b/plugins/org.etsi.mts.tdl.importers.ui/META-INF/MANIFEST.MF @@ -20,7 +20,8 @@ Require-Bundle: org.eclipse.ui, org.etsi.mts.tdl.openapi2tdl.next, org.etsi.mts.tdl.to2tdl, org.etsi.mts.tdl.json2tdl, - org.etsi.mts.tdl.yang2tdl + org.etsi.mts.tdl.yang2tdl, + org.etsi.mts.tdl.helper Bundle-ActivationPolicy: lazy Import-Package: org.eclipse.emf.common.util Bundle-RequiredExecutionEnvironment: JavaSE-11 diff --git a/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java b/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java index 81fff5c53e39c9e7ed349b8063f04c11e7735bcf..5f3863d81a611ded4422f9f4ba6712e51154495e 100644 --- a/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java +++ b/plugins/org.etsi.mts.tdl.importers.ui/src/org/etsi/mts/tdl/importers/ui/handlers/TranslationHandler.java @@ -29,6 +29,7 @@ import org.eclipse.xtext.resource.XtextResourceSet; import org.eclipse.xtext.ui.resource.IResourceSetProvider; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.asn2tdl.ASN2TDLTranslator; +import org.etsi.mts.tdl.helper.TDLHelper; import org.etsi.mts.tdl.json2tdl.JSON2TDLTranslator; import org.etsi.mts.tdl.openapi2tdl.next.OpenAPI2TDLTranslatorNext; import org.etsi.mts.tdl.to2tdl.TO2TDLTranslator; @@ -163,7 +164,7 @@ public class TranslationHandler extends AbstractHandler { } if (translator != null) { translator.setTargetResource(tr); - translator.initTargetResource(translator.cleanName(file.getName())); + translator.initTargetResource(translator.getCleanName(file.getName())); try { translator.translate(filepath); } catch (Exception e) { @@ -189,7 +190,7 @@ public class TranslationHandler extends AbstractHandler { //tr.getContents().addAll(EcoreUtil.copyAll(r.getContents())); try { - tr.save(null); + TDLHelper.store(tr, true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java index 94e6c92da3d041aee8562773da2cbebfec8d4388..ad827c85c027a4d82e6cffdc89539199bde4e6f6 100644 --- a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java @@ -60,7 +60,7 @@ public class ConverterNext { translator.initTargetResource(translator.cleanName(new File(inputPath).getName())); translator.translate(inputPath); name = ((Package) tr.getContents().get(0)).getName(); - TDLHelper.store(tr); + TDLHelper.store(tr, true); } catch (Exception e) { e.printStackTrace(); } diff --git a/plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java b/plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java index 4d1bc5cfb532d0c4b44ca29fa4bd31e6cf086637..a1ca3ffab1f01b970d97d743a58ce89651e575d5 100644 --- a/plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java +++ b/plugins/org.etsi.mts.tdl.standalone/src/org/etsi/mts/tdl/standalone/Standalone.java @@ -301,7 +301,7 @@ public class Standalone { try { Resource target = TDLHelper.create(resource.getURI().path() + "." + targetExtension); target.getContents().addAll(EcoreUtil.copyAll(resource.getContents())); - TDLHelper.store(target); + TDLHelper.store(target, true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -314,7 +314,7 @@ public class Standalone { translator.setTargetResource(TDLHelper.create(source.getAbsolutePath()+"-generated."+targetExtension)); translator.initTargetResource(translator.cleanName(source.getName())); translator.translate(source.getAbsolutePath()); - TDLHelper.store(translator.getTargetResource()); + TDLHelper.store(translator.getTargetResource(), true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java b/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java index 014904cfd852feccc8d6cbd563cf8437577e8d8c..ee7fc34a652c46a822bc7d65b42be60e426355cf 100644 --- a/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java +++ b/plugins/org.etsi.mts.tdl.to2tdl/src/org/etsi/mts/tdl/to2tdl/TO2TDLTranslator.java @@ -475,6 +475,6 @@ public class TO2TDLTranslator extends AbstractTranslator { initTargetResource("generated_from_"+p.getName()); addImports(p); transform(p); - TDLHelper.store(tr); + TDLHelper.store(tr, false); } } diff --git a/plugins/org.etsi.mts.tdl.yang2tdl/src/org/etsi/mts/tdl/yang2tdl/YANGConverter.java b/plugins/org.etsi.mts.tdl.yang2tdl/src/org/etsi/mts/tdl/yang2tdl/YANGConverter.java index b86cb8998b7d19cef8b609d3db35a080dbc9f930..f9824894f5d2945a7581b844bd214f9582366672 100644 --- a/plugins/org.etsi.mts.tdl.yang2tdl/src/org/etsi/mts/tdl/yang2tdl/YANGConverter.java +++ b/plugins/org.etsi.mts.tdl.yang2tdl/src/org/etsi/mts/tdl/yang2tdl/YANGConverter.java @@ -47,7 +47,7 @@ public class YANGConverter { // names.add(e.getName()); // } content = TDLHelper.getText(tr); - TDLHelper.store(tr); + TDLHelper.store(tr, true); // Resource tdl = TDLHelper.load(outputPath+".tdl"); // Resource tdltx = TDLHelper.create(outputPath); // tdltx.getContents().addAll(EcoreUtil.copyAll(tdl.getContents()));