/*******************************************************************************
* (c) Copyright 2016 Hewlett-Packard Development Company, L.P.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0 which accompany this distribution.
*
* The Apache License is available at
* http://www.apache.org/licenses/LICENSE-2.0
*
*******************************************************************************/
package io.cloudslang.lang.compiler.modeller;
import io.cloudslang.lang.entities.SensitivityLevel;
import io.cloudslang.lang.compiler.modeller.result.ExecutableModellingResult;
import io.cloudslang.lang.compiler.modeller.result.ParseModellingResult;
/*
* Created by stoneo on 2/2/2015.
*/
/**
* Slang modeller - transforms a {@link io.cloudslang.lang.compiler.parser.model.ParsedSlang} source into
* the Slang model - an {@link io.cloudslang.lang.compiler.modeller.model.Executable} object
*/
public interface SlangModeller {
/**
* Pre-compile a Slang source into an {@link ExecutableModellingResult}
* @param parseModellingResult the {@link io.cloudslang.lang.compiler.parser.model.ParsedSlang} source
*
* @param sensitivityLevel
* @return an {@link ExecutableModellingResult} object, containing an executable
* which is either a flow or an operations in the file
*/
ExecutableModellingResult createModel(ParseModellingResult parseModellingResult, SensitivityLevel sensitivityLevel);
}