blob: fbe2ef8e382dfa1bc4f7a53942a82f03592dad5a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 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.internal.bugzilla.core;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.eclipse.mylyn.tasks.core.TaskRepository;
/**
* @author Steffen Pingel
*/
public class BugzillaSearch {
public static class Entry {
public final String key;
public final String value;
public Entry(String key, String value) {
this.key = key;
this.value = value;
}
}
private final List<Entry> parameters;
public BugzillaSearch(TaskRepository repository, String queryUrl) throws UnsupportedEncodingException {
parameters = new ArrayList<Entry>();
queryUrl = queryUrl.substring(queryUrl.indexOf("?") + 1); //$NON-NLS-1$
String[] options = queryUrl.split("&"); //$NON-NLS-1$
for (String option : options) {
String key;
int endindex = option.indexOf("="); //$NON-NLS-1$
if (endindex == -1) {
key = null;
} else {
key = option.substring(0, option.indexOf("=")); //$NON-NLS-1$
}
if (key == null) {
continue;
}
String value = URLDecoder.decode(option.substring(option.indexOf("=") + 1), //$NON-NLS-1$
repository.getCharacterEncoding());
parameters.add(new Entry(key, value));
}
}
public List<Entry> getParameters() {
return Collections.unmodifiableList(parameters);
}
public List<Entry> getParameters(String key) {
List<Entry> result = new ArrayList<Entry>();
for (Entry entry : parameters) {
if (entry.key.equals(key)) {
result.add(entry);
}
}
return Collections.unmodifiableList(result);
}
}