/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.extension;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.List;
/**
*
*/
public final class Listener implements PropertyChangeListener {
private List<PropertyChangeEvent> events = new ArrayList<PropertyChangeEvent>();
/**
* Clears the stored events.
*/
public void clear() {
this.events.clear();
}
/**
* @return the number of events received
*/
public int getCount() {
return this.events.size();
}
/**
* @return the first event received or <code>null</code>
*/
public PropertyChangeEvent getEvent() {
if (this.events.isEmpty()) {
return null;
}
return this.events.get(0);
}
public Object getNewValue() {
if (this.events.isEmpty()) {
return null;
}
return getEvent().getNewValue();
}
public Object getOldValue() {
if (this.events.isEmpty()) {
return false;
}
return getEvent().getOldValue();
}
public String getPropertyName() {
if (this.events.isEmpty()) {
return null;
}
return getEvent().getPropertyName();
}
/**
* {@inheritDoc}
*
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
@Override
public void propertyChange( PropertyChangeEvent e ) {
this.events.add(e);
}
}