@Override
	public void run() {
		do {
			Collection<Transition> values = this.dataset.values();
			for (Transition transition : values) {
				Map<String, Object> datagramContent = new HashMap<String, Object>();
				datagramContent.put(Statics.CONTENT_TRANSITION, transition);
				try {
					this.out.writeObject(new Datagram(Statics.DATA, datagramContent));
					this.out.flush();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		} while (!this.dataset.isEmpty());
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		this.callback.handleCallback();
	}