package org.insightech.er.editor.model.diagram_contents.not_element.trigger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.insightech.er.ResourceString;
import org.insightech.er.editor.model.AbstractModel;
import org.insightech.er.editor.model.ObjectListModel;
public class TriggerSet extends AbstractModel implements ObjectListModel,
Iterable<Trigger> {
private static final long serialVersionUID = -5072692633977593382L;
public static final String PROPERTY_CHANGE_TRIGGER_SET = "TriggerSet";
private List<Trigger> triggerList;
public TriggerSet() {
this.triggerList = new ArrayList<Trigger>();
}
public void addTrigger(Trigger trigger) {
this.triggerList.add(trigger);
Collections.sort(this.triggerList);
this.firePropertyChange(PROPERTY_CHANGE_TRIGGER_SET, null, null);
}
public int remove(Trigger trigger) {
int index = this.triggerList.indexOf(trigger);
this.triggerList.remove(index);
this.firePropertyChange(PROPERTY_CHANGE_TRIGGER_SET, null, null);
return index;
}
public boolean contains(String name) {
for (Trigger trigger : triggerList) {
if (name.equalsIgnoreCase(trigger.getName())) {
return true;
}
}
return false;
}
public Trigger get(String name) {
for (Trigger trigger : triggerList) {
if (name.equalsIgnoreCase(trigger.getName())) {
return trigger;
}
}
return null;
}
public List<Trigger> getTriggerList() {
return this.triggerList;
}
public Iterator<Trigger> iterator() {
return this.triggerList.iterator();
}
/**
* {@inheritDoc}
*/
@Override
public TriggerSet clone() {
TriggerSet triggerSet = (TriggerSet) super.clone();
List<Trigger> newTriggerList = new ArrayList<Trigger>();
for (Trigger trigger : triggerList) {
Trigger newTrigger = (Trigger) trigger.clone();
newTriggerList.add(newTrigger);
}
triggerSet.triggerList = newTriggerList;
return triggerSet;
}
public String getDescription() {
return "";
}
public String getName() {
return ResourceString
.getResourceString("label.object.type.trigger_list");
}
public String getObjectType() {
return "list";
}
}