// Path: parent/bundles/com.google.eclipse.mechanic/src/com/google/eclipse/mechanic/IResourceTaskProvider.java
// public interface IResourceTaskProvider {
//   /**
//    * Collect task references provided by this provider.
//    *
//    * <p>In theory this is similar to calling
//    * {@code collectTaskReferences(".", extFilter, collector)}, but
//    * that's in theory only.
//    *
//    * @param extFilter the filename extension to filter.
//    * @param collector the collector to receive all task references.
//    *
//    * TODO(konigsberg): Remove the filter parameter.
//    */
//   void collectTaskReferences(
//       String extFilter,
//       ICollector<IResourceTaskReference> collector);
// 
//   /**
//    * Collect task references provided by this provider, relative to the
//    * provider's root.
//    *
//    * <p>This is only used for finding Class-based tasks, and is not even
//    * implemented in the UriTaskProvider.
//    *
//    * @param localPath the relative path to the resources
//    * @param extFilter the filename extension to filter.
//    * @param collector the collector to receive all task references.
//    *
//    * TODO(konigsberg): Remove the filter parameter.
//    */
//   void collectTaskReferences(
//       String localPath,
//       String extFilter,
//       ICollector<IResourceTaskReference> collector);
// }
// 
// Path: parent/bundles/com.google.eclipse.mechanic/src/com/google/eclipse/mechanic/Task.java
// public interface Task {
// 
//   /**
//    * Return an id for this task. The id should be unique to any instance that
//    * behaves differently than another instance. Typically the id would be the
//    * fully qualified class name unless two task instances somehow manage to 
//    * behave differently. In this case they should each return a unique id.
//    */
//   public String getId();
// 
//   /**
//    * Returns a string suitable for display to the user providing a title for
//    * this Task. This is used in contexts where a short
//    * description is needed. Capitalization should follow the same rules as
//    * applied to book titles.
//    */
//   public String getTitle();
// 
//   /**
//    * Returns a string suitable for display to the user describing what action
//    * will be taken when the associated {@link RepairAction} is executed.
//    * <p/>
//    * The description should start with a 3rd person descriptive verb such as:
//    * <p/>
//    * "Customizes your java code templates with user information."
//    * "Configures a local extension location."
//    */
//   public String getDescription();
// 
//   /**
//    * Returns an Evaluator for this task. The Evaluator should return false
//    * if the associated RepairAction needs to be executed.
//    */
//   public Evaluator getEvaluator();
// 
//   /**
//    * Returns a {@link RepairAction} capable of bringing this {@link Task}
//    * into compliance.
//    */
//   public RepairAction getRepairAction();
// }


import com.google.eclipse.mechanic.IResourceTaskProvider;
import com.google.eclipse.mechanic.Task;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Preferences.IPropertyChangeListener;
import java.util.List;
import java.util.Set;
/*******************************************************************************
 * Copyright (C) 2007, Google Inc.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *******************************************************************************/

package com.google.eclipse.mechanic.plugin.core;




/**
 * Interface for mechanic preferences.
 */
@SuppressWarnings("deprecation") // Uses the old-style API.
public interface IMechanicPreferences {
  public static final String DIRS_PREF = "mechanicSourceDirectories";

  public static final String BLOCKED_PREF = "blockedTaskIds";

  public static final String SLEEPAGE_PREF = "sleepSeconds";

  public static final String HELP_URL_PREF = "helpUrl";

  public static final String SHOW_POPUP_PREF = "showPopup";

//  /**
//   * Preference string to enable web content caching.
//   *
//   * <p>Stores a boolean.
//   */
//  public static final String CACHE_URI_CONTENT_PREF = "cacheUriContent";

//  /**
//   * Preference string that defines the maximum lifetime of web cache entries, in hours.
//   *
//   * <p>Stores an integer.
//   */
//  public static final String CACHE_URI_AGE_HOURS_PREF = "cacheUriAgeHours";

  /**
   * Minimum duration between tasks, in seconds.
   */
  public static final int MINIMUM_SLEEP_SECONDS = 10;

  void addListener(IPropertyChangeListener listener);

  void removeListener(IPropertyChangeListener listener);

