package com.constellio.app.modules.rm.extensions.api.reports;
import com.constellio.app.modules.rm.model.enums.DecommissioningType;
import com.constellio.app.modules.rm.reports.builders.administration.plan.*;
import com.constellio.app.modules.rm.reports.builders.decommissioning.ContainerRecordReportParameters;
import com.constellio.app.modules.rm.reports.builders.decommissioning.DecommissioningListReportParameters;
import com.constellio.app.modules.rm.reports.builders.search.stats.StatsReportParameters;
import com.constellio.app.modules.rm.reports.factories.ExampleReportParameters;
import com.constellio.app.modules.rm.reports.factories.ExampleReportWithoutRecordsParameters;
import com.constellio.app.modules.rm.reports.factories.labels.LabelsReportParameters;
import com.constellio.app.modules.rm.services.decommissioning.DocumentDecommissioningCertificateParams;
import com.constellio.app.modules.rm.services.decommissioning.FolderDecommissioningCertificateParams;
import com.constellio.app.modules.rm.wrappers.ContainerRecord;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.app.ui.framework.reports.NewReportWriterFactory;
import com.constellio.app.ui.framework.reports.ReportWriterFactory;
import com.constellio.data.frameworks.extensions.SingleValueExtension;
import com.constellio.data.utils.Provider;
public class RMReportBuilderFactories {
public SingleValueExtension<NewReportWriterFactory<ContainerRecordReportParameters>> transferContainerRecordBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<AdministrativeUnitReportParameters>> administrativeUnitRecordBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<ClassificationReportPlanParameters>> classifcationPlanRecordBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<ConservationRulesReportParameters>> conservationRulesRecordBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<UserReportParameters>> userRecordBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<DecommissioningListReportParameters>> decommissioningListBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<LabelsReportParameters>> labelsBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<ExampleReportParameters>> exampleBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<ExampleReportWithoutRecordsParameters>> exampleWithoutRecordsBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<FolderDecommissioningCertificateParams>> folderDecommissioningCertificateFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<DocumentDecommissioningCertificateParams>> documentDecommissioningCertificateFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<StatsReportParameters>> statsBuilderFactory = new SingleValueExtension<>();
public SingleValueExtension<NewReportWriterFactory<AvailableSpaceReportParameters>> availableSpaceBuilderFactory = new SingleValueExtension<>();
public RMReportBuilderFactories(AppLayerFactory appLayerFactory) {
}
/**
* Use public attributes instead
*/
@Deprecated
public RMReportBuilderFactories register(
Provider<ContainerRecordReportFactoryParams, ReportWriterFactory> transferContainerRecordReportProvider) {
return this;
}
public static class ContainerRecordReportFactoryParams extends BaseSingleRecordReportFactoryParams<ContainerRecord> {
public ContainerRecordReportFactoryParams(ContainerRecord containerRecord) {
super(containerRecord);
}
public boolean isTransfer() {
return getWrappedRecord().getDecommissioningType() == DecommissioningType.TRANSFERT_TO_SEMI_ACTIVE;
}
}
}