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 KnxGroupWriter knxGroupWriter; private final KnxGroupReader knxGroupReader; private final KnxGroupMapper knxGroupMapper; @Override public void requestUpdate(final Channel channel) { knxGroupWriter.requestRead((KnxGroup) channel); } @Override public Double read(final long id) { return knxGroupReader.getById(id).getValue(); } @Override public void write(final long id, final double value) { knxGroupWriter.requestWrite(knxGroupReader.getById(id), value); } @Override public KnxGroupDto toDto(final long id) { return knxGroupMapper.toDto(knxGroupReader.getById(id)); } @Override public List findAllDto() { return knxGroupReader.findAll().stream().map(knxGroupMapper::toDto).toList(); } @Override public List findAllDtoLikeIgnoreCase(final String term) { return knxGroupReader.search(term); } }