/*
 * (c) Copyright 2014 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 org.openscore.lang.compiler;

import org.openscore.lang.compiler.modeller.model.Executable;
import org.openscore.lang.entities.CompilationArtifact;

import java.io.Serializable;
import java.util.Map;
import java.util.Set;

//todo: Eliya - add JavaDoc
public interface SlangCompiler {

    CompilationArtifact compile(SlangSource source, Set<SlangSource> path);

    /**
     * Pre-compile a Slang file into a list of Executables
     * @param source the slang source file
     * @return a list of Executable objects, containing either a flow or a list of all the operations in the file
     */
    Executable preCompile(SlangSource source);

    /**
     * Load system property sources written in slang and map them to fully qualified names
     * @param sources the slang sources containing the system properties
     * @return map containing all of the system properties with fully qualified keys
     */
    Map<String, ? extends Serializable> loadSystemProperties(SlangSource... sources);

}

@@ -554,36 +554,8 @@
 t;%0A%0A
-//todo: Eliya - add JavaDoc%0A
 publ
@@ -584,16 +584,273 @@
 iler %7B%0A%0A
+    /**%0A     * Compile a Slang source & its path to a CompilationArtifact object%0A     * @param source the slang source file%0A     * @param path a set of slang sources containing the source dependencies%0A     * @return the compiled CompilationArtifact%0A     */%0A
     Comp
@@ -957,19 +957,21 @@
 ang 
-fil
+sourc
 e into a
  lis
@@ -966,24 +966,17 @@
 e into a
- list of
+n
  Executa
@@ -978,17 +978,16 @@
 ecutable
-s
 %0A     * 
@@ -1038,24 +1038,17 @@
 return a
- list of
+n
  Executa
@@ -1057,17 +1057,16 @@
 e object
-s
 , contai
@@ -1091,48 +1091,106 @@
  or 
-a list of all the operations in the file
+operation in the file.%0A     *          Returns null if the source contains Slang system properties
 %0A   

Add & update Java Docs