Homeautomation/src/main/java/de/ph87/homeautomation/knx/group/KnxGroupChannelOwnerService.java

52 lines
1.4 KiB
Java

package de.ph87.homeautomation.knx.group;
import de.ph87.homeautomation.channel.Channel;
import de.ph87.homeautomation.channel.IChannelOwner;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Slf4j
@Service
@Transactional
@RequiredArgsConstructor
public class KnxGroupChannelOwnerService implements IChannelOwner {
private final KnxGroupWriteService knxGroupWriteService;
private final KnxGroupReadService knxGroupReadService;
@Override
public void requestUpdate(final Channel channel) {
knxGroupWriteService.requestRead((KnxGroup) channel);
}
@Override
public void write(final long id, final double value) {
knxGroupWriteService.requestWrite(knxGroupReadService.getById(id), value);
}
@Override
public KnxGroupDto toDto(final long id) {
return toDto(knxGroupReadService.getById(id));
}
public KnxGroupDto toDto(final KnxGroup knxGroup) {
return new KnxGroupDto(knxGroup);
}
@Override
public List<KnxGroupDto> findAllDto() {
return knxGroupReadService.findAll().stream().map(this::toDto).toList();
}
@Override
public List<KnxGroupDto> findAllDtoLikeIgnoreCase(final String like) {
return knxGroupReadService.findAllLike(like).stream().map(this::toDto).toList();
}
}