diff options
author | hristoterezov <hristo@jitsi.org> | 2013-12-14 14:53:37 +0200 |
---|---|---|
committer | hristoterezov <hristo@jitsi.org> | 2013-12-14 14:53:37 +0200 |
commit | 79214016b4ed3342707f1b5a0d7dcd10921cec78 (patch) | |
tree | 6c2d9996cb912d74cd6869f27de79bb4ccd46af9 /src/net/java/sip/communicator | |
parent | 0c822b0225ee2ab41deaeaa04c4e4b128905949c (diff) | |
download | jitsi-79214016b4ed3342707f1b5a0d7dcd10921cec78.zip jitsi-79214016b4ed3342707f1b5a0d7dcd10921cec78.tar.gz jitsi-79214016b4ed3342707f1b5a0d7dcd10921cec78.tar.bz2 |
Changes the contact source interfaces to use only the listeners for adding
contacts. This change fixes an issue with missing contacts from the
contact list.
Diffstat (limited to 'src/net/java/sip/communicator')
28 files changed, 318 insertions, 429 deletions
diff --git a/src/net/java/sip/communicator/impl/callhistory/CallHistoryContactSource.java b/src/net/java/sip/communicator/impl/callhistory/CallHistoryContactSource.java index f78ec65..b184430 100644 --- a/src/net/java/sip/communicator/impl/callhistory/CallHistoryContactSource.java +++ b/src/net/java/sip/communicator/impl/callhistory/CallHistoryContactSource.java @@ -36,31 +36,36 @@ public class CallHistoryContactSource } /** - * Queries this contact source for the given <tt>searchString</tt>. + * Creates query for the given <tt>searchString</tt>. * @param queryString the string to search for + * @param listener the listener that receives the found contacts * @return the created query */ - public ContactQuery queryContactSource(String queryString) + public ContactQuery createContactQuery(String queryString) { - return queryContactSource(queryString, 50); + return createContactQuery(queryString, 50); } /** - * Queries this contact source for the given <tt>searchString</tt>. + * Creates query for the given <tt>searchString</tt>. * @param queryString the string to search for * @param contactCount the maximum count of result contacts * @return the created query */ - public ContactQuery queryContactSource(String queryString, int contactCount) + public ContactQuery createContactQuery(String queryString, int contactCount) { if (queryString != null && queryString.length() > 0) + { return new CallHistoryContactQuery( CallHistoryActivator.getCallHistoryService() .findByPeer(queryString, contactCount)); + } else + { return new CallHistoryContactQuery( CallHistoryActivator.getCallHistoryService() .findLast(contactCount)); + } } /** @@ -93,6 +98,11 @@ public class CallHistoryContactSource * progress. */ private int status = QUERY_IN_PROGRESS; + + /** + * Iterator for the queried contacts. + */ + Iterator<CallRecord> recordsIter = null; /** * Creates an instance of <tt>CallHistoryContactQuery</tt> by specifying @@ -102,6 +112,7 @@ public class CallHistoryContactSource */ public CallHistoryContactQuery(Collection<CallRecord> callRecords) { + recordsIter = callRecords.iterator(); Iterator<CallRecord> recordsIter = callRecords.iterator(); while (recordsIter.hasNext() && status != QUERY_CANCELED) @@ -116,48 +127,56 @@ public class CallHistoryContactSource status = QUERY_COMPLETED; } - /** - * Creates an instance of <tt>CallHistoryContactQuery</tt> based on the - * given <tt>callHistoryQuery</tt>. - * @param callHistoryQuery the query used to track the call history - */ - public CallHistoryContactQuery(CallHistoryQuery callHistoryQuery) + @Override + public void start() { - this.callHistoryQuery = callHistoryQuery; - - callHistoryQuery.addQueryListener(new CallHistoryQueryListener() + if(callHistoryQuery != null) { - public void callRecordReceived(CallRecordEvent event) + callHistoryQuery.addQueryListener(new CallHistoryQueryListener() { - if (getStatus() == ContactQuery.QUERY_CANCELED) - return; - - SourceContact contact = new CallHistorySourceContact( - CallHistoryContactSource.this, - event.getCallRecord()); - sourceContacts.add(contact); - fireQueryEvent(contact); - } - - public void queryStatusChanged( - CallHistoryQueryStatusEvent event) - { - status = event.getEventType(); - fireQueryStatusEvent(status); - } - }); - - Iterator<CallRecord> callRecords - = callHistoryQuery.getCallRecords().iterator(); + public void callRecordReceived(CallRecordEvent event) + { + if (getStatus() == ContactQuery.QUERY_CANCELED) + return; + + SourceContact contact = new CallHistorySourceContact( + CallHistoryContactSource.this, + event.getCallRecord()); + sourceContacts.add(contact); + fireQueryEvent(contact); + } + + public void queryStatusChanged( + CallHistoryQueryStatusEvent event) + { + status = event.getEventType(); + fireQueryStatusEvent(status); + } + }); + recordsIter = callHistoryQuery.getCallRecords().iterator(); + } - while (callRecords.hasNext()) + while (recordsIter.hasNext()) { SourceContact contact = new CallHistorySourceContact( CallHistoryContactSource.this, - callRecords.next()); + recordsIter.next()); sourceContacts.add(contact); + fireQueryEvent(contact); } } + + /** + * Creates an instance of <tt>CallHistoryContactQuery</tt> based on the + * given <tt>callHistoryQuery</tt>. + * @param callHistoryQuery the query used to track the call history + */ + public CallHistoryContactQuery(CallHistoryQuery callHistoryQuery) + { + this.callHistoryQuery = callHistoryQuery; + + + } /** * Adds the given <tt>ContactQueryListener</tt> to the list of query diff --git a/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsQuery.java b/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsQuery.java index 4286a15..b653b95 100644 --- a/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsQuery.java +++ b/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsQuery.java @@ -135,6 +135,24 @@ public class GoogleContactsQuery }); } + @Override + public synchronized void start() + { + boolean hasStarted = false; + + try + { + super.start(); + hasStarted = true; + } + finally + { + if (!hasStarted) + { + getContactSource().removeQuery(this); + } + } + } /** * Gets the <tt>contactDetails</tt> to be set on a <tt>SourceContact</tt>. * diff --git a/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java b/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java index b0f578c..6a15559 100644 --- a/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java +++ b/src/net/java/sip/communicator/impl/googlecontacts/GoogleContactsSourceService.java @@ -126,57 +126,50 @@ public class GoogleContactsSourceService } /** - * Queries this search source for the given <tt>searchPattern</tt>. + * Creates query for the given <tt>searchPattern</tt>. * * @param queryPattern the pattern to search for + * @param listener the listener that receives the found contacts * @return the created query */ - public ContactQuery queryContactSource(Pattern queryPattern) + public ContactQuery createContactQuery(Pattern queryPattern) { - return queryContactSource(queryPattern, + return createContactQuery(queryPattern, GoogleContactsQuery.GOOGLECONTACTS_MAX_RESULTS); } /** - * Queries this search source for the given <tt>searchPattern</tt>. + * Creates query for the given <tt>searchPattern</tt>. * * @param queryPattern the pattern to search for * @param count maximum number of contact returned * @return the created query */ - public ContactQuery queryContactSource(Pattern queryPattern, int count) + public ContactQuery createContactQuery(Pattern queryPattern, int count) { GoogleContactsQuery query = new GoogleContactsQuery(this, queryPattern, count); - + synchronized (queries) { queries.add(query); } - boolean hasStarted = false; - - try - { - query.start(); - hasStarted = true; - } - finally - { - if (!hasStarted) - { - synchronized (queries) - { - if (queries.remove(query)) - queries.notify(); - } - } - } - return query; } /** + * Removes query from the list of queries. + * + * @param query the query that will be removed. + */ + public synchronized void removeQuery(ContactQuery query) + { + if (queries.remove(query)) + queries.notify(); + } + + /** * Returns the Google Contacts connection. * * @return Google Contacts connection @@ -331,21 +324,21 @@ public class GoogleContactsSourceService * @param query the string to search for * @return the created query */ - public ContactQuery queryContactSource(String query) + public ContactQuery createContactQuery(String query) { - return queryContactSource( + return createContactQuery( query, GoogleContactsQuery.GOOGLECONTACTS_MAX_RESULTS); } /** - * Queries this search source for the given <tt>queryString</tt>. + *Creates query for the given <tt>queryString</tt>. * * @param query the string to search for * @param contactCount the maximum count of result contacts * @return the created query */ - public ContactQuery queryContactSource(String query, int contactCount) + public ContactQuery createContactQuery(String query, int contactCount) { Pattern pattern = null; try @@ -360,7 +353,7 @@ public class GoogleContactsSourceService if(pattern != null) { - return queryContactSource(pattern, contactCount); + return createContactQuery(pattern, contactCount); } return null; } diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java index bd6d217..f66880c 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java @@ -4143,11 +4143,13 @@ public class CallManager // use the pattern method of (ExtendedContactSourceService)
ContactQuery query
= ((ExtendedContactSourceService)contactSourceService)
- .queryContactSource(pattern);
+ .createContactQuery(pattern);
resolvers.add(
new ResolveAddressToDisplayNameContactQueryListener(
query));
+
+ query.start();
}
long startTime = System.currentTimeMillis();
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatInviteDialog.java b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatInviteDialog.java index a97ed19..b8cac1a 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatInviteDialog.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/conference/ChatInviteDialog.java @@ -117,24 +117,6 @@ public class ChatInviteDialog } return true; } - - @Override - protected void addMatching(List<SourceContact> sourceContacts) - { - Iterator<SourceContact> contactsIter = sourceContacts.iterator(); - - List<SourceContact> matchedContacts = new ArrayList<SourceContact>(); - while (contactsIter.hasNext()) - { - SourceContact contact = contactsIter.next(); - if(!opSetMUC.isPrivateMessagingContact( - contact.getContactAddress())) - { - matchedContacts.add(contact); - } - } - super.addMatching(matchedContacts); - } } /** diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/CallHistoryFilter.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/CallHistoryFilter.java index 82d93e4..6b33b18 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/CallHistoryFilter.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/CallHistoryFilter.java @@ -46,13 +46,11 @@ public class CallHistoryFilter // We're in a case of call history contact source. ContactQuery query = contactSource.getContactSourceService() - .queryContactSource("", 50); + .createContactQuery("", 50); filterQuery.addContactQuery(query); - // Add first available results. - addMatching(query.getQueryResults(), - contactSource); + query.start(); // We know that this query should be finished here and we do not // expect any further results from it. @@ -99,28 +97,6 @@ public class CallHistoryFilter } /** - * Adds matching <tt>sourceContacts</tt> to the result tree model. - * - * @param sourceContacts the list of <tt>SourceContact</tt>s to add - * @param uiSource the <tt>ExternalContactSource</tt>, which contacts - * we're adding - */ - private void addMatching( List<SourceContact> sourceContacts, - UIContactSource uiSource) - { - Iterator<SourceContact> contactsIter = sourceContacts.iterator(); - - while (contactsIter.hasNext()) - { - GuiActivator.getContactList().addContact( - uiSource.createUIContact(contactsIter.next()), - uiSource.getUIGroup(), - false, - true); - } - } - - /** * Adds matching notification contacts to the result tree model. * * @param notifSource diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/PresenceFilter.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/PresenceFilter.java index 8f94468..64ed8b0 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/PresenceFilter.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/PresenceFilter.java @@ -86,8 +86,6 @@ public class PresenceFilter // Add this query to the filterQuery.
filterQuery.addContactQuery(query);
- List<ContactQuery> contactQueryList = new ArrayList<ContactQuery>();
-
for(int cssType : contactSourcePreferences.keySet())
{
Iterator<UIContactSource> filterSources
@@ -107,12 +105,17 @@ public class PresenceFilter ContactSourceService sourceService
= filterSource.getContactSourceService();
- ContactQuery contactQuery = sourceService.queryContactSource(null);
-
- contactQueryList.add(contactQuery);
-
+
+ ContactQuery contactQuery
+ = sourceService.createContactQuery(null);
+
// Add this query to the filterQuery.
filterQuery.addContactQuery(contactQuery);
+
+ contactQuery.addContactQueryListener(
+ GuiActivator.getContactList());
+
+ contactQuery.start();
}
}
@@ -120,21 +123,11 @@ public class PresenceFilter filterQuery.close();
query.addContactQueryListener(GuiActivator.getContactList());
-
int resultCount = 0;
addMatching(GuiActivator.getContactListService().getRoot(),
query,
resultCount);
- for(ContactQuery contactQuery : contactQueryList)
- {
- for(SourceContact contact : contactQuery.getQueryResults())
- {
- addSourceContact(contact);
- }
- contactQuery.addContactQueryListener(GuiActivator.getContactList());
- }
-
query.fireQueryEvent(
query.isCanceled()
? MetaContactQueryStatusEvent.QUERY_CANCELED
@@ -290,6 +283,7 @@ public class PresenceFilter if(isMatching(metaContact))
{
+
resultCount++;
if (resultCount <= INITIAL_CONTACT_COUNT)
{
@@ -362,35 +356,4 @@ public class PresenceFilter }
}
}
-
- /**
- * Adds the given <tt>sourceContact</tt> to the contact list.
- * @param sourceContact the <tt>SourceContact</tt> to add
- */
- private void addSourceContact(SourceContact sourceContact)
- {
- ContactSourceService contactSource
- = sourceContact.getContactSource();
-
- TreeContactList sourceContactList = GuiActivator.getContactList();
- UIContactSource sourceUI
- = sourceContactList .getContactSource(contactSource);
-
- if (sourceUI != null
- // ExtendedContactSourceService has already matched the
- // SourceContact over the pattern
- && (contactSource instanceof ExtendedContactSourceService)
- || isMatching(sourceContact))
- {
- boolean isSorted = (sourceContact.getIndex() > -1) ? true : false;
-
- sourceContactList.addContact(
- sourceUI.createUIContact(sourceContact),
- sourceUI.getUIGroup(),
- isSorted,
- true);
- }
- else
- sourceUI.removeUIContact(sourceContact);
- }
}
diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/SearchFilter.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/SearchFilter.java index 1a04516..e8cc603 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/SearchFilter.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/SearchFilter.java @@ -104,13 +104,14 @@ public class SearchFilter if (sourceContactList.getDefaultFilter() .equals(TreeContactList.presenceFilter)) { - MetaContactQuery defaultQuery - = mclSource.queryMetaContactSource(filterPattern); - + final MetaContactQuery defaultQuery = new MetaContactQuery(); + defaultQuery.addContactQueryListener(sourceContactList); - + // First add the MetaContactListSource filterQuery.addContactQuery(defaultQuery); + + mclSource.startQuery(defaultQuery, filterPattern); } else if (sourceContactList.getDefaultFilter() .equals(TreeContactList.historyFilter)) @@ -155,10 +156,7 @@ public class SearchFilter if (filterQuery.isCanceled()) return; - ContactQuery query = applyFilter(filterSource); - - if (query.getStatus() == ContactQuery.QUERY_IN_PROGRESS) - filterQuery.addContactQuery(query); + applyFilter(filterSource, filterQuery); } // Closes this filter to indicate that we finished adding queries to it. @@ -173,9 +171,11 @@ public class SearchFilter * * @param contactSource the <tt>ExternalContactSource</tt> to apply the * filter to + * @param filterQuery the filter query object. * @return the <tt>ContactQuery</tt> that tracks this filter */ - protected ContactQuery applyFilter(UIContactSource contactSource) + protected ContactQuery applyFilter(UIContactSource contactSource, + FilterQuery filterQuery) { ContactSourceService sourceService = contactSource.getContactSourceService(); @@ -184,15 +184,19 @@ public class SearchFilter if (sourceService instanceof ExtendedContactSourceService) contactQuery = ((ExtendedContactSourceService) sourceService) - .queryContactSource(filterPattern); + .createContactQuery(filterPattern); else - contactQuery = sourceService.queryContactSource(filterString); - - // Add first available results. - this.addMatching(contactQuery.getQueryResults()); + contactQuery = sourceService.createContactQuery(filterString); contactQuery.addContactQueryListener(sourceContactList); - + + if (contactQuery.getStatus() == ContactQuery.QUERY_IN_PROGRESS) + { + filterQuery.addContactQuery(contactQuery); + } + + contactQuery.start(); + return contactQuery; } @@ -253,19 +257,6 @@ public class SearchFilter } /** - * Checks if the given <tt>contact</tt> is matching the current filter. - * A <tt>SourceContact</tt> would be matching the filter if its display - * name is matching the search string. - * @param contact the <tt>ContactListContactDescriptor</tt> to check - * @return <tt>true</tt> to indicate that the given <tt>contact</tt> is - * matching the current filter, otherwise returns <tt>false</tt> - */ - private boolean isMatching(SourceContact contact) - { - return isMatching(contact.getDisplayName()); - } - - /** * Indicates if the given string matches this filter. * @param text the text to check * @return <tt>true</tt> to indicate that the given <tt>text</tt> matches @@ -278,46 +269,4 @@ public class SearchFilter return true; } - - /** - * Adds the list of <tt>sourceContacts</tt> to the contact list. - * @param sourceContacts the list of <tt>SourceContact</tt>s to add - */ - protected void addMatching(List<SourceContact> sourceContacts) - { - Iterator<SourceContact> contactsIter = sourceContacts.iterator(); - - while (contactsIter.hasNext()) - addSourceContact(contactsIter.next()); - } - - /** - * Adds the given <tt>sourceContact</tt> to the contact list. - * @param sourceContact the <tt>SourceContact</tt> to add - */ - private void addSourceContact(SourceContact sourceContact) - { - ContactSourceService contactSource - = sourceContact.getContactSource(); - - UIContactSource sourceUI - = sourceContactList.getContactSource(contactSource); - - if (sourceUI != null - // ExtendedContactSourceService has already matched the - // SourceContact over the pattern - && (contactSource instanceof ExtendedContactSourceService) - || isMatching(sourceContact)) - { - boolean isSorted = (sourceContact.getIndex() > -1) ? true : false; - - sourceContactList.addContact( - sourceUI.createUIContact(sourceContact), - sourceUI.getUIGroup(), - isSorted, - true); - } - else - sourceUI.removeUIContact(sourceContact); - } } diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java index 157ea09..e614a4b 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/TreeContactList.java @@ -324,7 +324,6 @@ public class TreeContactList { MetaContact metaContact = event.getMetaContact(); MetaContactGroup parentGroup = metaContact.getParentMetaContactGroup(); - UIGroup uiGroup = MetaContactListSource .getUIGroup(parentGroup); if (!MetaContactListSource.isRootGroup(parentGroup)) @@ -573,18 +572,19 @@ public class TreeContactList UIGroup uiGroup = MetaContactListSource .getUIGroup(rootGroup); - if (uiGroup == null) - uiGroup = MetaContactListSource - .createUIGroup(rootGroup); + if (uiGroup != null) + return; + + uiGroup = MetaContactListSource + .createUIGroup(rootGroup); - treeModel.getRoot().sortedAddContactGroup((UIGroupImpl)uiGroup); + treeModel.getRoot().sortedAddContactGroup((UIGroupImpl)uiGroup); Iterator<MetaContact> i = rootGroup.getChildContacts(); while (i.hasNext()) { MetaContact contact = i.next(); - UIContact uiContact - = MetaContactListSource.getUIContact(contact); + UIContact uiContact = MetaContactListSource.getUIContact(contact); removeContact(uiContact); uiContact = MetaContactListSource.createUIContact(contact); if (currentFilter.isMatching(uiContact)) @@ -601,6 +601,7 @@ public class TreeContactList { MetaContactGroup rootGroup = GuiActivator.getContactListService().getRoot(); + UIGroup uiGroup = MetaContactListSource .getUIGroup(rootGroup); @@ -613,7 +614,7 @@ public class TreeContactList while (i.hasNext()) { MetaContact contact = i.next(); - UIContact uiContact + UIContact uiContact = MetaContactListSource.getUIContact(contact); removeContact(uiContact); uiContact = MetaContactListSource.createUIContact(contact); @@ -1936,12 +1937,7 @@ public class TreeContactList if (contactSource instanceof ExtendedContactSourceService) { - ContactQuery query = ((ExtendedContactSourceService) - contactSource).queryContactSource(filterPattern); - - loadedQueries.add(query); - - query.addContactQueryListener(new ContactQueryListener() + ContactQueryListener queryListener = new ContactQueryListener() { public void queryStatusChanged(ContactQueryStatusEvent event) {} @@ -2026,7 +2022,14 @@ public class TreeContactList if (contactNode != null) nodeChanged(contactNode); } - }); + }; + + ContactQuery query = ((ExtendedContactSourceService) + contactSource).createContactQuery(filterPattern); + + loadedQueries.add(query); + + query.start(); // If the image search has been canceled from one of the // previous sources, we return here. diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/UIFilterQuery.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/UIFilterQuery.java index c18b825..6e6c8d7 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/UIFilterQuery.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/UIFilterQuery.java @@ -114,12 +114,6 @@ public class UIFilterQuery { ContactQuery externalQuery = (ContactQuery) contactQuery; - List<SourceContact> externalResults - = externalQuery.getQueryResults(); - - if (externalResults != null && externalResults.size() > 0) - queryResults = new ArrayList<SourceContact>(externalResults); - externalQuery.addContactQueryListener(this); } else if (contactQuery instanceof MetaContactQuery) diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java index 411e905..e182b3e 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaContactListSource.java @@ -185,17 +185,14 @@ public class MetaContactListSource } /** - * Filters the <tt>MetaContactListService</tt> to match the given - * <tt>filterPattern</tt> and stores the result in the given - * <tt>treeModel</tt>. + * Starts the query. + * * @param filterPattern the pattern to filter through - * @return the created <tt>MetaContactQuery</tt> corresponding to the - * query this method does + * @param query the query to be started */ - public MetaContactQuery queryMetaContactSource(final Pattern filterPattern) + public void startQuery(final MetaContactQuery query, + final Pattern filterPattern) { - final MetaContactQuery query = new MetaContactQuery(); - new Thread() { @Override @@ -215,8 +212,6 @@ public class MetaContactListSource MetaContactQueryStatusEvent.QUERY_CANCELED); } }.start(); - - return query; } /** diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/ProtocolContactSourceServiceImpl.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/ProtocolContactSourceServiceImpl.java index 9471b27..b7dde5b 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/ProtocolContactSourceServiceImpl.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/ProtocolContactSourceServiceImpl.java @@ -83,24 +83,24 @@ public class ProtocolContactSourceServiceImpl } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>searchPattern</tt>. * * @param queryString the string to search for * @return the created query */ - public ContactQuery queryContactSource(String queryString) + public ContactQuery createContactQuery(String queryString) { - return queryContactSource(queryString, -1); + return createContactQuery(queryString, -1); } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>searchPattern</tt>. * * @param queryString the string to search for * @param contactCount the maximum count of result contacts * @return the created query */ - public ContactQuery queryContactSource( String queryString, + public ContactQuery createContactQuery( String queryString, int contactCount) { if (queryString == null) @@ -108,32 +108,24 @@ public class ProtocolContactSourceServiceImpl ProtocolCQuery contactQuery = new ProtocolCQuery(queryString, contactCount); - + synchronized (queries) { queries.add(contactQuery); } - boolean queryHasStarted = false; - - try - { - contactQuery.start(); - queryHasStarted = true; - } - finally - { - if (!queryHasStarted) - { - synchronized (queries) - { - if (queries.remove(contactQuery)) - queries.notify(); - } - } - } return contactQuery; } + + /** + * Removes query from the list. + * @param contactQuery the query + */ + public synchronized void removeQuery(ContactQuery contactQuery) + { + if (queries.remove(contactQuery)) + queries.notify(); + } /** * The <tt>ProtocolCQuery</tt> performing the query for this contact source. @@ -200,6 +192,26 @@ public class ProtocolContactSourceServiceImpl setStatus(QUERY_COMPLETED); } + @Override + public synchronized void start() + { + boolean queryHasStarted = false; + + try + { + super.start(); + queryHasStarted = true; + } + finally + { + if (!queryHasStarted) + { + getContactSource().removeQuery(this); + } + } + + } + /** * Adds the result for the given group. * diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/StringContactSourceServiceImpl.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/StringContactSourceServiceImpl.java index bbeaebd..343e60a 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/StringContactSourceServiceImpl.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/StringContactSourceServiceImpl.java @@ -69,24 +69,24 @@ public class StringContactSourceServiceImpl } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @return the created query */ - public ContactQuery queryContactSource(String queryString) + public ContactQuery createContactQuery(String queryString) { - return queryContactSource(queryString, -1); + return createContactQuery(queryString, -1); } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @param contactCount the maximum count of result contacts * @return the created query */ - public ContactQuery queryContactSource( String queryString, + public ContactQuery createContactQuery( String queryString, int contactCount) { return new StringQuery(queryString); @@ -120,10 +120,6 @@ public class StringContactSourceServiceImpl this.queryString = queryString; this.results = new ArrayList<SourceContact>(); - results.add(getSourceContact()); - - if (getStatus() != QUERY_CANCELED) - setStatus(QUERY_COMPLETED); } /** @@ -146,6 +142,16 @@ public class StringContactSourceServiceImpl return results; } + @Override + public void start() + { + SourceContact contact = getSourceContact(); + results.add(contact); + + fireContactReceived(contact); + if (getStatus() != QUERY_CANCELED) + setStatus(QUERY_COMPLETED); + } /** * Returns the source contact corresponding to the query string. * diff --git a/src/net/java/sip/communicator/impl/gui/utils/InviteContactListFilter.java b/src/net/java/sip/communicator/impl/gui/utils/InviteContactListFilter.java index 17cc5e3..5aa0edf 100644 --- a/src/net/java/sip/communicator/impl/gui/utils/InviteContactListFilter.java +++ b/src/net/java/sip/communicator/impl/gui/utils/InviteContactListFilter.java @@ -69,10 +69,7 @@ public class InviteContactListFilter if (filterQuery.isCanceled()) return; - ContactQuery query = applyFilter(filterSource); - - if (query.getStatus() == ContactQuery.QUERY_IN_PROGRESS) - filterQuery.addContactQuery(query); + applyFilter(filterSource, filterQuery); } // Closes this filter to indicate that we finished adding queries to it. diff --git a/src/net/java/sip/communicator/impl/ldap/LdapContactQuery.java b/src/net/java/sip/communicator/impl/ldap/LdapContactQuery.java index eff5efa..714e9b6 100644 --- a/src/net/java/sip/communicator/impl/ldap/LdapContactQuery.java +++ b/src/net/java/sip/communicator/impl/ldap/LdapContactQuery.java @@ -123,6 +123,24 @@ public class LdapContactQuery } } + @Override + public synchronized void start() + { + boolean hasStarted = false; + + try + { + super.start(); + hasStarted = true; + } + finally + { + if (!hasStarted) + { + getContactSource().removeQuery(this); + } + } + } /** * Gets the <tt>contactDetails</tt> to be set on a <tt>SourceContact</tt>. * diff --git a/src/net/java/sip/communicator/impl/ldap/LdapContactSourceService.java b/src/net/java/sip/communicator/impl/ldap/LdapContactSourceService.java index 48ec8e0..40b005b 100644 --- a/src/net/java/sip/communicator/impl/ldap/LdapContactSourceService.java +++ b/src/net/java/sip/communicator/impl/ldap/LdapContactSourceService.java @@ -49,57 +49,48 @@ public class LdapContactSourceService } /** - * Queries this search source for the given <tt>searchPattern</tt>. + * Creates query for the given <tt>searchPattern</tt>. * * @param queryPattern the pattern to search for * @return the created query */ - public ContactQuery queryContactSource(Pattern queryPattern) + public ContactQuery createContactQuery(Pattern queryPattern) { - return queryContactSource(queryPattern, + return createContactQuery(queryPattern, LdapContactQuery.LDAP_MAX_RESULTS); } /** - * Queries this search source for the given <tt>searchPattern</tt>. + * Creates query for the given <tt>searchPattern</tt>. * * @param queryPattern the pattern to search for * @param count maximum number of contact returned * @return the created query */ - public ContactQuery queryContactSource(Pattern queryPattern, int count) + public ContactQuery createContactQuery(Pattern queryPattern, int count) { LdapContactQuery query = new LdapContactQuery(this, queryPattern, count); - + synchronized (queries) { queries.add(query); } - boolean hasStarted = false; - - try - { - query.start(); - hasStarted = true; - } - finally - { - if (!hasStarted) - { - synchronized (queries) - { - if (queries.remove(query)) - queries.notify(); - } - } - } - return query; } /** + * Removes a query from the list. + * @param query the query + */ + public synchronized void removeQuery(ContactQuery query) + { + if (queries.remove(query)) + queries.notify(); + } + + /** * Returns a user-friendly string that identifies this contact source. * @return the display name of this contact source */ @@ -120,23 +111,25 @@ public class LdapContactSourceService } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>query</tt>. * @param query the string to search for + * @param listener the listener that receives the found contacts. * @return the created query */ - public ContactQuery queryContactSource(String query) + public ContactQuery createContactQuery(String query) { - return queryContactSource(query, LdapContactQuery.LDAP_MAX_RESULTS); + return createContactQuery(query, LdapContactQuery.LDAP_MAX_RESULTS); } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>query</tt>. * * @param query the string to search for * @param contactCount the maximum count of result contacts + * @param listener the listener that receives the found contacts. * @return the created query */ - public ContactQuery queryContactSource(String query, int contactCount) + public ContactQuery createContactQuery(String query, int contactCount) { Pattern pattern = null; try @@ -150,7 +143,7 @@ public class LdapContactSourceService if(pattern != null) { - return queryContactSource(pattern, contactCount); + return createContactQuery(pattern, contactCount); } return null; } diff --git a/src/net/java/sip/communicator/impl/muc/ChatRoomContactSourceService.java b/src/net/java/sip/communicator/impl/muc/ChatRoomContactSourceService.java index 3f71801..3856ffd 100644 --- a/src/net/java/sip/communicator/impl/muc/ChatRoomContactSourceService.java +++ b/src/net/java/sip/communicator/impl/muc/ChatRoomContactSourceService.java @@ -37,35 +37,32 @@ public class ChatRoomContactSourceService } /** - * Queries this contact source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @return the created query */ @Override - public ContactQuery queryContactSource(String queryString) + public ContactQuery createContactQuery(String queryString) { - return queryContactSource(queryString, -1); + return createContactQuery(queryString, -1); } /** - * Queries this contact source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @param contactCount the maximum count of result contacts * @return the created query */ @Override - public ContactQuery queryContactSource(String queryString, int contactCount) + public ContactQuery createContactQuery(String queryString, int contactCount) { if (queryString == null) queryString = ""; ChatRoomQuery contactQuery = new ChatRoomQuery(queryString, this); - - contactQuery.start(); - return contactQuery; } diff --git a/src/net/java/sip/communicator/impl/muc/ServerChatRoomContactSourceService.java b/src/net/java/sip/communicator/impl/muc/ServerChatRoomContactSourceService.java index d2f19e6..929b5ce 100644 --- a/src/net/java/sip/communicator/impl/muc/ServerChatRoomContactSourceService.java +++ b/src/net/java/sip/communicator/impl/muc/ServerChatRoomContactSourceService.java @@ -44,36 +44,32 @@ public class ServerChatRoomContactSourceService } /** - * Queries this contact source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @return the created query */ @Override - public ContactQuery queryContactSource(String queryString) + public ContactQuery createContactQuery(String queryString) { - return queryContactSource(queryString, -1); + return createContactQuery(queryString, -1); } /** - * Queries this contact source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @param contactCount the maximum count of result contacts * @return the created query */ @Override - public ContactQuery queryContactSource(String queryString, int contactCount) + public ContactQuery createContactQuery(String queryString, int contactCount) { if (queryString == null) queryString = ""; ServerChatRoomQuery contactQuery = new ServerChatRoomQuery(queryString, this, provider); - - contactQuery.start(); - - return contactQuery; } diff --git a/src/net/java/sip/communicator/impl/muc/ServerChatRoomQuery.java b/src/net/java/sip/communicator/impl/muc/ServerChatRoomQuery.java index fd8fc23..78edd8a 100644 --- a/src/net/java/sip/communicator/impl/muc/ServerChatRoomQuery.java +++ b/src/net/java/sip/communicator/impl/muc/ServerChatRoomQuery.java @@ -11,7 +11,6 @@ import java.util.regex.*; import net.java.sip.communicator.service.contactsource.*;
import net.java.sip.communicator.service.muc.*;
import net.java.sip.communicator.service.protocol.*;
-import net.java.sip.communicator.util.Logger;
/**
* The <tt>ServerChatRoomQuery</tt> is a query over the
diff --git a/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java b/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java index 5ed8563..2a90e7b 100644 --- a/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java +++ b/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java @@ -91,7 +91,7 @@ public class MacOSXAddrBookContactSourceService } /** - * Queries this <tt>ContactSourceService</tt> for <tt>SourceContact</tt>s + * Creates query that searches for <tt>SourceContact</tt>s * which match a specific <tt>query</tt> <tt>Pattern</tt>. * * @param query the <tt>Pattern</tt> which this @@ -102,14 +102,13 @@ public class MacOSXAddrBookContactSourceService * any) will be returned * @see ExtendedContactSourceService#queryContactSource(Pattern) */ - public ContactQuery queryContactSource(Pattern query) + public ContactQuery createContactQuery(Pattern query) { if(latestQuery != null) latestQuery.clear(); latestQuery = new MacOSXAddrBookContactQuery(this, query); - latestQuery.start(); return latestQuery; } diff --git a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java index 3335e07..bcac003 100644 --- a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java +++ b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java @@ -161,7 +161,7 @@ public class MsOutlookAddrBookContactSourceService public static native int getOutlookVersion(); /** - * Queries this <tt>ContactSourceService</tt> for <tt>SourceContact</tt>s + * Creates query that searches for <tt>SourceContact</tt>s * which match a specific <tt>query</tt> <tt>Pattern</tt>. * * @param query the <tt>Pattern</tt> which this @@ -172,14 +172,13 @@ public class MsOutlookAddrBookContactSourceService * any) will be returned * @see ExtendedContactSourceService#queryContactSource(Pattern) */ - public ContactQuery queryContactSource(Pattern query) + public ContactQuery createContactQuery(Pattern query) { if(latestQuery != null) latestQuery.clear(); latestQuery = new MsOutlookAddrBookContactQuery(this, query); - - latestQuery.start(); + return latestQuery; } diff --git a/src/net/java/sip/communicator/plugin/demuxcontactsource/DemuxContactSource.java b/src/net/java/sip/communicator/plugin/demuxcontactsource/DemuxContactSource.java index d50a05b..96bbbc0 100644 --- a/src/net/java/sip/communicator/plugin/demuxcontactsource/DemuxContactSource.java +++ b/src/net/java/sip/communicator/plugin/demuxcontactsource/DemuxContactSource.java @@ -94,12 +94,12 @@ public class DemuxContactSource } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @return the created query */ - public ContactQuery queryContactSource(String queryString) + public ContactQuery createContactQuery(String queryString) { if (logger.isDebugEnabled()) logger.debug("Demux query contact source: " + contactSource @@ -112,7 +112,7 @@ public class DemuxContactSource { return new DemuxContactQuery( ((ExtendedContactSourceService) contactSource) - .queryContactSource(Pattern.compile( + .createContactQuery(Pattern.compile( Pattern.quote(queryString), Pattern.MULTILINE | Pattern.CASE_INSENSITIVE @@ -120,20 +120,20 @@ public class DemuxContactSource } else return new DemuxContactQuery( - contactSource.queryContactSource(queryString)); + contactSource.createContactQuery(queryString)); } /** - * Queries this search source for the given <tt>queryString</tt>. + * Creates query for the given <tt>queryString</tt>. * * @param queryString the string to search for * @param contactCount the maximum count of result contacts * @return the created query */ - public ContactQuery queryContactSource(String queryString, int contactCount) + public ContactQuery createContactQuery(String queryString, int contactCount) { return new DemuxContactQuery( - contactSource.queryContactSource(queryString, contactCount)); + contactSource.createContactQuery(queryString, contactCount)); } /** @@ -175,8 +175,6 @@ public class DemuxContactSource this.sourceQuery = sourceQuery; - initQueryResults(); - sourceQuery.addContactQueryListener(this); } @@ -205,42 +203,6 @@ public class DemuxContactSource } /** - * Initializes the query results. - */ - public void initQueryResults() - { - List<SourceContact> sourceContacts = sourceQuery.getQueryResults(); - - if (sourceContacts == null) - return; - - Iterator<SourceContact> contactIter = sourceContacts.iterator(); - while (contactIter.hasNext()) - { - SourceContact sourceContact = contactIter.next(); - - Iterator<ContactDetail> detailsIter - = sourceContact.getContactDetails().iterator(); - - while (detailsIter.hasNext()) - { - ContactDetail detail = detailsIter.next(); - - if (preferredProtocolProviders == null - || isPreferredContactDetail(detail)) - { - SortedGenericSourceContact - demuxContact - = (SortedGenericSourceContact) - createSourceContact(sourceContact, - detail); - addContact(demuxContact); - } - } - } - } - - /** * Returns the list of <tt>SourceContact</tt>s returned by this query. * * @return the list of <tt>SourceContact</tt>s returned by this query @@ -258,6 +220,12 @@ public class DemuxContactSource { sourceQuery.cancel(); } + + @Override + public void start() + { + sourceQuery.start(); + } /** * Returns the status of this query. One of the static constants diff --git a/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactSource.java b/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactSource.java index 3df2206..e5f4d74 100644 --- a/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactSource.java +++ b/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactSource.java @@ -41,24 +41,26 @@ public class PhoneNumberContactSource }
/**
- * Queries this contact source for the given <tt>queryString</tt>.
+ * Creates query for the given <tt>queryString</tt>.
*
* @param queryString the string to search for
+ * @param listener the listener that receives the found contacts.
* @return the created query
*/
- public ContactQuery queryContactSource(String queryString)
+ public ContactQuery createContactQuery(String queryString)
{
- return queryContactSource(queryString, -1);
+ return createContactQuery(queryString, -1);
}
/**
- * Queries this contact source for the given <tt>queryString</tt>.
+ * Creates query for the given <tt>queryString</tt>.
*
* @param queryString the string to search for
* @param contactCount the maximum count of result contacts
+ * @param listener the listener that receives the found contacts.
* @return the created query
*/
- public ContactQuery queryContactSource( String queryString,
+ public ContactQuery createContactQuery( String queryString,
int contactCount)
{
if (queryString == null)
@@ -67,7 +69,6 @@ public class PhoneNumberContactSource PhoneNumberContactQuery contactQuery
= new PhoneNumberContactQuery(this, queryString, contactCount);
- contactQuery.start();
return contactQuery;
}
diff --git a/src/net/java/sip/communicator/plugin/thunderbird/ThunderbirdContactSourceService.java b/src/net/java/sip/communicator/plugin/thunderbird/ThunderbirdContactSourceService.java index 27e4fe0..4d78fcc 100644 --- a/src/net/java/sip/communicator/plugin/thunderbird/ThunderbirdContactSourceService.java +++ b/src/net/java/sip/communicator/plugin/thunderbird/ThunderbirdContactSourceService.java @@ -141,7 +141,7 @@ public class ThunderbirdContactSourceService * @see net.java.sip.communicator.service.contactsource
* .ContactSourceService#queryContactSource(java.lang.String)
*/
- public ContactQuery queryContactSource(String queryString)
+ public ContactQuery createContactQuery(String queryString)
{
Pattern pattern = null;
try
@@ -157,7 +157,7 @@ public class ThunderbirdContactSourceService if(pattern != null)
{
- return queryContactSource(pattern);
+ return createContactQuery(pattern);
}
return null;
}
@@ -169,11 +169,11 @@ public class ThunderbirdContactSourceService * net.java.sip.communicator.service.contactsource.ContactSourceService#
* queryContactSource(java.lang.String, int)
*/
- public ContactQuery queryContactSource(String queryString, int contactCount)
+ public ContactQuery createContactQuery(String queryString, int contactCount)
{
// XXX: The ThunderbirdContactQuery does not tqke a contactCount
// argument yet. Thus, call the default queryContactSource function.
- return queryContactSource(queryString);
+ return createContactQuery(queryString);
}
/*
@@ -183,9 +183,12 @@ public class ThunderbirdContactSourceService * net.java.sip.communicator.service.contactsource.ExtendedContactSourceService
* #queryContactSource(java.util.regex.Pattern)
*/
- public ContactQuery queryContactSource(Pattern queryPattern)
+ public ContactQuery createContactQuery(Pattern queryPattern)
{
- return new ThunderbirdContactQuery(this, queryPattern);
+ ThunderbirdContactQuery query
+ = new ThunderbirdContactQuery(this, queryPattern);
+
+ return query;
}
/*
diff --git a/src/net/java/sip/communicator/service/contactsource/AsyncContactSourceService.java b/src/net/java/sip/communicator/service/contactsource/AsyncContactSourceService.java index 55e5b3f..d734efb 100644 --- a/src/net/java/sip/communicator/service/contactsource/AsyncContactSourceService.java +++ b/src/net/java/sip/communicator/service/contactsource/AsyncContactSourceService.java @@ -18,25 +18,26 @@ public abstract class AsyncContactSourceService implements ExtendedContactSourceService
{
/**
- * Queries this <tt>ContactSourceService</tt> for <tt>SourceContact</tt>s
+ * Creates query that searches for <tt>SourceContact</tt>s
* which match a specific <tt>query</tt> <tt>String</tt>.
*
* @param query the <tt>String</tt> which this <tt>ContactSourceService</tt>
* is being queried for
+ * @param listener the listener that receives the found contacts.
* @return a <tt>ContactQuery</tt> which represents the query of this
* <tt>ContactSourceService</tt> implementation for the specified
* <tt>String</tt> and via which the matching <tt>SourceContact</tt>s (if
* any) will be returned
* @see ContactSourceService#queryContactSource(String)
*/
- public ContactQuery queryContactSource(String query)
+ public ContactQuery createContactQuery(String query)
{
- return queryContactSource(
+ return createContactQuery(
Pattern.compile(query, Pattern.CASE_INSENSITIVE | Pattern.LITERAL));
}
/**
- * Queries this <tt>ContactSourceService</tt> for <tt>SourceContact</tt>s
+ * Creates query that searches for <tt>SourceContact</tt>s
* which match a specific <tt>query</tt> <tt>String</tt>.
*
* @param query the <tt>String</tt> which this <tt>ContactSourceService</tt>
@@ -48,9 +49,9 @@ public abstract class AsyncContactSourceService * any) will be returned
* @see ContactSourceService#queryContactSource(String)
*/
- public ContactQuery queryContactSource(String query, int contactCount)
+ public ContactQuery createContactQuery(String query, int contactCount)
{
- return queryContactSource(
+ return createContactQuery(
Pattern.compile(query, Pattern.CASE_INSENSITIVE | Pattern.LITERAL));
}
diff --git a/src/net/java/sip/communicator/service/contactsource/ContactQuery.java b/src/net/java/sip/communicator/service/contactsource/ContactQuery.java index 8b245c4..0a630a0 100644 --- a/src/net/java/sip/communicator/service/contactsource/ContactQuery.java +++ b/src/net/java/sip/communicator/service/contactsource/ContactQuery.java @@ -57,6 +57,11 @@ public interface ContactQuery * @return the list of <tt>SourceContact</tt>s returned by this query */ public List<SourceContact> getQueryResults(); + + /** + * Starts the query. + */ + public void start(); /** * Cancels this query. diff --git a/src/net/java/sip/communicator/service/contactsource/ContactSourceService.java b/src/net/java/sip/communicator/service/contactsource/ContactSourceService.java index 886462d..ceca03a 100644 --- a/src/net/java/sip/communicator/service/contactsource/ContactSourceService.java +++ b/src/net/java/sip/communicator/service/contactsource/ContactSourceService.java @@ -48,24 +48,25 @@ public interface ContactSourceService * @return the display name of this contact source */ public String getDisplayName(); - + /** - * Queries this search source for the given <tt>queryString</tt>. - * + * Creates and returns new <tt>ContactQuery</tt> instance. + * * @param queryString the string to search for - * @return the created query + * + * @return new <tt>ContactQuery</tt> instance. */ - public ContactQuery queryContactSource(String queryString); - + public ContactQuery createContactQuery(String queryString); + /** - * Queries this search source for the given <tt>queryString</tt>. - * + * Creates and returns new <tt>ContactQuery</tt> instance. + * * @param queryString the string to search for * @param contactCount the maximum count of result contacts - * @return the created query + * @return new <tt>ContactQuery</tt> instance. */ - public ContactQuery queryContactSource(String queryString, - int contactCount); + public ContactQuery createContactQuery(String queryString, + int contactCount); /** * Returns the index of the contact source in the result list. diff --git a/src/net/java/sip/communicator/service/contactsource/ExtendedContactSourceService.java b/src/net/java/sip/communicator/service/contactsource/ExtendedContactSourceService.java index 4a06b2c..d897765 100644 --- a/src/net/java/sip/communicator/service/contactsource/ExtendedContactSourceService.java +++ b/src/net/java/sip/communicator/service/contactsource/ExtendedContactSourceService.java @@ -29,11 +29,11 @@ public interface ExtendedContactSourceService extends ContactSourceService { /** - * Queries this search source for the given <tt>searchPattern</tt>. + * Creates query for the given <tt>searchPattern</tt>. * @param queryPattern the pattern to search for * @return the created query */ - public ContactQuery queryContactSource(Pattern queryPattern); + public ContactQuery createContactQuery(Pattern queryPattern); /** * Returns the global phone number prefix to be used when calling contacts |