package com.haskforce.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;
public class JpsHaskellBuildOptionsExtension extends JpsCompositeElementBase<JpsHaskellBuildOptionsExtension> {
public static final JpsElementChildRole<JpsHaskellBuildOptionsExtension> ROLE = JpsElementChildRoleBase.create("HaskellBuildOptions");
private HaskellBuildOptions myOptions;
public JpsHaskellBuildOptionsExtension(HaskellBuildOptions options) {
myOptions = options;
}
@NotNull
@Override
public JpsHaskellBuildOptionsExtension createCopy() {
return new JpsHaskellBuildOptionsExtension(new HaskellBuildOptions(myOptions));
}
public HaskellBuildOptions getOptions() {
return myOptions;
}
public void setOptions(HaskellBuildOptions options) {
myOptions = options;
}
@NotNull
public static JpsHaskellBuildOptionsExtension getOrCreateExtension(@NotNull JpsProject project) {
JpsHaskellBuildOptionsExtension extension = project.getContainer().getChild(ROLE);
if (extension == null) {
extension = project.getContainer().setChild(ROLE, new JpsHaskellBuildOptionsExtension(new HaskellBuildOptions()));
}
return extension;
}
@Override
public String toString() {
return "JpsHaskellBuildOptionsExtension{" +
"myOptions=" + myOptions +
'}';
}
}