Java源码示例:microsoft.exchange.webservices.data.search.ItemView
示例1
/**
* Obtains a grouped list of item by searching the contents of a specific
* folder. Calling this method results in a call to EWS.
*
* @param parentFolderId the parent folder id
* @param queryString the query string
* @param view the view
* @param groupBy the group by
* @return A list of item containing the contents of the specified folder.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(FolderId parentFolderId,
String queryString, ItemView view, Grouping groupBy)
throws Exception {
EwsUtilities.validateParam(groupBy, "groupBy");
EwsUtilities.validateParamAllowNull(queryString, "queryString");
List<FolderId> folderIdArray = new ArrayList<FolderId>();
folderIdArray.add(parentFolderId);
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.findItems(folderIdArray, null, /* searchFilter */
queryString, view, groupBy, ServiceErrorHandling.ThrowOnError);
return responses.getResponseAtIndex(0).getGroupedFindResults();
}
示例2
/**
* Obtains a grouped list of item by searching the contents of a specific
* folder. Calling this method results in a call to EWS.
*
* @param parentFolderId the parent folder id
* @param searchFilter the search filter
* @param view the view
* @param groupBy the group by
* @return A list of item containing the contents of the specified folder.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(FolderId parentFolderId,
SearchFilter searchFilter, ItemView view, Grouping groupBy)
throws Exception {
EwsUtilities.validateParam(groupBy, "groupBy");
EwsUtilities.validateParamAllowNull(searchFilter, "searchFilter");
List<FolderId> folderIdArray = new ArrayList<FolderId>();
folderIdArray.add(parentFolderId);
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.findItems(folderIdArray, searchFilter, null, /* queryString */
view, groupBy, ServiceErrorHandling.ThrowOnError);
return responses.getResponseAtIndex(0).getGroupedFindResults();
}
示例3
@Override
public Iterator<Item> listFiles(String folder) throws FileSystemException {
try {
FolderId folderId = findFolder(basefolderId,folder);
ItemView view = new ItemView(getMaxNumberOfMessagesToList());
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
FindItemsResults<Item> findResults;
if ("NDR".equalsIgnoreCase(getFilter())) {
SearchFilter searchFilterBounce = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "REPORT.IPM.Note.NDR");
findResults = exchangeService.findItems(folderId,searchFilterBounce, view);
} else {
findResults = exchangeService.findItems(folderId, view);
}
if (findResults.getTotalCount() == 0) {
return null;
} else {
return findResults.getItems().iterator();
}
} catch (Exception e) {
throw new FileSystemException("Cannot list messages in folder ["+folder+"]", e);
}
}
示例4
/**
* Obtains a list of item by searching the contents of a specific folder.
* Calling this method results in a call to EWS.
*
* @param parentFolderId the parent folder id
* @param queryString the query string
* @param view the view
* @return An object representing the results of the search operation.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(FolderId parentFolderId,
String queryString, ItemView view) throws Exception {
EwsUtilities.validateParamAllowNull(queryString, "queryString");
List<FolderId> folderIdArray = new ArrayList<FolderId>();
folderIdArray.add(parentFolderId);
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.findItems(folderIdArray, null, /* searchFilter */
queryString, view, null, /* groupBy */
ServiceErrorHandling.ThrowOnError);
return responses.getResponseAtIndex(0).getResults();
}
示例5
/**
* Obtains a list of item by searching the contents of a specific folder.
* Calling this method results in a call to EWS.
*
* @param parentFolderId the parent folder id
* @param searchFilter the search filter
* @param view the view
* @return An object representing the results of the search operation.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(FolderId parentFolderId,
SearchFilter searchFilter, ItemView view) throws Exception {
EwsUtilities.validateParamAllowNull(searchFilter, "searchFilter");
List<FolderId> folderIdArray = new ArrayList<FolderId>();
folderIdArray.add(parentFolderId);
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.findItems(folderIdArray, searchFilter, null, /* queryString */
view, null, /* groupBy */
ServiceErrorHandling.ThrowOnError);
return responses.getResponseAtIndex(0).getResults();
}
示例6
/**
* Obtains a list of item by searching the contents of a specific folder.
* Calling this method results in a call to EWS.
*
* @param parentFolderId the parent folder id
* @param view the view
* @return An object representing the results of the search operation.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(FolderId parentFolderId,
ItemView view) throws Exception {
List<FolderId> folderIdArray = new ArrayList<FolderId>();
folderIdArray.add(parentFolderId);
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.findItems(folderIdArray, null, /* searchFilter */
null, /* queryString */
view, null, /* groupBy */
ServiceErrorHandling.ThrowOnError);
return responses.getResponseAtIndex(0).getResults();
}
示例7
/**
* Obtains a grouped list of item by searching the contents of a specific
* folder. Calling this method results in a call to EWS.
*
* @param parentFolderId the parent folder id
* @param view the view
* @param groupBy the group by
* @return A list of item containing the contents of the specified folder.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(FolderId parentFolderId,
ItemView view, Grouping groupBy) throws Exception {
EwsUtilities.validateParam(groupBy, "groupBy");
List<FolderId> folderIdArray = new ArrayList<FolderId>();
folderIdArray.add(parentFolderId);
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.findItems(folderIdArray, null, /* searchFilter */
null, /* queryString */
view, groupBy, ServiceErrorHandling.ThrowOnError);
return responses.getResponseAtIndex(0).getGroupedFindResults();
}
示例8
/**
* Find item.
*
* @param queryString query string to be used for indexed search
* @param view The view controlling the number of item returned.
* @return FindItems results collection.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(String queryString, ItemView view)
throws Exception {
EwsUtilities.validateParamAllowNull(queryString, "queryString");
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.internalFindItems(queryString, view, null /* groupBy */);
return responses.getResponseAtIndex(0).getResults();
}
示例9
/**
* Find item.
*
* @param view The view controlling the number of item returned.
* @return FindItems results collection.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(ItemView view) throws Exception {
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.internalFindItems((SearchFilter) null, view,
null /* groupBy */);
return responses.getResponseAtIndex(0).getResults();
}
示例10
@Override
public boolean exists(Item f) throws FileSystemException {
try {
ItemView view = new ItemView(1);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
SearchFilter searchFilter = new SearchFilter.IsEqualTo(ItemSchema.Id, f.getId().toString());
FindItemsResults<Item> findResults;
findResults = exchangeService.findItems(basefolderId,searchFilter, view);
return findResults.getTotalCount()!=0;
} catch (Exception e) {
throw new FileSystemException(e);
}
}
示例11
/**
* Fills the internal message queue if such queue is empty. This is due to
* the fact that per single session there may be multiple messages retrieved
* from the email server (see FETCH_SIZE).
*/
protected void fillMessageQueueIfNecessary(ProcessContext context) throws ProcessException {
if (this.messageQueue.isEmpty()) {
ExchangeService service = this.initializeIfNecessary(context);
boolean deleteOnRead = context.getProperty(SHOULD_DELETE_MESSAGES).getValue().equals("true");
boolean markAsRead = context.getProperty(SHOULD_MARK_READ).getValue().equals("true");
try {
//Get Folder
Folder folder = getFolder(service);
ItemView view = new ItemView(messageQueue.remainingCapacity());
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
FindItemsResults<Item> findResults = service.findItems(folder.getId(), sf, view);
if(findResults == null || findResults.getItems().size()== 0){
return;
}
service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties);
for (Item item : findResults) {
EmailMessage ewsMessage = (EmailMessage) item;
messageQueue.add(parseMessage(ewsMessage));
if(deleteOnRead){
ewsMessage.delete(DeleteMode.HardDelete);
} else if(markAsRead){
ewsMessage.setIsRead(true);
ewsMessage.update(ConflictResolutionMode.AlwaysOverwrite);
}
}
service.close();
} catch (Exception e) {
throw new ProcessException("Failed retrieving new messages from EWS.", e);
}
}
}
示例12
/**
* Fills the internal message queue if such queue is empty. This is due to
* the fact that per single session there may be multiple messages retrieved
* from the email server (see FETCH_SIZE).
*/
protected void fillMessageQueueIfNecessary(ProcessContext context) throws ProcessException {
if (this.messageQueue.isEmpty()) {
ExchangeService service = this.initializeIfNecessary(context);
boolean deleteOnRead = context.getProperty(SHOULD_DELETE_MESSAGES).getValue().equals("true");
boolean markAsRead = context.getProperty(SHOULD_MARK_READ).getValue().equals("true");
String includeHeaders = context.getProperty(INCLUDE_EMAIL_HEADERS).getValue();
String excludeHeaders = context.getProperty(EXCLUDE_EMAIL_HEADERS).getValue();
List<String> includeHeadersList = null;
List<String> excludeHeadersList = null;
if (!StringUtils.isEmpty(includeHeaders)) {
includeHeadersList = Arrays.asList(includeHeaders.split(","));
}
if (!StringUtils.isEmpty(excludeHeaders)) {
excludeHeadersList = Arrays.asList(excludeHeaders.split(","));
}
try {
//Get Folder
Folder folder = getFolder(service);
ItemView view = new ItemView(messageQueue.remainingCapacity());
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
FindItemsResults<Item> findResults = service.findItems(folder.getId(), sf, view);
if(findResults == null || findResults.getItems().size()== 0){
return;
}
service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties);
for (Item item : findResults) {
EmailMessage ewsMessage = (EmailMessage) item;
messageQueue.add(parseMessage(ewsMessage,includeHeadersList,excludeHeadersList));
if(deleteOnRead){
ewsMessage.delete(DeleteMode.HardDelete);
} else if(markAsRead){
ewsMessage.setIsRead(true);
ewsMessage.update(ConflictResolutionMode.AlwaysOverwrite);
}
}
service.close();
} catch (Exception e) {
throw new ProcessException("Failed retrieving new messages from EWS.", e);
}
}
}
示例13
/**
* Obtains a list of item by searching the contents of a specific folder.
* Calling this method results in a call to EWS.
*
* @param parentFolderName the parent folder name
* @param queryString the query string
* @param view the view
* @return An object representing the results of the search operation.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(
WellKnownFolderName parentFolderName, String queryString,
ItemView view) throws Exception {
return this
.findItems(new FolderId(parentFolderName), queryString, view);
}
示例14
/**
* Obtains a list of item by searching the contents of a specific folder.
* Calling this method results in a call to EWS.
*
* @param parentFolderName the parent folder name
* @param searchFilter the search filter
* @param view the view
* @return An object representing the results of the search operation.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(
WellKnownFolderName parentFolderName, SearchFilter searchFilter,
ItemView view) throws Exception {
return this.findItems(new FolderId(parentFolderName), searchFilter,
view);
}
示例15
/**
* Obtains a grouped list of item by searching the contents of a specific
* folder. Calling this method results in a call to EWS.
*
* @param parentFolderName the parent folder name
* @param queryString the query string
* @param view the view
* @param groupBy the group by
* @return A collection of grouped item containing the contents of the
* specified.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(
WellKnownFolderName parentFolderName, String queryString,
ItemView view, Grouping groupBy) throws Exception {
EwsUtilities.validateParam(groupBy, "groupBy");
return this.findItems(new FolderId(parentFolderName), queryString,
view, groupBy);
}
示例16
/**
* Find item.
*
* @param searchFilter The search filter. Available search filter classes include
* SearchFilter.IsEqualTo, SearchFilter.ContainsSubstring and
* SearchFilter.SearchFilterCollection
* @param view The view controlling the number of item returned.
* @return FindItems results collection.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(SearchFilter searchFilter,
ItemView view) throws Exception {
EwsUtilities.validateParamAllowNull(searchFilter, "searchFilter");
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.internalFindItems(searchFilter, view, null /* groupBy */);
return responses.getResponseAtIndex(0).getResults();
}
示例17
/**
* Find item.
*
* @param searchFilter The search filter. Available search filter classes include
* SearchFilter.IsEqualTo, SearchFilter.ContainsSubstring and
* SearchFilter.SearchFilterCollection
* @param view The view controlling the number of item returned.
* @param groupBy The group by.
* @return A collection of grouped item representing the contents of this
* folder.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(SearchFilter searchFilter,
ItemView view, Grouping groupBy) throws Exception {
EwsUtilities.validateParam(groupBy, "groupBy");
EwsUtilities.validateParamAllowNull(searchFilter, "searchFilter");
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.internalFindItems(searchFilter, view, groupBy);
return responses.getResponseAtIndex(0).getGroupedFindResults();
}
示例18
/**
* Find item.
*
* @param queryString query string to be used for indexed search
* @param view The view controlling the number of item returned.
* @param groupBy The group by.
* @return A collection of grouped item representing the contents of this
* folder.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(String queryString,
ItemView view, Grouping groupBy) throws Exception {
EwsUtilities.validateParam(groupBy, "groupBy");
ServiceResponseCollection<FindItemResponse<Item>> responses = this
.internalFindItems(queryString, view, groupBy);
return responses.getResponseAtIndex(0).getGroupedFindResults();
}
示例19
/**
* Obtains a grouped list of item by searching the contents of this folder.
* Calling this method results in a call to EWS.
*
* @param view The view controlling the number of folder returned.
* @param groupBy The grouping criteria.
* @return A collection of grouped item representing the contents of this
* folder.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(ItemView view,
Grouping groupBy) throws Exception {
EwsUtilities.validateParam(groupBy, "groupBy");
return this.findItems((SearchFilter) null, view, groupBy);
}
示例20
/**
* Obtains a list of item by searching the contents of a specific folder.
* Calling this method results in a call to EWS.
*
* @param parentFolderName the parent folder name
* @param view the view
* @return An object representing the results of the search operation.
* @throws Exception the exception
*/
public FindItemsResults<Item> findItems(
WellKnownFolderName parentFolderName, ItemView view)
throws Exception {
return this.findItems(new FolderId(parentFolderName), (SearchFilter) null, view);
}
示例21
/**
* Obtains a grouped list of item by searching the contents of a specific
* folder. Calling this method results in a call to EWS.
*
* @param parentFolderName the parent folder name
* @param searchFilter the search filter
* @param view the view
* @param groupBy the group by
* @return A collection of grouped item containing the contents of the
* specified.
* @throws Exception the exception
*/
public GroupedFindItemsResults<Item> findItems(
WellKnownFolderName parentFolderName, SearchFilter searchFilter,
ItemView view, Grouping groupBy) throws Exception {
return this.findItems(new FolderId(parentFolderName), searchFilter, view, groupBy);
}