/**
* Copyright (c) 2009 - 2010 AppWork UG(haftungsbeschränkt) <e-mail@appwork.org>
*
* This file is part of org.appwork.controlling
*
* This software is licensed under the Artistic License 2.0,
* see the LICENSE file or http://www.opensource.org/licenses/artistic-license-2.0.php
* for details
*/
package org.appwork.utils.event;
/**
* @author thomas Callerclass,Parameterclass,Eventclass
*/
public class SimpleEvent<C, P, T> extends DefaultEvent {
private P[] parameters;
private final T type;
private final C callerImpl;
/**
* @param caller
* @param newState
* @param currentState
* @param id
*/
public SimpleEvent(final C caller, final T type, final P... parameters) {
super(caller);
this.callerImpl = caller;
this.type = type;
this.parameters = parameters;
}
@Override
public C getCaller() {
return this.callerImpl;
}
public P getParameter() {
return this.parameters[0];
}
public P getParameter(final int i) {
return this.parameters[i];
}
/**
* @return the parameters
*/
public P[] getParameters() {
return this.parameters;
}
/**
* @return the type
*/
public T getType() {
return this.type;
}
/**
* @param parameters
* the parameters to set
*/
public void setParameters(final P[] parameters) {
this.parameters = parameters;
}
@Override
public String toString() {
return (this.getCaller() == null ? "null" : this.getCaller().getClass().getSimpleName()) + "'s " + this.getClass().getSimpleName() + " | " + this.type + " (" + this.parameters + ")";
}
}