/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.parametricstudy.common.internal; import de.rcenvironment.components.parametricstudy.common.Study; import de.rcenvironment.components.parametricstudy.common.StudyDataset; import de.rcenvironment.components.parametricstudy.common.StudyPublisher; import de.rcenvironment.core.notification.NotificationService; /** * Implementation of {@link StudyPublisher}. * * @author Christian Weiss */ public final class StudyPublisherImpl implements StudyPublisher { private static final long serialVersionUID = 6027553291193203997L; private final Study study; private final String notificationId; private NotificationService notificationService; public StudyPublisherImpl(final Study study, NotificationService notificationService) { this.study = study; this.notificationService = notificationService; notificationId = ParametricStudyUtils.createDataIdentifier(study); setBufferSize(BUFFER_SIZE); } @Override public Study getStudy() { return study; } @Override public void setBufferSize(final int bufferSize) { notificationService.setBufferSize(notificationId, bufferSize); } @Override public void add(final StudyDataset dataset) { notificationService.send(notificationId, dataset); } @Override public void clearStudy() { notificationService.removePublisher(notificationId); } }