// Path: coronata/coronata-interface/src/main/java/com/github/awvalenti/bauhinia/coronata/CoronataException.java
// public class CoronataException extends Exception {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	CoronataException(Throwable cause, String detailMessage) {
// 		super(detailMessage, cause);
// 	}
// 
// }
// 
// Path: coronata/coronata-interface/src/main/java/com/github/awvalenti/bauhinia/coronata/CoronataWiiRemote.java
// public interface CoronataWiiRemote {
// 
// 	int LED_0 = 0x10, LED_1 = 0x20, LED_2 = 0x40, LED_3 = 0x80;
// 	int LEDS_NONE = 0x00, LEDS_ALL = LED_0 | LED_1 | LED_2 | LED_3;
// 
// 	void setLightedLEDs(int ledsState);
// 
// 	void startVibration();
// 
// 	void stopVibration();
// 
// 	void disconnect();
// 
// }
// 
// Path: coronata/coronata-interface/src/main/java/com/github/awvalenti/bauhinia/coronata/observers/CoronataLifecycleEventsObserver.java
// public interface CoronataLifecycleEventsObserver extends
// 		CoronataDisconnectionObserver,
// 		CoronataErrorObserver {
// 
// 	void coronataStarted();
// 
// 	void searchStarted(boolean isWindows);
// 
// 	void bluetoothDeviceFound(String btAddress, String deviceClass);
// 
// 	void identificationRejected(String btAddress);
// 
// 	void identifiedAsNonWiiRemote(String btAddress);
// 
// 	void identifiedAsWiiRemote(String btAddressOrNull);
// 
// 	void connectionRejected(String btAddress);
// 
// 	void connected(CoronataWiiRemote wiiRemote);
// 
// 	void searchFinished();
// 
// 	@Override
// 	void disconnected();
// 
// 	@Override
// 	void errorOccurred(CoronataException e);
// 
// }
// 
// Path: nitida/src/main/java/com/github/awvalenti/bauhinia/nitida/view/common/properties/Messages.java
// public class Messages {
// 
// 	private final PropertiesFileReader p;
// 
// 	public Messages() {
// 		p = new PropertiesFileReader(
// 				"/com/github/awvalenti/bauhinia/nitida/messages.properties");
// 	}
// 
// 	public String get(String key) {
// 		return p.get(key);
// 	}
// 
// 	public String get(String key, Object... arguments) {
// 		return MessageFormat.format(p.get(key), arguments);
// 	}
// 
// }
// 
// Path: nitida/src/main/java/com/github/awvalenti/bauhinia/nitida/view/common/properties/ProjectProperties.java
// public class ProjectProperties {
// 
// 	private final String projectVersion;
// 
// 	public ProjectProperties() {
// 		projectVersion = new PropertiesFileReader(
// 				"/com/github/awvalenti/bauhinia/nitida/project.properties")
// 						.get("project.version");
// 	}
// 
// 	public String getProjectVersion() {
// 		return projectVersion;
// 	}
// 
// }


import com.github.awvalenti.bauhinia.coronata.CoronataException;
import com.github.awvalenti.bauhinia.coronata.CoronataWiiRemote;
import com.github.awvalenti.bauhinia.coronata.observers.CoronataLifecycleEventsObserver;
import com.github.awvalenti.bauhinia.nitida.view.common.properties.Messages;
import com.github.awvalenti.bauhinia.nitida.view.common.properties.ProjectProperties;
package com.github.awvalenti.bauhinia.nitida.view.console;


public class NitidaConsoleView implements CoronataLifecycleEventsObserver {

	private final ProjectProperties projectProperties;
	private final Messages messages;

	public NitidaConsoleView(ProjectProperties projectProperties,
			Messages messages) {
		this.projectProperties = projectProperties;
		this.messages = messages;
	}

	@Override
	public void coronataStarted() {
		System.out.println(messages.get("appTitle",
				projectProperties.getProjectVersion()));
	}

	@Override
	public void searchStarted(boolean isWindows) {
		System.out.println(messages.get(
				isWindows ? "searchStarted-windows" : "searchStarted-linux"));
	}

	@Override
	public void bluetoothDeviceFound(String btAddress, String deviceClass) {
		System.out.println(
				messages.get("bluetoothDeviceFound", btAddress, deviceClass));
	}

