package org.herac.tuxguitar.io.base.event;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.herac.tuxguitar.io.base.TGInputStreamBase;
import org.herac.tuxguitar.io.base.TGOutputStreamBase;
import org.herac.tuxguitar.io.base.TGRawExporter;
import org.herac.tuxguitar.io.base.TGRawImporter;
public class TGFileFormatEventManager {
private List inputStreamAddedListeners;
private List inputStreamRemovedListeners;
private List outputStreamAddedListeners;
private List outputStreamRemovedListeners;
private List rawImporterAddedListeners;
private List rawImporterRemovedListeners;
private List rawExporterAddedListeners;
private List rawExporterRemovedListeners;
public TGFileFormatEventManager(){
this.inputStreamAddedListeners = new ArrayList();
this.inputStreamRemovedListeners = new ArrayList();
this.outputStreamAddedListeners = new ArrayList();
this.outputStreamRemovedListeners = new ArrayList();
this.rawImporterAddedListeners = new ArrayList();
this.rawImporterRemovedListeners = new ArrayList();
this.rawExporterAddedListeners = new ArrayList();
this.rawExporterRemovedListeners = new ArrayList();
}
public void addInputStreamAddedListener(TGInputStreamAddedListener listener){
if(!this.inputStreamAddedListeners.contains(listener)){
this.inputStreamAddedListeners.add(listener);
}
}
public void removeInputStreamAddedListener(TGInputStreamAddedListener listener){
if( this.inputStreamAddedListeners.contains(listener) ){
this.inputStreamAddedListeners.remove(listener);
}
}
public void addInputStreamRemovedListener(TGInputStreamRemovedListener listener){
if(!this.inputStreamRemovedListeners.contains(listener)){
this.inputStreamRemovedListeners.add(listener);
}
}
public void removeInputStreamRemovedListener(TGInputStreamRemovedListener listener){
if( this.inputStreamRemovedListeners.contains(listener) ){
this.inputStreamRemovedListeners.remove(listener);
}
}
public void addOutputStreamAddedListener(TGOutputStreamAddedListener listener){
if(!this.outputStreamAddedListeners.contains(listener)){
this.outputStreamAddedListeners.add(listener);
}
}
public void removeOutputStreamAddedListener(TGOutputStreamAddedListener listener){
if( this.outputStreamAddedListeners.contains(listener) ){
this.outputStreamAddedListeners.remove(listener);
}
}
public void addOutputStreamRemovedListener(TGOutputStreamRemovedListener listener){
if(!this.outputStreamRemovedListeners.contains(listener)){
this.outputStreamRemovedListeners.add(listener);
}
}
public void removeOutputStreamRemovedListener(TGOutputStreamRemovedListener listener){
if( this.outputStreamRemovedListeners.contains(listener) ){
this.outputStreamRemovedListeners.remove(listener);
}
}
public void addRawImporterAddedListener(TGRawImporterAddedListener listener){
if(!this.rawImporterAddedListeners.contains(listener)){
this.rawImporterAddedListeners.add(listener);
}
}
public void removeRawImporterAddedListener(TGRawImporterAddedListener listener){
if( this.rawImporterAddedListeners.contains(listener) ){
this.rawImporterAddedListeners.remove(listener);
}
}
public void addRawImporterRemovedListener(TGRawImporterRemovedListener listener){
if(!this.rawImporterRemovedListeners.contains(listener)){
this.rawImporterRemovedListeners.add(listener);
}
}
public void removeRawImporterRemovedListener(TGRawImporterRemovedListener listener){
if( this.rawImporterRemovedListeners.contains(listener) ){
this.rawImporterRemovedListeners.remove(listener);
}
}
public void addRawExporterAddedListener(TGRawExporterAddedListener listener){
if(!this.rawExporterAddedListeners.contains(listener)){
this.rawExporterAddedListeners.add(listener);
}
}
public void removeRawExporterAddedListener(TGRawExporterAddedListener listener){
if( this.rawExporterAddedListeners.contains(listener) ){
this.rawExporterAddedListeners.remove(listener);
}
}
public void addRawExporterRemovedListener(TGRawExporterRemovedListener listener){
if(!this.rawExporterRemovedListeners.contains(listener)){
this.rawExporterRemovedListeners.add(listener);
}
}
public void removeRawExporterRemovedListener(TGRawExporterRemovedListener listener){
if( this.rawExporterRemovedListeners.contains(listener) ){
this.rawExporterRemovedListeners.remove(listener);
}
}
public void onInputStreamAdded(TGInputStreamBase stream) {
Iterator it = this.inputStreamAddedListeners.iterator();
while( it.hasNext() ){
TGInputStreamAddedListener listener = (TGInputStreamAddedListener) it.next();
listener.onInputStreamAdded(stream);
}
}
public void onInputStreamRemoved(TGInputStreamBase stream) {
Iterator it = this.inputStreamRemovedListeners.iterator();
while( it.hasNext() ){
TGInputStreamRemovedListener listener = (TGInputStreamRemovedListener) it.next();
listener.onInputStreamRemoved(stream);
}
}
public void onOutputStreamAdded(TGOutputStreamBase stream) {
Iterator it = this.outputStreamAddedListeners.iterator();
while( it.hasNext() ){
TGOutputStreamAddedListener listener = (TGOutputStreamAddedListener) it.next();
listener.onOutputStreamAdded(stream);
}
}
public void onOutputStreamRemoved(TGOutputStreamBase stream) {
Iterator it = this.outputStreamRemovedListeners.iterator();
while( it.hasNext() ){
TGOutputStreamRemovedListener listener = (TGOutputStreamRemovedListener) it.next();
listener.onOutputStreamRemoved(stream);
}
}
public void onRawImporterAdded(TGRawImporter importer) {
Iterator it = this.rawImporterAddedListeners.iterator();
while( it.hasNext() ){
TGRawImporterAddedListener listener = (TGRawImporterAddedListener) it.next();
listener.onRawImporterAdded(importer);
}
}
public void onRawImporterRemoved(TGRawImporter importer) {
Iterator it = this.rawImporterRemovedListeners.iterator();
while( it.hasNext() ){
TGRawImporterRemovedListener listener = (TGRawImporterRemovedListener) it.next();
listener.onRawImporterRemoved(importer);
}
}
public void onRawExporterAdded(TGRawExporter exporter) {
Iterator it = this.rawExporterAddedListeners.iterator();
while( it.hasNext() ){
TGRawExporterAddedListener listener = (TGRawExporterAddedListener) it.next();
listener.onRawExporterAdded(exporter);
}
}
public void onRawExporterRemoved(TGRawExporter exporter) {
Iterator it = this.rawExporterRemovedListeners.iterator();
while( it.hasNext() ){
TGRawExporterRemovedListener listener = (TGRawExporterRemovedListener) it.next();
listener.onRawExporterRemoved(exporter);
}
}
}