package org.theospi.portfolio.tagging.impl;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.sakaiproject.taggable.api.TaggableItem;
import org.theospi.portfolio.tagging.api.DecoratedTaggableItem;
public class DecoratedTaggableItemImpl implements DecoratedTaggableItem {
private String typeName;
private Set<TaggableItem> taggableItems = new HashSet<TaggableItem>();
public DecoratedTaggableItemImpl() {
}
public DecoratedTaggableItemImpl(String typeName) {
this.typeName = typeName;
}
public DecoratedTaggableItemImpl(String typeName, Set<TaggableItem> taggableItems) {
this.typeName = typeName;
this.taggableItems = taggableItems;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public Set<TaggableItem> getTaggableItems() {
return taggableItems;
}
public List<TaggableItem> getSortedTaggableItems() {
List<TaggableItem> taggableItemList = new ArrayList<TaggableItem>(getTaggableItems());
Collections.sort(taggableItemList, taggableItemComparator);
return taggableItemList;
}
public void setTaggableItems(Set<TaggableItem> taggableItems) {
this.taggableItems = taggableItems;
}
public void addTaggableItem(TaggableItem taggableItem) {
this.taggableItems.add(taggableItem);
}
private static Comparator<TaggableItem> taggableItemComparator;
static {
taggableItemComparator = new Comparator<TaggableItem>() {
public int compare(TaggableItem o1, TaggableItem o2) {
return o1.getActivity().getTitle().toLowerCase().compareTo(
o2.getActivity().getTitle().toLowerCase());
}
};
}
}