blob: af012c3a43e59c65739ad767e6bb7b3ce87e11b7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2015 Tasktop Technologies and others.
* 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
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.tasks.core.data;
import java.util.Map;
/**
* @author Steffen Pingel
* @since 3.0
* @noextend This class is not intended to be subclassed by clients.
*/
public class TaskAttributeMetaData {
// public enum DetailLevel {
// /** A little bit of detail, e.g. a task showing in the Task List. */
// LOW,
// /** More detail, e.g. a task showing in a tool tip. */
// MEDIUM,
// /** A lot of detail, e.g. a task showing in an editor. */
// //HIGH
// };
private final TaskAttribute taskAttribute;
TaskAttributeMetaData(TaskAttribute taskAttribute) {
this.taskAttribute = taskAttribute;
}
public TaskAttributeMetaData defaults() {
setLabel(null);
setKind(null);
setReadOnly(true);
setType(TaskAttribute.TYPE_SHORT_TEXT);
setRequired(false);
// only for test
// putValue(TaskAttribute.META_DESCRIPTION, "Tooltip Defaul Text"); //$NON-NLS-1$
return this;
}
public TaskAttributeMetaData clear() {
taskAttribute.clearMetaDataMap();
return this;
}
/**
* @deprecated not use, see {@link #setDefaultOption(String)}
*/
@Deprecated
public String getDefaultOption() {
return taskAttribute.getMetaDatum(TaskAttribute.META_DEFAULT_OPTION);
}
// public DetailLevel getDetailLevel() {
// try {
// return DetailLevel.valueOf(taskAttribute.getMetaDatum(TaskAttribute.META_DEFAULT_OPTION));
// } catch (IllegalArgumentException e) {
// return null;
// }
// }
public String getKind() {
return taskAttribute.getMetaDatum(TaskAttribute.META_ATTRIBUTE_KIND);
}
public String getLabel() {
return taskAttribute.getMetaDatum(TaskAttribute.META_LABEL);
}
public String getType() {
return taskAttribute.getMetaDatum(TaskAttribute.META_ATTRIBUTE_TYPE);
}
public String getValue(String key) {
return taskAttribute.getMetaDatum(key);
}
public Map<String, String> getValues() {
return taskAttribute.getMetaDataMap();
}
/**
* @since 3.5
* @see TaskAttribute#META_DISABLED
*/
public boolean isDisabled() {
return Boolean.parseBoolean(taskAttribute.getMetaDatum(TaskAttribute.META_DISABLED));
}
public boolean isReadOnly() {
return Boolean.parseBoolean(taskAttribute.getMetaDatum(TaskAttribute.META_READ_ONLY));
}
/**
* @since 3.11
* @see TaskAttribute#META_REQUIRED
*/
public boolean isRequired() {
return Boolean.parseBoolean(taskAttribute.getMetaDatum(TaskAttribute.META_REQUIRED));
}
/**
* @since 3.11
* @see TaskAttribute#META_ATTRIBUTE_MEDIA_TYPE
*/
public String getMediaType() {
return taskAttribute.getMetaDatum(TaskAttribute.META_ATTRIBUTE_MEDIA_TYPE);
}
/**
* @since 3.17
* @see TaskAttribute#META_DEPENDS_ON_ATTRIBUTE_ID
*/
public String getDependsOn() {
return taskAttribute.getMetaDatum(TaskAttribute.META_DEPENDS_ON_ATTRIBUTE_ID);
}
public TaskAttributeMetaData putValue(String key, String value) {
taskAttribute.putMetaDatum(key, value);
return this;
}
/**
* The default option property is not used. Connectors are expected to set default values in
* {@link AbstractTaskDataHandler#initializeTaskData(org.eclipse.mylyn.tasks.core.TaskRepository, TaskData, org.eclipse.mylyn.tasks.core.ITaskMapping, org.eclipse.core.runtime.IProgressMonitor)}
* .
*
* @deprecated Not used, set default value in
* {@link AbstractTaskDataHandler#initializeTaskData(org.eclipse.mylyn.tasks.core.TaskRepository, TaskData, org.eclipse.mylyn.tasks.core.ITaskMapping, org.eclipse.core.runtime.IProgressMonitor)}
* instead.
*/
@Deprecated
public TaskAttributeMetaData setDefaultOption(String defaultOption) {
if (defaultOption != null) {
taskAttribute.putMetaDatum(TaskAttribute.META_DEFAULT_OPTION, defaultOption);
} else {
taskAttribute.removeMetaDatum(TaskAttribute.META_DEFAULT_OPTION);
}
return this;
}
// public TaskAttributeMetaData setDetailLevel(DetailLevel detailLevel) {
// if (detailLevel != null) {
// taskAttribute.putMetaDatum(TaskAttribute.META_DETAIL_LEVEL, detailLevel.name());
// } else {
// taskAttribute.removeMetaDatum(TaskAttribute.META_DETAIL_LEVEL);
// }
// return this;
// }
public TaskAttributeMetaData setKind(String value) {
if (value != null) {
taskAttribute.putMetaDatum(TaskAttribute.META_ATTRIBUTE_KIND, value);
} else {
taskAttribute.removeMetaDatum(TaskAttribute.META_ATTRIBUTE_KIND);
}
return this;
}
public TaskAttributeMetaData setLabel(String value) {
if (value != null) {
taskAttribute.putMetaDatum(TaskAttribute.META_LABEL, value);
} else {
taskAttribute.removeMetaDatum(TaskAttribute.META_LABEL);
}
return this;
}
public TaskAttributeMetaData setReadOnly(boolean value) {
taskAttribute.putMetaDatum(TaskAttribute.META_READ_ONLY, Boolean.toString(value));
return this;
}
public TaskAttributeMetaData setType(String value) {
if (value != null) {
taskAttribute.putMetaDatum(TaskAttribute.META_ATTRIBUTE_TYPE, value);
} else {
taskAttribute.removeMetaDatum(TaskAttribute.META_ATTRIBUTE_TYPE);
}
return this;
}
/**
* @since 3.5
* @see TaskAttribute#META_DISABLED
* @return this
*/
public TaskAttributeMetaData setDisabled(boolean value) {
taskAttribute.putMetaDatum(TaskAttribute.META_DISABLED, Boolean.toString(value));
return this;
}
/**
* @since 3.11
* @see TaskAttribute#META_REQUIRED
* @return this
*/
public TaskAttributeMetaData setRequired(boolean value) {
taskAttribute.putMetaDatum(TaskAttribute.META_REQUIRED, Boolean.toString(value));
return this;
}
/**
* @since 3.11
* @see TaskAttribute#META_ATTRIBUTE_MEDIA_TYPE
* @return this
*/
public TaskAttributeMetaData setMediaType(String value) {
if (value != null) {
taskAttribute.putMetaDatum(TaskAttribute.META_ATTRIBUTE_MEDIA_TYPE, value);
} else {
taskAttribute.removeMetaDatum(TaskAttribute.META_ATTRIBUTE_MEDIA_TYPE);
}
return this;
}
/**
* @since 3.17
* @see TaskAttribute#META_DEPENDS_ON_ATTRIBUTE_ID
* @return this
*/
public TaskAttributeMetaData setDependsOn(String value) {
taskAttribute.putMetaDatum(TaskAttribute.META_DEPENDS_ON_ATTRIBUTE_ID, value);
return this;
}
}