package com.intellij.lang.javascript.flex.projectStructure.model.impl; import com.intellij.flex.model.bc.LinkageType; import com.intellij.lang.javascript.flex.projectStructure.model.DependencyType; import com.intellij.lang.javascript.flex.projectStructure.model.ModifiableDependencyType; import com.intellij.util.xmlb.annotations.Attribute; import com.intellij.util.xmlb.annotations.Tag; import org.jetbrains.annotations.NotNull; /** * @author ksafonov */ class DependencyTypeImpl implements ModifiableDependencyType { @NotNull private LinkageType myLinkageType = DEFAULT_LINKAGE; @Override @NotNull public LinkageType getLinkageType() { return myLinkageType; } @Override public void setLinkageType(@NotNull LinkageType linkageType) { myLinkageType = linkageType; } public State getState() { State state = new State(); state.LINKAGE_TYPE = myLinkageType.getSerializedText(); return state; } public void loadState(State state) { myLinkageType = LinkageType.valueOf(state.LINKAGE_TYPE, DEFAULT_LINKAGE); } public void applyTo(ModifiableDependencyType copy) { copy.setLinkageType(myLinkageType); } @Override public void copyFrom(DependencyType dependencyType) { myLinkageType = dependencyType.getLinkageType(); } @Override public boolean isEqual(DependencyType other) { return myLinkageType == other.getLinkageType(); } @Tag("dependency") public static class State { @Attribute("linkage") public String LINKAGE_TYPE; } }