diff options
Diffstat (limited to 'org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java')
-rw-r--r-- | org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java index 2079244bd..75fdbc966 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java @@ -15,6 +15,7 @@ import java.io.IOException; import java.net.HttpURLConnection; import java.net.Proxy; import java.net.URL; +import java.util.HashMap; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HostConfiguration; @@ -154,6 +155,24 @@ public abstract class AbstractTracClient implements ITracClient { return (data.ticketFields != null) ? data.ticketFields.toArray(new TracTicketField[0]) : null; } + public TracTicketField getTicketFieldByName(String name) { + if (data.ticketFields != null) { + // lazily fill fieldByName map + if (data.ticketFieldByName == null) { + synchronized (data) { + if (data.ticketFieldByName == null) { + data.ticketFieldByName = new HashMap<String, TracTicketField>(); + for (TracTicketField field : data.ticketFields) { + data.ticketFieldByName.put(field.getName(), field); + } + } + } + } + return data.ticketFieldByName.get(name); + } + return null; + } + public TracTicketResolution[] getTicketResolutions() { return (data.ticketResolutions != null) ? data.ticketResolutions.toArray(new TracTicketResolution[0]) : null; } |