/*******************************************************************************
* Copyright (c) 2010 Frank Becker 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:
* Frank Becker - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.bugzilla.core;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.core.data.TaskData;
public class BugzillaUtil {
private static boolean getParamValue(TaskRepository taskRepository, String propertyName, boolean trueIfUndefined) {
boolean result;
String useParam = taskRepository.getProperty(propertyName);
result = trueIfUndefined ? (useParam == null || (useParam != null && useParam.equals("true"))) //$NON-NLS-1$
: (useParam != null && useParam.equals("true")); //$NON-NLS-1$
return result;
}
public static void addAttributeIfUsed(BugzillaAttribute constant, String propertyName,
TaskRepository taskRepository, TaskData existingReport, boolean createWhenNull) {
if (getParamValue(taskRepository, propertyName, createWhenNull)) {
BugzillaTaskDataHandler.createAttribute(existingReport, constant);
}
}
public static void createAttributeWithKindDefaultIfUsed(String parsedText, BugzillaAttribute tag,
TaskData repositoryTaskData, String propertyName, boolean defaultWhenNull) {
TaskAttribute attribute = repositoryTaskData.getRoot().getMappedAttribute(tag.getKey());
if (attribute == null) {
attribute = BugzillaTaskDataHandler.createAttribute(repositoryTaskData, tag);
attribute.setValue(parsedText);
} else {
attribute.addValue(parsedText);
}
if (BugzillaAttribute.QA_CONTACT.equals(tag)) {
attribute.getMetaData().setKind(null);
} else {
if (getParamValue(repositoryTaskData.getAttributeMapper().getTaskRepository(), propertyName,
defaultWhenNull)) {
attribute.getMetaData().setKind(TaskAttribute.KIND_DEFAULT);
} else {
attribute.getMetaData().setKind(null);
}
}
}
}