microsoft.exchange.webservices.data.SimplePropertyBag Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of exchange-ws-api Show documentation
Show all versions of exchange-ws-api Show documentation
The source came from http://archive.msdn.microsoft.com/ewsjavaapi
Support for Maven has been added.
The newest version!
/**************************************************************************
* copyright file="SimplePropertyBag.java" company="Microsoft"
* Copyright (c) Microsoft Corporation. All rights reserved.
*
* Defines the SimplePropertyBag.java.
**************************************************************************/
package microsoft.exchange.webservices.data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
//IEnumerable>
/**
* Represents a simple property bag.
*
* @param
* The type of key
*/
class SimplePropertyBag implements Iterable> {
/** The items. */
private Map items = new HashMap();
/** The removed items. */
private List removedItems = new ArrayList();
/** The added items. */
private List addedItems = new ArrayList();
/** The modified items. */
private List modifiedItems = new ArrayList();
/**
* * Add item to change list.
*
* @param key
* the key
* @param changeList
* the change list
*/
private void internalAddItemToChangeList(TKey key, List changeList) {
if (!changeList.contains(key)) {
changeList.add(key);
}
}
/***
* Triggers dispatch of the change event.
*/
private void changed() {
if (!onChange.isEmpty()) {
for (IPropertyBagChangedDelegate change : onChange) {
change.propertyBagChanged(this);
}
}
}
/**
* * Remove item.
*
* @param key
* the key
*/
private void internalRemoveItem(TKey key) {
OutParam value = new OutParam();
if (this.tryGetValue(key, value)) {
this.items.remove(key);
this.removedItems.add(key);
this.changed();
}
}
/**
* * Gets the added items. The added items.
*
* @return the added items
*/
protected Iterable getAddedItems() {
return this.addedItems;
}
/**
* * Gets the removed items. The removed items.
*
* @return the removed items
*/
protected Iterable getRemovedItems() {
return this.removedItems;
}
/**
* * Gets the modified items. The modified items.
*
* @return the modified items
*/
protected Iterable getModifiedItems() {
return this.modifiedItems;
}
/**
* * Initializes a new instance of the class.
*/
public SimplePropertyBag() {
}
/***
* Clears the change log.
*/
public void clearChangeLog() {
this.removedItems.clear();
this.addedItems.clear();
this.modifiedItems.clear();
}
/**
* * Determines whether the specified key is in the property bag.
*
* @param key
* the key
* @return true, if successful if the specified key exists; otherwise, .
*/
public boolean containsKey(TKey key) {
return this.items.containsKey(key);
}
/**
* * Tries to get value.
*
* @param key
* the key
* @param value
* the value
* @return True if value exists in property bag.
*/
public boolean tryGetValue(TKey key, OutParam