  /**
   * Return a list of task sources where tasks may be found.
   *
   * @return list of task sources where tasks may be found.
   */
// Path: parent/bundles/com.google.eclipse.mechanic/src/com/google/eclipse/mechanic/IResourceTaskProvider.java
// public interface IResourceTaskProvider {
//   /**
//    * Collect task references provided by this provider.
//    *
//    * <p>In theory this is similar to calling
//    * {@code collectTaskReferences(".", extFilter, collector)}, but
//    * that's in theory only.
//    *
//    * @param extFilter the filename extension to filter.
//    * @param collector the collector to receive all task references.
//    *
//    * TODO(konigsberg): Remove the filter parameter.
//    */
//   void collectTaskReferences(
//       String extFilter,
//       ICollector<IResourceTaskReference> collector);
// 
//   /**
//    * Collect task references provided by this provider, relative to the
//    * provider's root.
//    *
//    * <p>This is only used for finding Class-based tasks, and is not even
//    * implemented in the UriTaskProvider.
//    *
//    * @param localPath the relative path to the resources
//    * @param extFilter the filename extension to filter.
//    * @param collector the collector to receive all task references.
//    *
//    * TODO(konigsberg): Remove the filter parameter.
//    */
//   void collectTaskReferences(
//       String localPath,
//       String extFilter,
//       ICollector<IResourceTaskReference> collector);
// }
// 
// Path: parent/bundles/com.google.eclipse.mechanic/src/com/google/eclipse/mechanic/Task.java
// public interface Task {
// 
//   /**
//    * Return an id for this task. The id should be unique to any instance that
//    * behaves differently than another instance. Typically the id would be the
//    * fully qualified class name unless two task instances somehow manage to 
//    * behave differently. In this case they should each return a unique id.
//    */
//   public String getId();
// 
//   /**
//    * Returns a string suitable for display to the user providing a title for
//    * this Task. This is used in contexts where a short
//    * description is needed. Capitalization should follow the same rules as
//    * applied to book titles.
//    */
//   public String getTitle();
// 
//   /**
//    * Returns a string suitable for display to the user describing what action
//    * will be taken when the associated {@link RepairAction} is executed.
//    * <p/>
//    * The description should start with a 3rd person descriptive verb such as:
//    * <p/>
//    * "Customizes your java code templates with user information."
//    * "Configures a local extension location."
//    */
//   public String getDescription();
// 
//   /**
//    * Returns an Evaluator for this task. The Evaluator should return false
//    * if the associated RepairAction needs to be executed.
//    */
//   public Evaluator getEvaluator();
// 
//   /**
//    * Returns a {@link RepairAction} capable of bringing this {@link Task}
//    * into compliance.
//    */
//   public RepairAction getRepairAction();
// }


// Path: parent/bundles/com.google.eclipse.mechanic/src/com/google/eclipse/mechanic/plugin/core/IMechanicPreferences.java
import com.google.eclipse.mechanic.IResourceTaskProvider;
import com.google.eclipse.mechanic.Task;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Preferences.IPropertyChangeListener;
import java.util.List;
import java.util.Set;

/*******************************************************************************
 * Copyright (C) 2007, Google Inc.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *******************************************************************************/

package com.google.eclipse.mechanic.plugin.core;




/**
 * Interface for mechanic preferences.
 */
@SuppressWarnings("deprecation") // Uses the old-style API.
public interface IMechanicPreferences {
  public static final String DIRS_PREF = "mechanicSourceDirectories";

  public static final String BLOCKED_PREF = "blockedTaskIds";

  public static final String SLEEPAGE_PREF = "sleepSeconds";

  public static final String HELP_URL_PREF = "helpUrl";

  public static final String SHOW_POPUP_PREF = "showPopup";

//  /**
//   * Preference string to enable web content caching.
//   *
//   * <p>Stores a boolean.
//   */
//  public static final String CACHE_URI_CONTENT_PREF = "cacheUriContent";

//  /**
//   * Preference string that defines the maximum lifetime of web cache entries, in hours.
//   *
//   * <p>Stores an integer.
//   */
//  public static final String CACHE_URI_AGE_HOURS_PREF = "cacheUriAgeHours";

  /**
   * Minimum duration between tasks, in seconds.
   */
  public static final int MINIMUM_SLEEP_SECONDS = 10;

  void addListener(IPropertyChangeListener listener);

  void removeListener(IPropertyChangeListener listener);

  /**
   * Return a list of task sources where tasks may be found.
   *
   * @return list of task sources where tasks may be found.
   */
  List<IResourceTaskProvider> getTaskProviders();