package com.intellij.flex.model.bc.impl;
import com.intellij.flex.model.bc.JpsFlexBuildConfiguration;
import com.intellij.flex.model.bc.JpsLibraryDependencyEntry;
import com.intellij.flex.model.bc.LinkageType;
import com.intellij.flex.model.lib.JpsFlexLibraryProperties;
import com.intellij.flex.model.lib.JpsFlexLibraryType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.JpsSimpleElement;
import org.jetbrains.jps.model.library.JpsLibrary;
import org.jetbrains.jps.model.library.JpsTypedLibrary;
import org.jetbrains.jps.model.module.JpsModule;
class JpsModuleLibraryDependencyEntryImpl extends JpsFlexDependencyEntryBase<JpsModuleLibraryDependencyEntryImpl>
implements JpsLibraryDependencyEntry {
private String myLibraryId;
JpsModuleLibraryDependencyEntryImpl(final String libraryId, final LinkageType linkageType) {
super(linkageType);
myLibraryId = libraryId;
}
private JpsModuleLibraryDependencyEntryImpl(final JpsModuleLibraryDependencyEntryImpl original) {
super(original);
myLibraryId = original.myLibraryId;
}
@NotNull
public JpsModuleLibraryDependencyEntryImpl createCopy() {
return new JpsModuleLibraryDependencyEntryImpl(this);
}
public void applyChanges(@NotNull final JpsModuleLibraryDependencyEntryImpl modified) {
super.applyChanges(modified);
myLibraryId = modified.myLibraryId;
}
// ------------------------------------
@Nullable
public JpsLibrary getLibrary() {
final JpsModule module = ((JpsFlexBuildConfiguration)myParent.getParent().getParent()).getModule();
for (JpsTypedLibrary<JpsSimpleElement<JpsFlexLibraryProperties>> library : module.getLibraryCollection()
.getLibraries(JpsFlexLibraryType.INSTANCE)) {
if (myLibraryId.equals(library.getProperties().getData().getLibraryId())) {
return library;
}
}
return null;
}
}