Home4/src/main/java/de/ph87/home/knx/group/GroupDto.java
2024-11-21 15:57:29 +01:00

58 lines
1.2 KiB
Java

package de.ph87.home.knx.group;
import de.ph87.home.property.State;
import de.ph87.home.web.IWebSocketMessage;
import jakarta.annotation.Nullable;
import lombok.Getter;
import lombok.NonNull;
import lombok.ToString;
import java.time.ZonedDateTime;
import java.util.List;
@Getter
@ToString
public class GroupDto implements IWebSocketMessage {
@ToString.Exclude
private final List<Object> websocketTopic = List.of("Knx", "Group");
@NonNull
@ToString.Exclude
private final String id;
@NonNull
private final String address;
@NonNull
private final String name;
@NonNull
@ToString.Exclude
private final String description;
@NonNull
private final String dpt;
@ToString.Exclude
private final long puid;
@Nullable
private final State<?> state;
@Nullable
private final ZonedDateTime lastValueChange;
public GroupDto(@NonNull final Group group) {
this.id = group.getId();
this.address = group.getAddress().toString();
this.name = group.getName();
this.description = group.getDescription();
this.dpt = group.getDpt().toString();
this.puid = group.getPuid();
this.state = group.getState();
this.lastValueChange = group.getLastValueChange();
}
}