/**
* Copyright 2011-2013 Universite Joseph Fourier, LIG, ADELE team
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* BinaryLightImpl.java - 2 juil. 2013
*/
package fr.imag.adele.apam.test.lights.binarylight;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.imag.adele.apam.test.lights.devices.BinaryLight;
import fr.imag.adele.apam.test.lights.devices.messages.LightStatusChanged;
/**
* @author thibaud
*
*/
public class BinaryLightImpl implements BinaryLight {
private static Logger logger = LoggerFactory
.getLogger(BinaryLightImpl.class);
protected boolean currentStatus;
private String myLocation;
private String myName;
/**
* @param currentStatus
*/
public BinaryLightImpl(boolean currentStatus) {
super();
this.currentStatus = currentStatus;
}
@Override
public LightStatusChanged fireLightStatus() {
logger.debug(myName + ".fireLightStatus(), status : " + currentStatus);
return new LightStatusChanged(currentStatus);
}
@Override
public String getLocation() {
return myLocation;
}
@Override
public String getName() {
return myName;
}
/*
* (non-Javadoc)
*
* @see fr.imag.adele.apam.test.lights.devices.BinaryLight#isLightOn()
*/
@Override
public boolean isLightOn() {
return currentStatus;
}
/*
* (non-Javadoc)
*
* @see
* fr.imag.adele.apam.test.lights.devices.BinaryLight#setLightStatus(boolean
* )
*/
@Override
public void setLightStatus(boolean newStatus) {
currentStatus = newStatus;
fireLightStatus();
}
public void started() {
logger.debug("A light named " + myName + " have been started in the "
+ myLocation);
}
public void stopped() {
logger.debug("The light named " + myName + " have been stopped in the "
+ myLocation);
}
/*
* (non-Javadoc)
*
* @see
* fr.imag.adele.apam.test.lights.devices.BinaryLight#switchLightStatus()
*/
@Override
public void switchLightStatus() {
if (currentStatus) {
currentStatus = false;
} else {
currentStatus = true;
}
fireLightStatus();
}
}