text: /*============================================================================
  
  The Medical Imaging Interaction Toolkit (MITK)
  
  Copyright (c) German Cancer Research Center (DKFZ)
  All rights reserved.
  
  Use of this source code is governed by a 3-clause BSD license that can be
  found in the LICENSE file.
  
  ============================================================================*/
  
  #ifndef BERRYPLATFORMPROPERTYTESTER_H
  #define BERRYPLATFORMPROPERTYTESTER_H
  
  #include <berryPropertyTester.h>
  
  #include <ctkPlugin.h>
  
  namespace berry {
  
  /**
   * A property tester for testing platform properties. Can test whether or
   * not a given plugin is installed in the running environment, as well as
   * the id of the currently active product.
   * <p>
   * For example:<br />
   * &lt;test property="org.blueberry.core.runtime.product" value="org.mitk.qt.Workbench"/&gt; <br />
   * &lt;test property="org.blueberry.core.runtime.isPluginInstalled" args="org.blueberry.core.expressions"/&gt; <br />
   * &lt;test property="org.blueberry.core.runtime.pluginState" args="org.blueberry.core.expressions" value="ACTIVE"/&gt;
   * <p>
   */
  class PlatformPropertyTester : public PropertyTester
  {
    Q_OBJECT
  private:
  
    static const QString PROPERTY_PRODUCT; // = "product";
    static const QString PROPERTY_IS_PLUGIN_INSTALLED; // = "isPluginInstalled";
    static const QString PROPERTY_PLUGIN_STATE; // = "pluginState";
  
  public:
  
    bool Test(Object::ConstPointer receiver, const QString& property,
              const QList<Object::Pointer>& args, Object::Pointer expectedValue) override;
  
  private:
  
    bool PluginState(ctkPlugin::State pluginState, const QString &expectedValue);
  
  };
  
  }
  
  #endif // BERRYPLATFORMPROPERTYTESTER_H
  