package com.intellij.flex.uiDesigner.libraries; import com.intellij.flex.uiDesigner.AssetCounter; import com.intellij.openapi.vfs.VirtualFile; import gnu.trove.THashMap; import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.io.Info; import java.util.Map; public class Library extends Info<VirtualFile> { public static final String DEFAULTS_CSS = "defaults.css"; static final String CATALOG = "catalog.xml"; static final String SWF = "library.swf"; public byte[] inheritingStyles; @Nullable public byte[] defaultsStyle; @Nullable public AssetCounter assetCounter; // en_US => {"layout", "components"} public final Map<String, THashSet<String>> resourceBundles = new THashMap<>(); Library(@NotNull VirtualFile file) { super(file); } public boolean hasResourceBundles() { return !resourceBundles.isEmpty(); } public boolean isStyleOwner() { return inheritingStyles != null || defaultsStyle != null; } @Nullable public VirtualFile getDefaultsCssFile() { return element.findChild(DEFAULTS_CSS); } public VirtualFile getCatalogFile() { return getCatalogFile(element); } public VirtualFile getSwfFile() { return getSwfFile(element); } @Nullable public static VirtualFile getSwfFile(VirtualFile swcFile) { return swcFile.findChild(SWF); } public static VirtualFile getCatalogFile(VirtualFile swcFile) { return swcFile.findChild(CATALOG); } public VirtualFile getFile() { return element; } @Override public String toString() { return getFile().getNameWithoutExtension(); } }