blob: cc71a23a7539c42664eef47f109c4da919b1b76a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 Mylyn project committers 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
*******************************************************************************/
package org.eclipse.mylyn.internal.tasks.bugs;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.mylyn.internal.tasks.core.deprecated.DefaultTaskSchema;
import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData;
import org.eclipse.mylyn.internal.tasks.core.deprecated.TaskSelection;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
import org.eclipse.mylyn.tasks.core.ITaskMapping;
import org.eclipse.mylyn.tasks.core.TaskMapping;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.eclipse.mylyn.tasks.ui.TasksUi;
/**
* @author Steffen Pingel
*/
@SuppressWarnings("deprecation")
public class AttributeTaskMapper {
private final Map<String, String> attributes;
public AttributeTaskMapper(Map<String, String> attributes) {
Assert.isNotNull(attributes);
this.attributes = attributes;
}
public boolean isMappingComplete() {
return getTaskRepository() != null && attributes.get(IRepositoryConstants.PRODUCT) != null;
}
public TaskRepository getTaskRepository() {
TaskRepository taskRepository = null;
String repositoryUrl = attributes.get(IRepositoryConstants.REPOSITORY_URL);
if (repositoryUrl != null) {
String connectorKind = attributes.get(IRepositoryConstants.CONNECTOR_KIND);
if (connectorKind != null) {
taskRepository = TasksUi.getRepositoryManager().getRepository(connectorKind, repositoryUrl);
}
}
return taskRepository;
}
public TaskSelection createTaskSelection() {
TaskSelection selection = new TaskSelection("", "");
applyTo(selection.getLegacyTaskData());
return selection;
}
public void applyTo(RepositoryTaskData taskData) {
DefaultTaskSchema schema = new DefaultTaskSchema(taskData);
for (Entry<String, String> entry : attributes.entrySet()) {
if (IRepositoryConstants.PRODUCT.equals(entry.getKey())) {
schema.setProduct(entry.getValue());
} else if (IRepositoryConstants.COMPONENT.equals(entry.getKey())) {
schema.setComponent(entry.getValue());
}
}
}
@SuppressWarnings("restriction")
public TaskData createTaskData(IProgressMonitor monitor) throws CoreException {
ITaskMapping taskMapping = getTaskMapping();
return TasksUiInternal.createTaskData(getTaskRepository(), taskMapping, taskMapping, monitor);
}
public ITaskMapping getTaskMapping() {
return new KeyValueMapping(attributes);
}
private static class KeyValueMapping extends TaskMapping {
private final Map<String, String> attributes;
public KeyValueMapping(Map<String, String> attributes) {
Assert.isNotNull(attributes);
this.attributes = attributes;
}
@Override
public void copyFrom(ITaskMapping source) {
}
@Override
public Date getCompletionDate() {
// ignore
return null;
}
@Override
public String getComponent() {
return attributes.get(IRepositoryConstants.COMPONENT);
}
@Override
public Date getCreationDate() {
// ignore
return null;
}
@Override
public String getDescription() {
return attributes.get(IRepositoryConstants.DESCRIPTION);
}
@Override
public Date getDueDate() {
// ignore
return null;
}
@Override
public Date getModificationDate() {
// ignore
return null;
}
@Override
public String getOwner() {
// ignore
return null;
}
@Override
public PriorityLevel getPriority() {
// ignore
return null;
}
@Override
public String getProduct() {
return attributes.get(IRepositoryConstants.PRODUCT);
}
@Override
public String getSummary() {
// ignore
return null;
}
@Override
public TaskData getTaskData() {
// ignore
return null;
}
@Override
public String getTaskKey() {
// ignore
return null;
}
@Override
public String getTaskKind() {
// ignore
return null;
}
@Override
public String getTaskUrl() {
// ignore
return null;
}
@Override
public List<String> getCc() {
// ignore
return null;
}
@Override
public List<String> getKeywords() {
// ignore
return null;
}
@Override
public String getReporter() {
// ignore
return null;
}
@Override
public String getResolution() {
// ignore
return null;
}
@Override
public String getTaskStatus() {
// ignore
return null;
}
}
}