/*
 * (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;

public interface SlangCompiler {

    /**
     * Compile a Slang source & its path to a CompilationArtifact object
     * @param source the slang source file
     * @param path a set of slang sources containing the source dependencies
     * @return the compiled CompilationArtifact
     */
    CompilationArtifact compile(SlangSource source, Set<SlangSource> path);

    /**
     * Pre-compile a Slang source into an Executable
     * @param source the slang source file
     * @return an Executable object, containing either a flow or operation in the file.
     *          Returns null if the source contains Slang system properties
     */
    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);

}

@@ -626,9 +626,11 @@
 rce 
-&
+and
  its
@@ -640,16 +640,51 @@
 th to a 
+%7B@link org.openscore.lang.entities.
 Compilat
@@ -694,16 +694,17 @@
 Artifact
+%7D
  object%0A
@@ -851,16 +851,51 @@
 ompiled 
+%7B@link org.openscore.lang.entities.
 Compilat
@@ -905,16 +905,17 @@
 Artifact
+%7D
 %0A     */
@@ -1038,24 +1038,74 @@
 rce into an 
+%7B@link org.openscore.lang.compiler.modeller.model.
 Executable%0A 
@@ -1102,16 +1102,17 @@
 ecutable
+%7D
 %0A     * 
@@ -1133,44 +1133,124 @@
 the 
-slang source file%0A     * @return an 
+%7B@link org.openscore.lang.compiler.SlangSource%7D%0A     * @return an %7B@link org.openscore.lang.compiler.modeller.model.
 Exec
@@ -1255,16 +1255,17 @@
 ecutable
+%7D
  object,
@@ -1573,28 +1573,63 @@
 ces the 
-slang s
+%7B@link org.openscore.lang.compiler.SlangS
 ource
+%7D
 s contai

Fix Java docs