package com.intellij.flex.model.bc; import java.util.ArrayList; import java.util.Collection; public class LinkageType { private static final Collection<LinkageType> all = new ArrayList<>(); public static final LinkageType Default = new LinkageType("Default", "Default", ""); public static final LinkageType Merged = new LinkageType("Merged", "Merged into code", "Merged"); public static final LinkageType RSL = new LinkageType("Runtime", "Runtime shared library", "RSL"); public static final LinkageType External = new LinkageType("External", "External", "External"); public static final LinkageType Include = new LinkageType("Include", "Include", "Include"); public static final LinkageType LoadInRuntime = new LinkageType("Loaded", "Loaded at runtime", "Loaded"); public static final LinkageType Test = new LinkageType("Test", "Test", "Test"); private static final LinkageType[] SWC_LINKAGE_VALUES = new LinkageType[]{Merged, /*RSL,*/ External, Include, Test}; private final String myLongText; private final String myShortText; private final String mySerializedText; public String getSerializedText() { return mySerializedText; } public String getLongText() { return myLongText; } public String getShortText() { return myShortText; } private LinkageType(final String serializedText, final String longText, final String shortText) { myLongText = longText; mySerializedText = serializedText; myShortText = shortText; all.add(this); } @Override public String toString() { return getShortText(); } public static LinkageType valueOf(final String linkageType, final LinkageType defaultValue) { for (LinkageType type : all) { if (type.getSerializedText().equals(linkageType)) { return type; } } return defaultValue; } public static LinkageType[] getSwcLinkageValues() { return SWC_LINKAGE_VALUES; } }