package com.jetbrains.lang.dart.sdk; import com.intellij.openapi.roots.libraries.LibraryProperties; import com.intellij.util.xmlb.XmlSerializerUtil; import com.intellij.util.xmlb.annotations.MapAnnotation; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; import java.util.TreeMap; public class DartPackagesLibraryProperties extends LibraryProperties<DartPackagesLibraryProperties> { private @NotNull Map<String, List<String>> myPackageNameToDirsMap; public DartPackagesLibraryProperties() { myPackageNameToDirsMap = new TreeMap<>(); } @NotNull @MapAnnotation(surroundWithTag = false) public Map<String, List<String>> getPackageNameToDirsMap() { return myPackageNameToDirsMap; } public void setPackageNameToDirsMap(@NotNull final Map<String, List<String>> packageNameToDirsMap) { myPackageNameToDirsMap = packageNameToDirsMap; } @Nullable public DartPackagesLibraryProperties getState() { return this; } public void loadState(final DartPackagesLibraryProperties state) { XmlSerializerUtil.copyBean(state, this); } public boolean equals(final Object obj) { return obj instanceof DartPackagesLibraryProperties && myPackageNameToDirsMap.equals(((DartPackagesLibraryProperties)obj).getPackageNameToDirsMap()); } public int hashCode() { return myPackageNameToDirsMap.hashCode(); } }