package com.intellij.flex.model.run;
import com.intellij.flex.model.bc.JpsFlexBuildConfiguration;
import com.intellij.flex.model.bc.JpsFlexBuildConfigurationManager;
import com.intellij.flex.model.module.JpsFlexModuleType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.ex.JpsElementBase;
import org.jetbrains.jps.model.module.JpsTypedModule;
public abstract class JpsBCBasedRunnerParameters<Self extends JpsBCBasedRunnerParameters<Self>> extends JpsElementBase<Self> {
@NotNull protected String myModuleName = "";
@NotNull protected String myBCName = "";
protected JpsBCBasedRunnerParameters() {
}
protected JpsBCBasedRunnerParameters(final Self original) {
myModuleName = original.myModuleName;
myBCName = original.myBCName;
}
@NotNull
public String getModuleName() {
return myModuleName;
}
public void setModuleName(@NotNull final String moduleName) {
myModuleName = moduleName;
}
@NotNull
public String getBCName() {
return myBCName;
}
public void setBCName(@NotNull final String BCName) {
myBCName = BCName;
}
public void applyChanges(@NotNull final Self modified) {
myModuleName = modified.myModuleName;
myBCName = modified.myBCName;
}
@Nullable
public JpsFlexBuildConfiguration getBC(final JpsProject project) {
if (!myModuleName.isEmpty() && !myBCName.isEmpty()) {
for (JpsTypedModule<JpsFlexBuildConfigurationManager> module : project.getModules(JpsFlexModuleType.INSTANCE)) {
if (module.getName().equals(myModuleName)) {
return module.getProperties().findConfigurationByName(myBCName);
}
}
}
return null;
}
}