Commit 3804aba5 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ updated openapi2tdl translator and converter to optionally include inline definitions

parent f1990f08
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -25,7 +25,11 @@ public class ConverterNext {
	}

	public static String processToString(String inputPath, String outputPath, String sourceMapping, String targetMapping) {
		OpenAPI spec = parseSpec(inputPath);
		return processToString(inputPath, outputPath, sourceMapping, targetMapping, false);
	}
	
	public static String processToString(String inputPath, String outputPath, String sourceMapping, String targetMapping, boolean inline) {
//		OpenAPI spec = parseSpec(inputPath);
		System.out.println("Exporting: "+outputPath+ " : "+ new File(outputPath).getAbsolutePath());
		OpenAPI2TDLTranslatorNext translator = new OpenAPI2TDLTranslatorNext();
		String content = "Package imported {}";
@@ -33,7 +37,7 @@ public class ConverterNext {
			Resource tr = TDLHelper.create(outputPath);
			translator.setTargetResource(tr);
			translator.initTargetResource(translator.cleanName(new File(inputPath).getName()));
			translator.translate(inputPath, sourceMapping, targetMapping);
			translator.translate(inputPath, sourceMapping, targetMapping, inline);
			content = TDLHelper.getText(tr);
		} catch (Exception e) {
			e.printStackTrace();
+10 −4
Original line number Diff line number Diff line
@@ -28,6 +28,9 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
	}
	
	public void translate(String filename, String sourceMappingTag, String targetMappingTag) throws Exception {
		translate(filename, sourceMappingTag, targetMappingTag, false);
	}
	public void translate(String filename, String sourceMappingTag, String targetMappingTag, boolean inline) throws Exception {
//		Converter.setTdlTokens(Arrays.asList(new String[] {"'name'", "'type'", "'size'", "'instance'"}));
//		Converter converter = new Converter(filename);
//		converter.runConversion();
@@ -35,7 +38,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
		//TODO: refine according to other translators
		//TODO: separate validation into another component
		
		model = parseSpec(filename);
		model = parseSpec(filename, inline);
		drm = getTypeFor(sourceMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING);
		drm.setResourceURI(new File(filename).getName());
		drmTarget = getTypeFor(targetMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING);
@@ -138,15 +141,18 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
     * @param specFilePath The path to the specification file
     * @return A "raw" OpenAPI document
     */
    public static OpenAPI parseSpec(String specFilePath) {
    public static OpenAPI parseSpec(String specFilePath, Boolean processInline) {
        OpenAPI openAPI = new OpenAPIParser().readLocation(specFilePath, null, new ParseOptions()).getOpenAPI();
        // Invoke helper function to get the original swagger version.
        // See https://github.com/swagger-api/swagger-parser/pull/1374
        // Also see https://github.com/swagger-api/swagger-parser/issues/1369.
        ModelUtils.getOpenApiVersion(openAPI, specFilePath, null);
        
//        InlineModelResolver inlineModelResolver = new InlineModelResolver();
//        inlineModelResolver.flatten(openAPI);
        //DONE: make optional and expose for configuration
        if (processInline) {
        	InlineModelResolver inlineModelResolver = new InlineModelResolver();
        	inlineModelResolver.flatten(openAPI);
        }
        
        return openAPI;
    }