package org.elixir_lang.jps.model; import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.model.JpsElementChildRole; import org.jetbrains.jps.model.JpsProject; import org.jetbrains.jps.model.ex.JpsCompositeElementBase; import org.jetbrains.jps.model.ex.JpsElementChildRoleBase; /** * Created by zyuyou on 15/7/6. */ public class JpsElixirCompilerOptionsExtension extends JpsCompositeElementBase<JpsElixirCompilerOptionsExtension>{ public static final JpsElementChildRole<JpsElixirCompilerOptionsExtension> ROLE = JpsElementChildRoleBase.create("ElixirCompilerOptions"); private ElixirCompilerOptions myOptions; public JpsElixirCompilerOptionsExtension(ElixirCompilerOptions options) { this.myOptions = options; } @NotNull @Override public JpsElixirCompilerOptionsExtension createCopy() { return new JpsElixirCompilerOptionsExtension(new ElixirCompilerOptions(myOptions)); } public ElixirCompilerOptions getOptions(){ return myOptions; } public void setOptions(ElixirCompilerOptions options) { myOptions = options; } @NotNull public static JpsElixirCompilerOptionsExtension getOrCreateExtension(@NotNull JpsProject project){ JpsElixirCompilerOptionsExtension extension = project.getContainer().getChild(ROLE); if (extension == null){ extension = project.getContainer().setChild(ROLE, new JpsElixirCompilerOptionsExtension(new ElixirCompilerOptions())); } return extension; } }