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

55 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 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<KnxGroupDto> findAllDto() {
return knxGroupReader.findAll().stream().map(knxGroupMapper::toDto).toList();
}
@Override
public List<KnxGroupDto> findAllDtoLikeIgnoreCase(final String term) {
return knxGroupReader.search(term);
}
}