package no.difi.datahotel.logic; import no.difi.datahotel.model.Metadata; import no.difi.datahotel.util.MetadataLogger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component("update") public class UpdateBean { @Autowired private FieldBean fieldBean; @Autowired private ChunkBean chunkBean; @Autowired private IndexBean indexBean; @Autowired private SearchBean searchBean; @Autowired private DataBean dataBean; public void validate(Metadata metadata) { MetadataLogger logger = metadata.getLogger(); if (metadata.getUpdated() == null) { logger.warning("Missing timestamp in metadata file."); return; } if (metadata.getUpdated().equals(dataBean.getTimestamp(metadata.getLocation()))) return; if (dataBean.getTimestamp(metadata.getLocation()) != null && dataBean.getTimestamp(metadata.getLocation()) == -1) { logger.info("Do not disturb."); return; } dataBean.setTimestamp(metadata.getLocation(), -1L); fieldBean.update(metadata); chunkBean.update(metadata); indexBean.update(metadata); searchBean.update(metadata); logger.info("Ready"); dataBean.setTimestamp(metadata.getLocation(), metadata.getUpdated()); } public void setFieldBean(FieldBean fieldBean) { this.fieldBean = fieldBean; } public void setChunkBean(ChunkBean chunkBean) { this.chunkBean = chunkBean; } public void setIndexBean(IndexBean indexBean) { this.indexBean = indexBean; } public void setSearchBean(SearchBean searchBean) { this.searchBean = searchBean; } public void setDataBean(DataBean dataBean) { this.dataBean = dataBean; } }