package com.intellij.flex.model.bc.impl;
import com.intellij.flex.model.bc.JpsFlexBCDependencyEntry;
import com.intellij.flex.model.bc.JpsFlexBCReference;
import com.intellij.flex.model.bc.JpsFlexBuildConfiguration;
import com.intellij.flex.model.bc.LinkageType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.JpsElementFactory;
import org.jetbrains.jps.model.module.JpsModuleReference;
class JpsFlexBCDependencyEntryImpl extends JpsFlexDependencyEntryBase<JpsFlexBCDependencyEntryImpl> implements JpsFlexBCDependencyEntry {
JpsFlexBCDependencyEntryImpl(final String moduleName, final String bcName, final LinkageType linkageType) {
super(linkageType);
final JpsModuleReference moduleRef = JpsElementFactory.getInstance().createModuleReference(moduleName);
final JpsFlexBCReferenceImpl bcRef = new JpsFlexBCReferenceImpl(bcName, moduleRef);
myContainer.setChild(JpsFlexBCReferenceImpl.ROLE, bcRef);
}
private JpsFlexBCDependencyEntryImpl(final JpsFlexBCDependencyEntryImpl original) {
super(original);
}
@NotNull
public JpsFlexBCDependencyEntryImpl createCopy() {
return new JpsFlexBCDependencyEntryImpl(this);
}
// ------------------------------------
@Nullable
public JpsFlexBuildConfiguration getBC() {
final JpsFlexBCReference bcRef = myContainer.getChild(JpsFlexBCReferenceImpl.ROLE);
return bcRef == null ? null : bcRef.resolve();
}
}