blob: 8c126f4bf25586981084b5277eb869354d4aa200 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2015 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.tasks.core;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.mylyn.tasks.core.ITask;
/**
* @author Rob Elves
*/
public interface ITasksCoreConstants {
public static final int MAX_SUBTASK_DEPTH = 10;
public static final String ID_PLUGIN = "org.eclipse.mylyn.tasks.core"; //$NON-NLS-1$
public static final String OLD_TASK_LIST_FILE = "tasklist.xml"; //$NON-NLS-1$
public static final String FILENAME_ENCODING = "UTF-8"; //$NON-NLS-1$
public static final String OLD_PREFIX_TASKLIST = "tasklist"; //$NON-NLS-1$
public static final String PREFIX_TASKS = "tasks"; //$NON-NLS-1$
public static final String DEFAULT_BACKUP_FOLDER_NAME = "backup"; //$NON-NLS-1$
public static final String EXPORT_FILE_NAME = "mylyn-tasks"; //$NON-NLS-1$
public static final String FILE_EXTENSION = ".xml.zip"; //$NON-NLS-1$
public static final String OLD_FILENAME_TIMESTAMP_FORMAT = "yyyy-MM-dd"; //$NON-NLS-1$
public static final String FILENAME_TIMESTAMP_FORMAT = "yyyy-MM-dd-HHmmss"; //$NON-NLS-1$
public static final String OLD_M_2_TASKLIST_FILENAME = OLD_PREFIX_TASKLIST + FILE_EXTENSION;
public static final String DEFAULT_TASK_LIST_FILE = PREFIX_TASKS + FILE_EXTENSION;
public static final String CONTEXTS_DIRECTORY = "contexts"; //$NON-NLS-1$
public static final ISchedulingRule ACTIVITY_SCHEDULING_RULE = new MutexSchedulingRule();
public static final ISchedulingRule ACTIVE_CONTEXT_SCHEDULING_RULE = new MutexSchedulingRule();
public static final ISchedulingRule TASKLIST_SCHEDULING_RULE = new MutexSchedulingRule();
public static final ISchedulingRule ROOT_SCHEDULING_RULE = new RootSchedulingRule();
public static final String ATTRIBUTE_OUTGOING_NEW_REPOSITORY_URL = "outgoingNewRepositoryUrl"; //$NON-NLS-1$
public static final String ATTRIBUTE_OUTGOING_NEW_CONNECTOR_KIND = "outgoingNewConnectorKind"; //$NON-NLS-1$
public static final String ATTRIBUTE_HIDDEN = "task.common.hidden"; //$NON-NLS-1$
public static final String ATTRIBUTE_TASK_EXTENDED_TOOLTIP = "task.common.extended.tooltip"; //$NON-NLS-1$
public static final String ATTRIBUTE_TASK_SUPPRESS_INCOMING = "task.common.suppress.incoming"; //$NON-NLS-1$
public static final String ATTRIBUTE_ARTIFACT = "org.eclipse.mylyn.is.artifact"; //$NON-NLS-1$
public static final String ATTRIBUTE_PRIORITY_LABEL = "task.common.priority.label"; //$NON-NLS-1$
/**
* @deprecated Since Mylyn 3.11, all TaskRepositories store their credentials in the secure store.
*/
@Deprecated
public static final String PROPERTY_USE_SECURE_STORAGE = "org.eclipse.mylyn.tasklist.repositories.configuration.securestorage"; //$NON-NLS-1$
public static final String PROPERTY_BRAND_ID = "org.eclipse.mylyn.brand.id"; //$NON-NLS-1$
/**
* Jobs that have the same instances of this rule set are mutually exclusive.
*/
public static class MutexSchedulingRule extends RootSchedulingRule {
public MutexSchedulingRule() {
}
@Override
public boolean contains(ISchedulingRule rule) {
return rule == this;
}
@Override
public boolean isConflicting(ISchedulingRule rule) {
return rule == ROOT_SCHEDULING_RULE || rule == this;
}
}
/**
* The parent of all scheduling rules that modify task data.
*
* @see ITasksCoreConstants#ROOT_SCHEDULING_RULE
*/
public static class RootSchedulingRule implements ISchedulingRule {
protected RootSchedulingRule() {
}
public boolean contains(ISchedulingRule rule) {
return rule instanceof RootSchedulingRule;
}
public boolean isConflicting(ISchedulingRule rule) {
return rule instanceof RootSchedulingRule;
}
}
/**
* Jobs that have an instances of this rule set which references the same object are mutually exclusive.
*/
public static class ObjectSchedulingRule extends RootSchedulingRule {
private final Object object;
public ObjectSchedulingRule(Object object) {
Assert.isNotNull(object);
this.object = object;
}
@Override
public boolean contains(ISchedulingRule rule) {
return rule == this;
}
@Override
public boolean isConflicting(ISchedulingRule rule) {
if (rule == ROOT_SCHEDULING_RULE) {
return true;
}
if (rule instanceof ObjectSchedulingRule) {
return object.equals(((ObjectSchedulingRule) rule).object);
}
return false;
}
@Override
public String toString() {
return getClass().getSimpleName() + " [" + object + "]"; //$NON-NLS-1$ //$NON-NLS-2$
}
}
public static final String COMMAND_LINE_NO_ACTIVATE_TASK = "-no-activate-task"; //$NON-NLS-1$
public static final String PROPERTY_LINK_PROVIDER_TIMEOUT = "org.eclipse.mylyn.linkProviderTimeout"; //$NON-NLS-1$
/**
* Boolean value that indicates that queries participate in automatic synchronizations.
*/
public static final String ATTRIBUTE_AUTO_UPDATE = "org.eclipse.mylyn.tasks.core.synchronization.auto"; //$NON-NLS-1$
public static final Object JOB_FAMILY_SYNCHRONIZATION = new Object();
/**
* A property to mark an {@link ITask} as having been newly created and not yet saved or submitted.
*/
public static final String PROPERTY_NEW_UNSAVED_TASK = "org.eclipse.mylyn.tasks.ui.new.unsaved.task"; //$NON-NLS-1$
}