	@Override
	public void identifiedAsWiiRemote(String btAddressOrNull) {
		System.out.println(btAddressOrNull == null ?
				messages.get("identifiedAsWiiRemote-addressNull") :
// Path: coronata/coronata-interface/src/main/java/com/github/awvalenti/bauhinia/coronata/CoronataException.java
// public class CoronataException extends Exception {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	CoronataException(Throwable cause, String detailMessage) {
// 		super(detailMessage, cause);
// 	}
// 
// }
// 
// Path: coronata/coronata-interface/src/main/java/com/github/awvalenti/bauhinia/coronata/CoronataWiiRemote.java
// public interface CoronataWiiRemote {
// 
// 	int LED_0 = 0x10, LED_1 = 0x20, LED_2 = 0x40, LED_3 = 0x80;
// 	int LEDS_NONE = 0x00, LEDS_ALL = LED_0 | LED_1 | LED_2 | LED_3;
// 
// 	void setLightedLEDs(int ledsState);
// 
// 	void startVibration();
// 
// 	void stopVibration();
// 
// 	void disconnect();
// 
// }
// 
// Path: coronata/coronata-interface/src/main/java/com/github/awvalenti/bauhinia/coronata/observers/CoronataLifecycleEventsObserver.java
// public interface CoronataLifecycleEventsObserver extends
// 		CoronataDisconnectionObserver,
// 		CoronataErrorObserver {
// 
// 	void coronataStarted();
// 
// 	void searchStarted(boolean isWindows);
// 
// 	void bluetoothDeviceFound(String btAddress, String deviceClass);
// 
// 	void identificationRejected(String btAddress);
// 
// 	void identifiedAsNonWiiRemote(String btAddress);
// 
// 	void identifiedAsWiiRemote(String btAddressOrNull);
// 
// 	void connectionRejected(String btAddress);
// 
// 	void connected(CoronataWiiRemote wiiRemote);
// 
// 	void searchFinished();
// 
// 	@Override
// 	void disconnected();
// 
// 	@Override
// 	void errorOccurred(CoronataException e);
// 
// }
// 
// Path: nitida/src/main/java/com/github/awvalenti/bauhinia/nitida/view/common/properties/Messages.java
// public class Messages {
// 
// 	private final PropertiesFileReader p;
// 
// 	public Messages() {
// 		p = new PropertiesFileReader(
// 				"/com/github/awvalenti/bauhinia/nitida/messages.properties");
// 	}
// 
// 	public String get(String key) {
// 		return p.get(key);
// 	}
// 
// 	public String get(String key, Object... arguments) {
// 		return MessageFormat.format(p.get(key), arguments);
// 	}
// 
// }
// 
// Path: nitida/src/main/java/com/github/awvalenti/bauhinia/nitida/view/common/properties/ProjectProperties.java
// public class ProjectProperties {
// 
// 	private final String projectVersion;
// 
// 	public ProjectProperties() {
// 		projectVersion = new PropertiesFileReader(
// 				"/com/github/awvalenti/bauhinia/nitida/project.properties")
// 						.get("project.version");
// 	}
// 
// 	public String getProjectVersion() {
// 		return projectVersion;
// 	}
// 
// }


// Path: nitida/src/main/java/com/github/awvalenti/bauhinia/nitida/view/console/NitidaConsoleView.java
import com.github.awvalenti.bauhinia.coronata.CoronataException;
import com.github.awvalenti.bauhinia.coronata.CoronataWiiRemote;
import com.github.awvalenti.bauhinia.coronata.observers.CoronataLifecycleEventsObserver;
import com.github.awvalenti.bauhinia.nitida.view.common.properties.Messages;
import com.github.awvalenti.bauhinia.nitida.view.common.properties.ProjectProperties;

package com.github.awvalenti.bauhinia.nitida.view.console;


public class NitidaConsoleView implements CoronataLifecycleEventsObserver {

	private final ProjectProperties projectProperties;
	private final Messages messages;

	public NitidaConsoleView(ProjectProperties projectProperties,
			Messages messages) {
		this.projectProperties = projectProperties;
		this.messages = messages;
	}

	@Override
	public void coronataStarted() {
		System.out.println(messages.get("appTitle",
				projectProperties.getProjectVersion()));
	}

	@Override
	public void searchStarted(boolean isWindows) {
		System.out.println(messages.get(
				isWindows ? "searchStarted-windows" : "searchStarted-linux"));
	}

	@Override
	public void bluetoothDeviceFound(String btAddress, String deviceClass) {
		System.out.println(
				messages.get("bluetoothDeviceFound", btAddress, deviceClass));
	}

	@Override
	public void identifiedAsWiiRemote(String btAddressOrNull) {
		System.out.println(btAddressOrNull == null ?
				messages.get("identifiedAsWiiRemote-addressNull") :
				messages.get("identifiedAsWiiRemote-addressNotNull",