<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-lazy-init="true">
   <bean id="defaultCalibrationPersister"
         class="com.apldbio.sds.instrument.aztec.calibration.DefaultCalibrationPersister" singleton="false">
   </bean>

   <bean id="RNasePCalibrationBean"
   	class="com.apldbio.sds.instrument.aztec.calibration.AztecRNasePCalibration"
   	singleton="false">
   </bean>

	<bean id="GeminiSDSMemoryEstimator"
   	name="SDSMemoryEstimator"
      class="com.apldbio.sds.instrument.aztec.validation.SDSMemoryEstimator"
      singleton="true">
   </bean>
	
	<!-- Do not know why this guy is here -->
	<bean id="defaultGeminiConvertor" class="com.apldbio.sds.instrument.experiment.convertor.GeminiConvertor"/>

    <!-- experiment manager manager -->
	<bean id="ExperimentManager" 
		class="com.apldbio.sds.instrument.aztec.AztecInstrumentExperimentManager"
		singleton= "true">
	</bean>

	<!-- =================================================================== -->
	<!--  validation before run starts                                       -->
	<!-- =================================================================== -->
   <!-- plate validator -->
	<bean id="PreStartRunValidator" 
		class="com.apldbio.sds.platform.experiment.validation.PreStartRunValidatorGroup"
		singleton= "true">
		<property name="validates">
			<list>
			    <!-- make sure the connection validator (PreStartRunInstrumentConnectionValidator) is the first in the list. -->
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunInstrumentConnectionValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunInstrumentTypeValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunMemoryValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunInstrumentStateValidator" />
				<bean class="com.apldbio.sds.instrument.aztec.validation.PreStartRunInstrumentDrawerValidator" />
				<bean class="com.apldbio.sds.instrument.aztec.validation.PreStartRunPendingCollectionValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunTcProtocolValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunProtocolValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunPlateValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunCalibrationValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunChemistryValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunExperimentValidator" />
			</list>
		</property>
	</bean>

	
	<!-- =================================================================== -->
	<!--  validation before calibration run starts                                       -->
	<!-- =================================================================== -->
   <!-- plate validator -->
	<bean id="PreStartCalibrationRunValidator" 
		class="com.apldbio.sds.platform.experiment.validation.PreStartCalibrationRunValidatorGroup"
		singleton= "true">
		<property name="validates">
			<list>
			    <!-- make sure the connection validator (PreStartRunInstrumentConnectionValidator) is the first in the list. -->
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunInstrumentConnectionValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunInstrumentStateValidator" />
				<bean class="com.apldbio.sds.instrument.aztec.validation.PreStartRunInstrumentDrawerValidator" />
				<bean class="com.apldbio.sds.instrument.aztec.validation.PreStartRunPendingCollectionValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunTcProtocolValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunProtocolValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunPlateValidator" />
				<bean class="com.apldbio.sds.platform.experiment.validation.PreStartRunChemistryValidator" />
			</list>
		</property>
	</bean>

	<!-- plate validator -->
	<bean id="PreStartPureDyePlate2Validator" 
		class="com.apldbio.sds.platform.experiment.validation.PreStartCalibrationRunValidatorGroup"
		singleton= "true">
		<property name="validates">
			<list>
				<bean class="com.apldbio.sds.instrument.aztec.validation.PreStartRunInstrumentDrawerValidator" />
			</list>
		</property>
	</bean>
</beans>