/*******************************************************************************
 * Copyright (c) 2008, 2021 SAP AG and IBM Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     SAP AG - initial API and implementation
 *     IBM Corporation - updates including multiple snapshots
 *******************************************************************************/
package org.eclipse.mat.internal;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS
{
    private static final String BUNDLE_NAME = "org.eclipse.mat.internal.messages"; //$NON-NLS-1$

    public static String AbstractExtractedCollection_ToString;
    public static String AbstractExtractedCollection_UnhandledCollection;

    public static String ArgumentParser_ErrorMsg_ParsingError;
    public static String ArgumentParser_ErrorMsg_Unparsed;

    public static String ArrayFillRatioQuery_ColumnFillRatio;
    public static String ArrayFillRatioQuery_ColumnNumObjects;
    public static String ArrayFillRatioQuery_ExtractingFillRatios;

    public static String ArraysBySizeQuery_ColumnLength;
    public static String ArraysBySizeQuery_ColumnNumObjects;
    public static String ArraysBySizeQuery_ExtractingArraySizes;
    public static String ArraysBySizeQuery_SingleInstanceSize;

    public static String BigDropsQuery_AccumulationPoint;
    public static String BigDropsQuery_Column_AccPtSize;
    public static String BigDropsQuery_Column_AccumulationPoint;
    public static String BigDropsQuery_Column_Dominator;
    public static String BigDropsQuery_Column_DomRetainedSize;
    public static String BigDropsQuery_Column_NumChildren;
    public static String BigDropsQuery_Dominator;
    public static String BigDropsQuery_Root;

    public static String BundleReaderFactory_ErrorMsg_EquinoxNotFound;
    public static String BundleRegistryQuery_Bundles;
    public static String BundleRegistryQuery_BundleState;
    public static String BundleRegistryQuery_BundlesUsing;
    public static String BundleRegistryQuery_ContributedBy;
    public static String BundleRegistryQuery_Dependencies;
    public static String BundleRegistryQuery_Dependents;
    public static String BundleRegistryQuery_ErrorMsg_FailedReadingModel;
    public static String BundleRegistryQuery_ExtensionPoints;
    public static String BundleRegistryQuery_Extensions;
    public static String BundleRegistryQuery_Fragments;
    public static String BundleRegistryQuery_HostedBy;
    public static String BundleRegistryQuery_Properties;
    public static String BundleRegistryQuery_RegisteredBy;
    public static String BundleRegistryQuery_RegisteredServices;
    public static String BundleRegistryQuery_Services;
    public static String BundleRegistryQuery_UserServices;

    public static String ClassLoaderExplorerQuery_Class;
    public static String ClassLoaderExplorerQuery_ClassLoader;
    public static String ClassLoaderExplorerQuery_Column_DefinedClasses;
    public static String ClassLoaderExplorerQuery_Column_NoInstances;
    public static String ClassLoaderExplorerQuery_DefinedClasses;
    public static String ClassLoaderExplorerQuery_Instances;

    public static String ClassSpecificNameResolverRegistry_Error_CreateResolver;
    public static String ClassSpecificNameResolverRegistry_Error_MissingObject;
    public static String ClassSpecificNameResolverRegistry_Error_MissingSubjects;
    public static String ClassSpecificNameResolverRegistry_Error_Resolving;
    public static String ClassSpecificNameResolverRegistry_ErrorMsg_DuringResolving;
    public static String ClassSpecificNameResolverRegistry_ErrorMsg_MissingSubject;
    public static String ClassSpecificNameResolverRegistry_ErrorMsg_WhileCreatingResolver;

    public static String CollectionFillRatioQuery_ClassNotFound;
    public static String CollectionFillRatioQuery_Column_FillRatio;
    public static String CollectionFillRatioQuery_ColumnNumObjects;
    public static String CollectionFillRatioQuery_ErrorMsg_AllArgumentsMustBeSet;
    public static String CollectionFillRatioQuery_ExtractingFillRatios;
    public static String CollectionFillRatioQuery_IgnoringCollection;
    public static String CollectionFillRatioQuery_NeedSizeAndArrayOrNone;

    public static String CollectionUtil_BadBackingArray;

    public static String CollectionsBySizeQuery_ClassNotFound;
    public static String CollectionsBySizeQuery_CollectingSizes;
    public static String CollectionsBySizeQuery_Column_Length;
    public static String CollectionsBySizeQuery_Column_NumObjects;
    public static String CollectionsBySizeQuery_ErrorMsg_ArgumentMissing;
    public static String CollectionsBySizeQuery_IgnoringCollection;
    public static String CollectionsBySizeQuery_NeedSizeAndArrayOrNone;

    public static String Column_ClassName;
    public static String Column_ClassLoaderName;
    public static String Column_Heap;
    public static String Column_Objects;
    public static String Column_Percentage;
    public static String Column_RetainedHeap;
    public static String Column_ShallowHeap;
    public static String Column_WastedHeap;

    public static String CompareTablesQuery_APPROX;
    public static String CompareTablesQuery_Comparing;
    public static String CompareTablesQuery_IncompleteSorting;
    public static String CompareTablesQuery_Initial;
    public static String CompareTablesQuery_InitialComparisonForTable;
    public static String CompareTablesQuery_ResolvingDuplicateKey;
    public static String CompareTablesQuery_BuildingResult;
    public static String CompareTablesQuery_ColumnAbsolute;
    public static String CompareTablesQuery_ColumnDifference;
    public static String CompareTablesQuery_ColumnPercentDifference;
    public static String CompareTablesQuery_DifferenceFirst;
    public static String CompareTablesQuery_DifferenceLast;
    public static String CompareTablesQuery_DifferenceMiddle;
    public static String CompareTablesQuery_DifferenceOf2;
    public static String CompareTablesQuery_GE;
    public static String CompareTablesQuery_IntersectionFirst;
    public static String CompareTablesQuery_IntersectionLast;
    public static String CompareTablesQuery_IntersectionMiddle;
    public static String CompareTablesQuery_IntersectionOf2;
    public static String CompareTablesQuery_LE;
    public static String CompareTablesQuery_MissingKeyColumn;
    public static String CompareTablesQuery_Table;
    public static String CompareTablesQuery_SymmetricDifferenceFirst;
    public static String CompareTablesQuery_SymmetricDifferenceLast;
    public static String CompareTablesQuery_SymmetricDifferenceMiddle;
    public static String CompareTablesQuery_SymmetricDifferenceOf2;
    public static String CompareTablesQuery_UnionFirst;
    public static String CompareTablesQuery_UnionLast;
    public static String CompareTablesQuery_UnionMiddle;
    public static String CompareTablesQuery_UnionOf2;

    public static String ComponentReportQuery_ArrayFillRatios;
    public static String ComponentReportQuery_Classes;
    public static String ComponentReportQuery_ClassLoader;
    public static String ComponentReportQuery_CollectionFillRatios;
    public static String ComponentReportQuery_Comment;
    public static String ComponentReportQuery_ComponentReport;
    public static String ComponentReportQuery_Details;
    public static String ComponentReportQuery_DetectedEmptyCollections;
    public static String ComponentReportQuery_DetectedTheFollowingArraysWithLowFillRatios;
    public static String ComponentReportQuery_DetectedTheFollowingPrimitiveArray;
    public static String ComponentReportQuery_DetectedZeroLengthArray;
    public static String ComponentReportQuery_Distribution;
    public static String ComponentReportQuery_DuplicateStrings;
    public static String ComponentReportQuery_EmptyCollections;

    public static String ComponentReportQuery_ExampleLeakDetails;
    public static String ComponentReportQuery_FinalizerStatistics;
    public static String ComponentReportQuery_Histogram;
    public static String ComponentReportQuery_HistogramFinalizeMethod;
    public static String ComponentReportQuery_HistogramOfSoftReferences;
    public static String ComponentReportQuery_HistogramOfWeakReferences;
    public static String ComponentReportQuery_Label_Bytes;
    public static String ComponentReportQuery_MapCollisionRatios;
    public static String ComponentReportQuery_Miscellaneous;
    public static String ComponentReportQuery_Msg_DetectedCollectionFillRatios;
    public static String ComponentReportQuery_Msg_DetectedCollisionRatios;
    public static String ComponentReportQuery_Msg_FoundOccurrences;
    public static String ComponentReportQuery_Msg_InstancesRetainBytes;
    public static String ComponentReportQuery_Msg_NoAliveSoftReferences;
    public static String ComponentReportQuery_Msg_NoAliveWeakReferences;
    public static String ComponentReportQuery_Msg_NoCollisionRatiosFound;
    public static String ComponentReportQuery_Msg_NoExcessiveEmptyCollectionsFound;
    public static String ComponentReportQuery_Msg_NoFinalizerFound;
    public static String ComponentReportQuery_Msg_NoFinalizerObjects;
    public static String ComponentReportQuery_Msg_NoLowFillRatiosFound;
    public static String ComponentReportQuery_Msg_NoSoftReferencesFound;
    public static String ComponentReportQuery_Msg_NoWeakReferencesFound;
    public static String ComponentReportQuery_Msg_SoftReferencesFound;
    public static String ComponentReportQuery_Msg_SoftReferencesRetained;
    public static String ComponentReportQuery_Msg_SoftReferencesStronglyRetained;
    public static String ComponentReportQuery_Msg_TotalFinalizerMethods;
    public static String ComponentReportQuery_Msg_WeakReferencesFound;
    public static String ComponentReportQuery_Msg_WeakReferencesRetained;
    public static String ComponentReportQuery_Msg_WeakReferencesStronglyRetained;
    public static String ComponentReportQuery_NoArraysWithLowFillRatios;
    public static String ComponentReportQuery_NoExcessiveDuplicateStrings;
    public static String ComponentReportQuery_NoExcessivePrimitiveArrays;
    public static String ComponentReportQuery_NoExcessiveUsageZeroLengthArray;
    public static String ComponentReportQuery_Objects;
    public static String ComponentReportQuery_Overview;
    public static String ComponentReportQuery_PathsToReferents;
    public static String ComponentReportQuery_PossibleMemoryLeak;
    public static String ComponentReportQuery_PossibleMemoryWaste;
    public static String ComponentReportQuery_PrimitiveArraysWithAConstantValue;
    public static String ComponentReportQuery_ReferentResult;

    public static String ComponentReportQuery_RetainedSet;
    public static String ComponentReportQuery_Size;
    public static String ComponentReportQuery_SoftReferenceStatistics;
    public static String ComponentReportQuery_TopConsumers;
    public static String ComponentReportQuery_TopElementsInclude;
    public static String ComponentReportQuery_WeakReferenceStatistics;
    public static String ComponentReportQuery_ZeroLengthArrays;
    public static String CustomizedRetainedSetQuery_RetainedBy;

    public static String DeltaHistogram_Progress;

    public static String DominatorQuery_Group_ByClass;
    public static String DominatorQuery_Group_ByClassLoader;
    public static String DominatorQuery_Group_ByPackage;
    public static String DominatorQuery_Group_None;
    public static String DominatorQuery_LabelAll;
    public static String DominatorQuery_Msg_Grouping;

    public static String DuplicatedClassesQuery_Checking;
    public static String DuplicatedClassesQuery_ClassLoaderNotFound;
    public static String DuplicatedClassesQuery_Column_Count;
    public static String DuplicatedClassesQuery_Column_DefinedClasses;
    public static String DuplicatedClassesQuery_Column_NoInstances;

    public static String EclipseNameResolver_EquinoxStartupClassLoader;
    public static String EclipseNameResolver_Point;
    public static String EclipseNameResolver_Rectangle;
    public static String EclipseNameResolver_RGB;

    public static String EquinoxBundleReader_CannotFindContributorID;

    public static String EquinoxBundleReader_ErrorMsg_BundleNotFound;

    public static String EquinoxBundleReader_ErrorMsg_DuplicateConfigurationElement;
    public static String EquinoxBundleReader_ErrorMsg_DuplicateExtension;
    public static String EquinoxBundleReader_ErrorMsg_DuplicateExtensionPoint;
    public static String EquinoxBundleReader_ErrorMsg_ExpectedArrayType;
    public static String EquinoxBundleReader_ErrorMsg_ExpectedFieldExtraInformation;
    public static String EquinoxBundleReader_ErrorMsg_ExpectedFieldObjectId;
    public static String EquinoxBundleReader_ErrorMsg_ExpectedFieldParent;
    public static String EquinoxBundleReader_ErrorMsg_ExpectedStringArray;
    public static String EquinoxBundleReader_ErrorMsg_ReadingProperty;
    public static String EquinoxBundleReader_ErrorMsg_ServiceName;
    public static String EquinoxBundleReader_ErrorMsg_ServiceProperty;
    public static String EquinoxBundleReader_ErrorMsg_SoftReferencesNotHandled;
    public static String EquinoxBundleReader_ErrorMsg_UnknownElementType;
    public static String EquinoxBundleReader_ExpectedFieldContributorId;
    public static String EquinoxBundleReader_ExpectedFieldPropertiesAndValues;
    public static String EquinoxBundleReader_NotApplicable;

    public static String EquinoxBundleReader_ProcessListenerBundles;
    public static String EquinoxBundleReader_ReadingBundles;
    public static String EquinoxBundleReader_ReadingExtensions;
    public static String EquinoxBundleReader_ReadingServices;
    public static String EquinoxBundleReader_ReadingDependencies;
    public static String EquinoxBundleReader_State_Active;
    public static String EquinoxBundleReader_State_Installed;
    public static String EquinoxBundleReader_State_Resolved;
    public static String EquinoxBundleReader_State_Starting;
    public static String EquinoxBundleReader_State_LazyStarting;
    public static String EquinoxBundleReader_State_Stopping;
    public static String EquinoxBundleReader_State_Uninstalled;

    public static String ExtractListValuesQuery_CollectingElements;
    public static String ExtractListValuesQuery_NotAWellKnownList;

    public static String FinalizerQuery_Finalizers;
    public static String FinalizerQuery_FinalizerThread;
    public static String FinalizerQuery_FinalizerThreadLocals;
    public static String FinalizerQuery_InProcessing;
    public static String FinalizerQuery_ReadyForFinalizer;

    public static String FinalizerQueueQuery_ErrorMsg_MultipleFinalizerClasses;
    public static String FinalizerQueueQuery_Msg_ExtractingObjects;
    public static String FinalizerQueueQuery_ReadyForFinalizerThread;
    public static String FinalizerQueueQuery_ReadyForFinalizerThread_Histogram;
    public static String FinalizerQueueQuery_ReadyForFinalizerThread_List;

    public static String FinalizerReferenceStatQuery_Label_Referenced;
    public static String FinalizerReferenceStatQuery_Label_Retained;
    public static String FinalizerReferenceStatQuery_Label_StronglyRetainedReferents;

    public static String FinalizerThreadQuery_ErrorMsg_FinalizerThreadInstanceNotFound;
    public static String FinalizerThreadQuery_ErrorMsg_FinalizerThreadNotFound;
    public static String FinalizerThreadQuery_ErrorMsg_MultipleFinalizerThreadClasses;
    public static String FinalizerThreadQuery_ErrorMsg_MultipleThreadClassesFound;
    public static String FinalizerThreadQuery_ErrorMsg_MultipleThreads;
    public static String FinalizerThreadQuery_ErrorMsg_ThreadClassNotFound;
    public static String FinalizerThreadQuery_ErrorMsg_ThreadInstanceNotFound;
    public static String FinalizerThreadQuery_FinalizerThread;
    public static String FinalizerThreadQuery_SecondaryFinalizer;

    public static String FindLeaksQuery_AccumulationPoint;
    public static String FindLeaksQuery_Column_AccPointPercent;
    public static String FindLeaksQuery_Column_AccPointRetainedHeap;
    public static String FindLeaksQuery_Column_AccumulationPoint;
    public static String FindLeaksQuery_Column_NumObjects;
    public static String FindLeaksQuery_Column_SuspectPercent;
    public static String FindLeaksQuery_Column_SuspectRetainedHeap;
    public static String FindLeaksQuery_ColumnLeakSuspect;
    public static String FindLeaksQuery_LeakSuspect;
    public static String FindLeaksQuery_NotFound;
    public static String FindLeaksQuery_PathNotFound;
    public static String FindLeaksQuery_SearchingGroupsOfObjects;
    public static String FindLeaksQuery_SearchingSingleObjects;
    public static String FindLeaksQuery_TooManySuspects;

    public static String FindLeaksQuery2_Column_AccPointRetainedHeap;
    public static String FindLeaksQuery2_Column_SuspectRetainedHeap;
    public static String FindLeaksQuery2_ComparedDominatorTrees;
    public static String FindLeaksQuery2_Leaks;

    public static String FindStringsQuery_SearchingStrings;

    public static String GCRootInfo_BusyMonitor;
    public static String GCRootInfo_Finalizable;
    public static String GCRootInfo_JavaLocal;

    public static String GCRootInfo_JavaStackFrame;
    public static String GCRootInfo_JNIGlobal;
    public static String GCRootInfo_JNILocal;
    public static String GCRootInfo_NativeStack;
    public static String GCRootInfo_SystemClass;
    public static String GCRootInfo_Thread;
    public static String GCRootInfo_ThreadBlock;
    public static String GCRootInfo_Unfinalized;
    public static String GCRootInfo_Unkown;
    public static String GCRootInfo_Unreachable;

    public static String GroupByValueQuery_Column_AvgRetainedSize;
    public static String GroupByValueQuery_Column_Objects;
    public static String GroupByValueQuery_Column_StringValue;
    public static String GroupByValueQuery_GroupingObjects;

    public static String HashEntriesQuery_Column_Collection;
    public static String HashEntriesQuery_Column_Key;
    public static String HashEntriesQuery_Column_Value;
    public static String HashEntriesQuery_ErrorMsg_ClassNotFound;
    public static String HashEntriesQuery_ErrorMsg_MissingArguments;
    public static String HashEntriesQuery_Msg_Extracting;

    public static String HashSetValuesQuery_ErrorMsg_MissingArgument;
    public static String HashSetValuesQuery_ErrorMsg_NotAHashSet;

    public static String HeapDumpInfoQuery_32bit;
    public static String HeapDumpInfoQuery_64bit;
    public static String HeapDumpInfoQuery_Column_Date;
    public static String HeapDumpInfoQuery_Column_FileLength;
    public static String HeapDumpInfoQuery_Column_FilePath;
    public static String HeapDumpInfoQuery_Column_HeapFormat;
    public static String HeapDumpInfoQuery_Column_IdentifierSize;
    public static String HeapDumpInfoQuery_Column_UseCompressedOops;
    public static String HeapDumpInfoQuery_Column_JVMVersion;
    public static String HeapDumpInfoQuery_Column_NumClasses;
    public static String HeapDumpInfoQuery_Column_NumClassLoaders;
    public static String HeapDumpInfoQuery_Column_NumGCRoots;
    public static String HeapDumpInfoQuery_Column_NumObjects;
    public static String HeapDumpInfoQuery_Column_Time;
    public static String HeapDumpInfoQuery_Column_UsedHeapDump;
    public static String HeapDumpInfoQuery_DateFormat;
    public static String HeapDumpInfoQuery_DiscardOffset;
    public static String HeapDumpInfoQuery_DiscardOffset_format;
    public static String HeapDumpInfoQuery_DiscardPattern;
    public static String HeapDumpInfoQuery_DiscardRatio;
    public static String HeapDumpInfoQuery_DiscardRatio_format;
    public static String HeapDumpInfoQuery_DiscardSeed;
    public static String HeapDumpInfoQuery_DiscardSeed_format;
    public static String HeapDumpInfoQuery_FileLengthFormat;
    public static String HeapDumpInfoQuery_MultipleSnapshotIdentifier;
    public static String HeapDumpInfoQuery_NumClassesFormat;
    public static String HeapDumpInfoQuery_NumClassLoadersFormat;
    public static String HeapDumpInfoQuery_NumGCRootsFormat;
    public static String HeapDumpInfoQuery_NumObjectsFormat;
    public static String HeapDumpInfoQuery_PropertyName;
    public static String HeapDumpInfoQuery_ProperyValue;
    public static String HeapDumpInfoQuery_TimeFormat;

    public static String HeapDumpProviderRegistry_ErrorGettingArgumentErrorMsg;

    public static String HeapDumpProviderRegistry_NameAlreadyBouneErrorMsg;

    public static String HeapDumpProviderRegistry_UnableToAccessArgumentErrorMsg;

    public static String HeapDumpProviderRegistry_WrongTypeErrorMsg;

    public static String HeapObjectArgumentFactory_ErrorMsg_MultipleObjects;
    public static String HeapObjectArgumentFactory_ErrorMsg_SettingField;
    public static String HeapObjectArgumentFactory_ErrorMsg_TypeNotSupported;
    public static String HeapObjectArgumentFactory_Label_Objects;
    public static String HeapObjectArgumentFactory_Objects;

    public static String HeapObjectContextArgument_Label_Context;

    public static String HeapObjectParamArgument_ErrorMsg_NorResult;
    public static String HeapObjectParamArgument_ErrorMsg_NotAClass;
    public static String HeapObjectParamArgument_ErrorMsg_NotAClassLoader;
    public static String HeapObjectParamArgument_ErrorMsg_NotAListOfObjects;
    public static String HeapObjectParamArgument_ErrorMsg_UnknownArgument;
    public static String HeapObjectParamArgument_Msg_AddedInstances;
    public static String HeapObjectParamArgument_Msg_MatchingPattern;
    public static String HeapObjectParamArgument_Msg_ObjectFound;
    public static String HeapObjectParamArgument_Msg_SearchingByPattern;

    public static String Histogram_ClassLoaderStatistics;
    public static String Histogram_ClassStatistics;
    public static String Histogram_Column_ClassLoaderPerClass;
    public static String Histogram_Column_PackagePerClass;
    public static String Histogram_Column_SuperclassPerClass;
    public static String Histogram_Description;
    public static String Histogram_Difference;
    public static String Histogram_Intersection;

    public static String HistogramQuery_GroupByClass;
    public static String HistogramQuery_GroupByClassLoader;
    public static String HistogramQuery_GroupByPackage;
    public static String HistogramQuery_GroupBySuperclass;
    public static String HistogramQuery_HistogramOf;
    public static String HistogramQuery_IllegalArgument;

    public static String HistogramRecordBeanInfo_Label;
    public static String HistogramRecordBeanInfo_NumberOfObjects;
    public static String HistogramRecordBeanInfo_RetainedHeapSize;
    public static String HistogramRecordBeanInfo_UsedHeapSize;

    public static String ImmediateDominatorsQuery_Column_DominatedShallowHeap;
    public static String ImmediateDominatorsQuery_ColumnDominatedObjects;
    public static String ImmediateDominatorsQuery_DominatedObjects;
    public static String ImmediateDominatorsQuery_Objects;

    public static String InspectionAssert_NotSupported;

    public static String JettyNameResolvers_JSPofWebApp;

    public static String JettyRequestResolver_Collection;
    public static String JettyRequestResolver_Msg_ThreadExecutesHTTPRequest;
    public static String JettyRequestResolver_Parameters;
    public static String JettyRequestResolver_Summary;
    public static String JettyRequestResolver_URI;

    public static String LeakHunterQuery_AccumulatedObjects;
    public static String LeakHunterQuery_AccumulatedObjectsByClass;
    public static String LeakHunterQuery_AllAccumulatedObjectsByClass;
    public static String LeakHunterQuery_BiggestInstances;
    public static String LeakHunterQuery_BiggestInstancesHeading;
    public static String LeakHunterQuery_BiggestInstancesOverview;
    public static String LeakHunterQuery_CommonPath;
    public static String LeakHunterQuery_Description;
    public static String LeakHunterQuery_ErrorRetrievingRequestDetails;
    public static String LeakHunterQuery_ErrorShortestPaths;
    public static String LeakHunterQuery_FindingProblemSuspects;
    public static String LeakHunterQuery_Hint;
    public static String LeakHunterQuery_Keywords;
    public static String LeakHunterQuery_LeakHunter;
    public static String LeakHunterQuery_Msg_AccumulatedBy;
    public static String LeakHunterQuery_Msg_AccumulatedByInstance;
    public static String LeakHunterQuery_Msg_AccumulatedByLoadedBy;
    public static String LeakHunterQuery_Msg_Bytes;
    public static String LeakHunterQuery_Msg_Class;
    public static String LeakHunterQuery_Msg_ClassLoader;
    public static String LeakHunterQuery_Msg_Instance;
    public static String LeakHunterQuery_Msg_InstancesOccupy;
    public static String LeakHunterQuery_Msg_ReferencedBy;
    public static String LeakHunterQuery_Msg_ReferencedByClass;
    public static String LeakHunterQuery_Msg_ReferencedByInstance;
    public static String LeakHunterQuery_Msg_ReferencedFromClass;
    public static String LeakHunterQuery_Msg_ReferencedFromClassLoader;
    public static String LeakHunterQuery_Msg_ReferencedFromInstance;
    public static String LeakHunterQuery_Msg_SuspectsRelated;
    public static String LeakHunterQuery_Msg_Thread;
    public static String LeakHunterQuery_NothingFound;
    public static String LeakHunterQuery_Overview;
    public static String LeakHunterQuery_OtherSuspectInstances;
    public static String LeakHunterQuery_PreparingResults;
    public static String LeakHunterQuery_ProblemSuspect;
    public static String LeakHunterQuery_ReferencePattern;
    public static String LeakHunterQuery_ReferencePatternFor;
    public static String LeakHunterQuery_RequestDetails;
    public static String LeakHunterQuery_SeeStackstrace;
    public static String LeakHunterQuery_SeeStackstraceVars;
    public static String LeakHunterQuery_ShortestPaths;
    public static String LeakHunterQuery_StackTraceAvailable;
    public static String LeakHunterQuery_SystemClassLoader;
    public static String LeakHunterQuery_ThreadDetails;
    public static String LeakHunterQuery_ThreadRootShortestPath;
    public static String LeakHunterQuery_ThreadStack;
    public static String LeakHunterQuery_ThreadStackAndLocals;
    public static String LeakHunterQuery_TicketForSuspect;

    public static String LeakingPlugins_NoLeakingPlugInsDetected;

    public static String MapCollisionRatioQuery_CalculatingCollisionRatios;
    public static String MapCollisionRatioQuery_Column_CollisionRatio;
    public static String MapCollisionRatioQuery_Column_NumObjects;
    public static String MapCollisionRatioQuery_ErrorMsg_ClassNotFound;
    public static String MapCollisionRatioQuery_ErrorMsg_MissingArgument;

    public static String MapCollisionRatioQuery_IgnoringCollection;

    public static String MATPlugin_InternalError;

    public static String MultiplePath2GCRootsQuery_Column_RefObjects;
    public static String MultiplePath2GCRootsQuery_Column_RefShallowHeap;
    public static String MultiplePath2GCRootsQuery_Group_FromGCRoots;
    public static String MultiplePath2GCRootsQuery_Group_FromGCRootsOnClass;
    public static String MultiplePath2GCRootsQuery_Group_ToGCRoots;
    public static String MultiplePath2GCRootsQuery_PathNodeObject;
    public static String MultiplePath2GCRootsQuery_PathNodeObjects;
    public static String MultiplePath2GCRootsQuery_ReferencedObjects;

    public static String ObjectTreeFactory_Column_Percentage;
    public static String ObjectTreeFactory_ErrorMsg_addChild;
    public static String ObjectTreeFactory_ErrorMsg_addChildren;

    public static String OQLQuery_Column_Value;
    public static String OQLQuery_ExecutedQuery;
    public static String OQLQuery_NoResult;
    public static String OQLQuery_ProblemReported;
    public static String OQLQuery_Unindexed;

    public static String ParseSnapshotApp_ErrorMsg_FileNotFound;

    public static String ParseSnapshotApp_ErrorMsg_ReportNotFound;
    public static String ParseSnapshotApp_Usage;
    public static String ParseSnapshotApp_MultipleSnapshotsDetail;

    public static String ParseSnapshotApp_MultipleSnapshotsDetected;

    public static String PhantomReferenceStatQuery_Label_Referenced;
    public static String PhantomReferenceStatQuery_Label_Retained;
    public static String PhantomReferenceStatQuery_Label_StronglyRetainedReferents;
    
    public static String PieFactory_ErrorMsg_NoSnapshotAvailable;
    public static String PieFactory_Label_Remainder;
    public static String PieFactory_Label_RetainedSize;
    public static String PieFactory_Label_ShallowSize;

    public static String PrimitiveArraysWithAConstantValueQuery_SearchingArrayValues;
    public static String PrimitiveArraysWithAConstantValueQuery_Column_Length;
    public static String PrimitiveArraysWithAConstantValueQuery_Column_NumObjects;
    public static String PrimitiveArraysWithAConstantValueQuery_Column_Value;

    public static String ReferenceLeakQuery_CommonPaths;
    public static String ReferenceLeakQuery_CommonPathsLimit;
    public static String ReferenceLeakQuery_ComputingReferentLeaks;
    public static String ReferenceLeakQuery_ExaminingReferenceObjects;
    public static String ReferenceLeakQuery_NoStrongPaths;
    public static String ReferenceLeakQuery_PathToReferent;
    public static String ReferenceLeakQuery_TwoPaths;

    public static String ReferenceQuery_ErrorMsg_NoMatchingClassesFound;
    public static String ReferenceQuery_HistogramOfReferentObjects;
    public static String ReferenceQuery_MissingReferentObject;

    public static String ReferenceQuery_Msg_ComputingReferentSet;
    public static String ReferenceQuery_Msg_ComputingRetainedSet;
    public static String ReferenceQuery_Msg_ComputingStronglyRetainedSet;
    public static String ReferenceQuery_OnlyRetainedByReferents;
    public static String ReferenceQuery_StronglyRetainedByReferences;

    public static String RetainedSetQuery_RetainedBy;

    public static String RetainedSizeDerivedData_Approximate;
    public static String RetainedSizeDerivedData_Error_IllegalContext;
    public static String RetainedSizeDerivedData_Error_IllegalObjectId;
    public static String RetainedSizeDerivedData_ErrorMsg_IllegalContextObject;
    public static String RetainedSizeDerivedData_ErrorMsg_IllegalObjectId;
    public static String RetainedSizeDerivedData_Label_Approximate;
    public static String RetainedSizeDerivedData_Label_Precise;

    public static String Service_ErrorMsg_MismatchKeysServices;

    public static String SnapshotFactory_Error;
    public static String SnapshotFactory_ErrorMsg_FactoryCreation;

    public static String SnapshotQuery_ErrorMsg_NoResult;
    public static String SnapshotQuery_ErrorMsg_QueryNotAvailable;
    public static String SnapshotQuery_ErrorMsg_UnkownArgument;
    public static String SnapshotQuery_ErrorMsg_UnsuitableSubjects;

    public static String SnapshotQuery_ErrorMsg_UnsupportedTyp;

    public static String SoftReferenceStatQuery_Label_Referenced;
    public static String SoftReferenceStatQuery_Label_Retained;
    public static String SoftReferenceStatQuery_Label_StronglyRetainedReferents;

    public static String SubjectRegistry_Error_MissingAnnotation;
    public static String SubjectRegistry_ErrorMsg_MissingSubjectAnnotation;

    public static String TaskInfo_Column_Id;
    public static String TaskInfo_Column_Name;
    public static String TaskInfo_Column_Number;
    public static String TaskInfo_Column_State;
    public static String TaskInfo_State_Idle;
    public static String TaskInfo_State_NotApplicable;
    public static String TaskInfo_State_Processing;
    public static String TaskInfo_State_Waiting;
    public static String TaskInfo_State_WaitingSyncIO;

    public static String ThreadDetailsResolver_alive;
    public static String ThreadDetailsResolver_blocked_on_monitor_enter;
    public static String ThreadDetailsResolver_in_native;
    public static String ThreadDetailsResolver_in_object_wait;
    public static String ThreadDetailsResolver_interrupted;
    public static String ThreadDetailsResolver_parked;
    public static String ThreadDetailsResolver_Priority;
    public static String ThreadDetailsResolver_runnable;
    public static String ThreadDetailsResolver_sleeping;
    public static String ThreadDetailsResolver_suspended;
    public static String ThreadDetailsResolver_State;
    public static String ThreadDetailsResolver_State_value;
    public static String ThreadDetailsResolver_terminated;
    public static String ThreadDetailsResolver_vendor1;
    public static String ThreadDetailsResolver_vendor2;
    public static String ThreadDetailsResolver_vendor3;
    public static String ThreadDetailsResolver_waiting;
    public static String ThreadDetailsResolver_waiting_indefinitely;
    public static String ThreadDetailsResolver_waiting_with_timeout;

    public static String ThreadInfoImpl_Column_ContextClassLoader;
    public static String ThreadInfoImpl_Column_IsDaemon;
    public static String ThreadInfoImpl_Column_Instance;
    public static String ThreadInfoImpl_Column_MaxLocalRetainedHeap;
    public static String ThreadInfoImpl_Column_Name;

    public static String ThreadInfoQuery_Requests;
    public static String ThreadInfoQuery_ThreadDetails;
    public static String ThreadInfoQuery_ThreadLabel;
    public static String ThreadInfoQuery_ThreadProperties;
    public static String ThreadInfoQuery_ThreadStack;

    public static String ThreadOverviewQuery_SearchingThreads;
    public static String ThreadOverviewQuery_StackFrameLocalIssue;
    public static String ThreadOverviewQuery_ThreadDetails;

    public static String ThreadStackQuery_Column_ObjectStackFrame;
    public static String ThreadStackQuery_Label_Local;
    public static String ThreadStackQuery_Label_Local_Busy_Monitor;
    public static String ThreadStackQuery_Label_Local_Possible_Busy_Monitor;
    public static String ThreadStackQuery_Label_Local_Possibly_Blocked_On;
    public static String ThreadStackQuery_Label_Local_Probably_Blocked_On;

    public static String TopComponentsReportQuery_TopComponentReports;

    public static String TopConsumers2Query_BiggestClasses;
    public static String TopConsumers2Query_BiggestClassesOverview;
    public static String TopConsumers2Query_BiggestClassLoaders;
    public static String TopConsumers2Query_BiggestClassLoadersOverview;
    public static String TopConsumers2Query_BiggestObjects;
    public static String TopConsumers2Query_BiggestObjectsOverview;
    public static String TopConsumers2Query_BiggestPackages;
    public static String TopConsumers2Query_Column_Package;
    public static String TopConsumers2Query_Column_RetainedHeapPercent;
    public static String TopConsumers2Query_Column_TopDominators;
    public static String TopConsumers2Query_CreatingHistogram;
    public static String TopConsumers2Query_GroupingByPackage;
    public static String TopConsumers2Query_Label_all;
    public static String TopConsumers2Query_MsgNoObjects;
    public static String TopConsumers2Query_NoClassesBiggerThan;
    public static String TopConsumers2Query_NoClassLoaderBiggerThan;
    public static String TopConsumers2Query_NoObjectsBiggerThan;
    public static String TopConsumers2Query_TopConsumers;

    public static String TopConsumersQuery_ColumnLabels;

    public static String TQuantize_Label_GroupByClassLoader;
    public static String TQuantize_Label_GroupByPackage;
    public static String TQuantize_Label_GroupedByClassLoader;
    public static String TQuantize_Label_GroupedByPackage;
    public static String TQuantize_None;

    public static String VmInfoDescriptor_ErrorGettingArgumentErrorMsg;

    public static String VmInfoDescriptor_UnableToAccessArgumentErrorMsg;

    public static String VmInfoDescriptor_WrongTypeErrorMsg;

    public static String WasteInCharArraysQuery_CheckingCharArrays;

    public static String WeakReferenceStatQuery_Label_Referenced;
    public static String WeakReferenceStatQuery_Label_Retained;
    public static String WeakReferenceStatQuery_Label_StronglyRetainedReferents;
    public static String WrapperCollectionExtractor_CouldNotResolveMultiple;
    public static String WrapperCollectionExtractor_CouldNotResolveNone;
    public static String WrapperCollectionExtractor_NotAList1;
    public static String WrapperCollectionExtractor_NotAList2;
    public static String WrapperCollectionExtractor_NotAMap1;
    public static String WrapperCollectionExtractor_NotAMap2;

    static
    {
        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
    }

    private Messages()
    {}
}
