diff options
Diffstat (limited to 'platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java')
-rw-r--r-- | platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java | 172 |
1 files changed, 83 insertions, 89 deletions
diff --git a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java index 72d290e61e25..939ab753574b 100644 --- a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java +++ b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java @@ -53,17 +53,17 @@ import java.util.*; * @author mike */ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { - private static final Logger LOG = Logger.getInstance("#com.intellij.ide.plugins.PluginDescriptor"); - public static final IdeaPluginDescriptorImpl[] EMPTY_ARRAY = new IdeaPluginDescriptorImpl[0]; - private String myName; - private PluginId myId; + private static final Logger LOG = Logger.getInstance("#com.intellij.ide.plugins.PluginDescriptor"); + private static final StringInterner ourInterner = new WeakStringInterner(); private final NullableLazyValue<String> myDescription = new NullableLazyValue<String>() { @Override protected String compute() { return computeDescription(); } }; + private String myName; + private PluginId myId; private String myResourceBundleBaseName; private String myChangeNotes; private String myVersion; @@ -93,39 +93,62 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { private boolean myUseIdeaClassLoader; private boolean myUseCoreClassLoader; private boolean myEnabled = true; - private String mySinceBuild; private String myUntilBuild; - private Boolean mySkipped; - private List<String> myModules = null; public IdeaPluginDescriptorImpl(@NotNull File pluginPath) { myPath = pluginPath; } - IdeaPluginDescriptorImpl() { + @NotNull + public static String intern(@NotNull String s) { + return ourInterner.intern(s); } - public void setPath(@NotNull File path) { - myPath = path; + public static void internJDOMElement(@NotNull Element rootElement) { + JDOMUtil.internElement(rootElement, ourInterner); } - @Override - public File getPath() { - return myPath; + @Nullable + private static List<Element> copyElements(final Element[] elements) { + if (elements != null) { + List<Element> result = new ArrayList<Element>(); + for (Element extensionsRoot : elements) { + for (final Object o : extensionsRoot.getChildren()) { + Element element = (Element)o; + internJDOMElement(element); + result.add(element); + } + } + return result; + } + return null; } - private static final StringInterner ourInterner = new WeakStringInterner(); + @SuppressWarnings({"HardCodedStringLiteral"}) + private static String createDescriptionKey(final PluginId id) { + return "plugin." + id + ".description"; + } - @NotNull - public static String intern(@NotNull String s) { - return ourInterner.intern(s); + private static ComponentConfig[] mergeComponents(ComponentConfig[] first, ComponentConfig[] second) { + if (first == null) { + return second; + } + if (second == null) { + return first; + } + return ArrayUtil.mergeArrays(first, second); } - public static void internJDOMElement(@NotNull Element rootElement) { - JDOMUtil.internElement(rootElement, ourInterner); + @Override + public File getPath() { + return myPath; + } + + public void setPath(@NotNull File path) { + myPath = path; } public void readExternal(@NotNull Document document, @NotNull URL url) throws InvalidDataException, FileNotFoundException { @@ -243,7 +266,7 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { myExtensions.putValue(ExtensionsAreaImpl.extractEPName(extension), extension); } } - + List<Element> extensionPoints = copyElements(pluginBean.extensionPoints); if (extensionPoints != null) { myExtensionsPoints = new MultiMap<String, Element>(); @@ -251,7 +274,7 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { myExtensionsPoints.putValue(extensionPoint.getAttributeValue(ExtensionsAreaImpl.ATTRIBUTE_AREA), extensionPoint); } } - + myActionsElements = copyElements(pluginBean.actions); if (pluginBean.modules != null && !pluginBean.modules.isEmpty()) { @@ -259,27 +282,6 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { } } - @Nullable - private static List<Element> copyElements(final Element[] elements) { - if (elements != null) { - List<Element> result = new ArrayList<Element>(); - for (Element extensionsRoot : elements) { - for (final Object o : extensionsRoot.getChildren()) { - Element element = (Element)o; - internJDOMElement(element); - result.add(element); - } - } - return result; - } - return null; - } - - @SuppressWarnings({"HardCodedStringLiteral"}) - private static String createDescriptionKey(final PluginId id) { - return "plugin." + id + ".description"; - } - void registerExtensionPoints(ExtensionsArea area) { if (myExtensionsPoints != null) { for (Element element : myExtensionsPoints.get(area.getAreaClass())) { @@ -317,7 +319,6 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { return myDependencies; } - @Override @NotNull public PluginId[] getOptionalDependentPluginIds() { @@ -329,6 +330,11 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { return myVendor; } + public void setVendor( final String val ) + { + myVendor = val; + } + @Override public String getVersion() { return myVersion; @@ -344,6 +350,17 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { return myCategory; } + /* + This setter was explicitly defined to be able to set a category for a + descriptor outside its loading from the xml file. + Problem was that most commonly plugin authors do not publish the plugin's + category in its .xml file so to be consistent in plugins representation + (e.g. in the Plugins form) we have to set this value outside. + */ + public void setCategory( String category ){ + myCategory = category; + } + @SuppressWarnings("UnusedDeclaration") // Used in Upsource @Nullable public MultiMap<String, Element> getExtensionsPoints() { @@ -418,16 +435,31 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { return myVendorEmail; } + public void setVendorEmail( final String val ) + { + myVendorEmail = val; + } + @Override public String getVendorUrl() { return myVendorUrl; } + public void setVendorUrl( final String val ) + { + myVendorUrl = val; + } + @Override public String getUrl() { return url; } + public void setUrl( final String val ) + { + url = val; + } + @NonNls public String toString() { return "PluginDescriptor[name='" + myName + "', classpath='" + myPath + "']"; @@ -470,17 +502,6 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { } /* - This setter was explicitly defined to be able to set a category for a - descriptor outside its loading from the xml file. - Problem was that most commonly plugin authors do not publish the plugin's - category in its .xml file so to be consistent in plugins representation - (e.g. in the Plugins form) we have to set this value outside. - */ - public void setCategory( String category ){ - myCategory = category; - } - - /* This setter was explicitly defined to be able to set downloads count for a descriptor outside its loading from the xml file since this information is available only from the site. @@ -494,6 +515,10 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { return myDownloadCounter; } + public long getDate(){ + return myDate; + } + /* This setter was explicitly defined to be able to set date for a descriptor outside its loading from the xml file since this information @@ -503,27 +528,6 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { myDate = date; } - public long getDate(){ - return myDate; - } - - public void setVendor( final String val ) - { - myVendor = val; - } - public void setVendorEmail( final String val ) - { - myVendorEmail = val; - } - public void setVendorUrl( final String val ) - { - myVendorUrl = val; - } - public void setUrl( final String val ) - { - url = val; - } - @Override public ClassLoader getPluginClassLoader() { return myLoader != null ? myLoader : getClass().getClassLoader(); @@ -534,6 +538,10 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { return myVendorLogoPath; } + public void setVendorLogoPath(final String vendorLogoPath) { + myVendorLogoPath = vendorLogoPath; + } + @Override public boolean getUseIdeaClassLoader() { return myUseIdeaClassLoader; @@ -547,10 +555,6 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { myUseCoreClassLoader = useCoreClassLoader; } - public void setVendorLogoPath(final String vendorLogoPath) { - myVendorLogoPath = vendorLogoPath; - } - private String computeDescription() { ResourceBundle bundle = null; if (myResourceBundleBaseName != null) { @@ -635,16 +639,6 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { myModuleComponents = mergeComponents(myModuleComponents, descriptor.myModuleComponents); } - private static ComponentConfig[] mergeComponents(ComponentConfig[] first, ComponentConfig[] second) { - if (first == null) { - return second; - } - if (second == null) { - return first; - } - return ArrayUtil.mergeArrays(first, second); - } - public Boolean getSkipped() { return mySkipped; } |