blob: 41c356d8b3c36a7ea4ef4c582a210b05ef60ade2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014, 2016 Orange.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*******************************************************************************/
package org.eclipse.om2m.sdt.home.modules;
import java.util.Date;
import java.util.Map;
import org.eclipse.om2m.sdt.DataPoint;
import org.eclipse.om2m.sdt.Domain;
import org.eclipse.om2m.sdt.Module;
import org.eclipse.om2m.sdt.datapoints.DateDataPoint;
import org.eclipse.om2m.sdt.datapoints.TimeDataPoint;
import org.eclipse.om2m.sdt.exceptions.AccessException;
import org.eclipse.om2m.sdt.exceptions.DataPointException;
import org.eclipse.om2m.sdt.home.types.DatapointType;
import org.eclipse.om2m.sdt.home.types.ModuleType;
public class Clock extends Module {
private TimeDataPoint currentTime;
private DateDataPoint currentDate;
public Clock(final String name, final Domain domain, TimeDataPoint currentTime,
DateDataPoint currentDate) {
super(name, domain, ModuleType.clock);
if ((currentDate == null) ||
! currentDate.getShortName().equals(DatapointType.currentDate.getShortName())) {
domain.removeModule(getName());
throw new IllegalArgumentException("Wrong currentDate datapoint: " + currentDate);
}
this.currentDate = currentDate;
currentDate.setDoc("Information of the current date");
addDataPoint(currentDate);
if ((currentTime == null) ||
! currentTime.getShortName().equals(DatapointType.currentTime.getShortName())) {
domain.removeModule(getName());
throw new IllegalArgumentException("Wrong currentTime datapoint: " + currentTime);
}
this.currentTime = currentTime;
currentTime.setDoc("Information of the current time");
addDataPoint(currentTime);
}
public Clock(final String name, final Domain domain, Map<String, DataPoint> dps) {
this(name, domain,
(TimeDataPoint) dps.get(DatapointType.currentTime.getShortName()),
(DateDataPoint) dps.get(DatapointType.currentDate.getShortName()));
}
public Date getCurrentTime() throws DataPointException, AccessException {
return currentTime.getValue();
}
public String getStringCurrentTime() throws DataPointException, AccessException {
return currentTime.getStringValue();
}
public void setCurrentTime(Date value) throws DataPointException, AccessException {
currentTime.setValue(value);
}
public Date getCurrentDate() throws DataPointException, AccessException {
return currentDate.getValue();
}
public String getStringCurrentDate() throws DataPointException, AccessException {
return currentDate.getStringValue();
}
public void setCurrentDate(Date value) throws DataPointException, AccessException {
currentDate.setValue(value);
}
}