<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	
	<bean id="ureport.props" class="com.bstek.ureport.UReportPropertyPlaceholderConfigurer" abstract="true">
		<property name="ignoreUnresolvablePlaceholders" value="true"/>
	</bean>
	
	<bean id="ureport.propertyPlaceholderConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
		<property name="location" value="classpath:ureport.properties"/>
		<property name="ignoreUnresolvablePlaceholders" value="true"/>
	</bean>
	
	<bean id="ureport.exportManager" class="com.bstek.ureport.export.ExportManagerImpl">
		<property name="reportRender" ref="ureport.reportRender"/>
	</bean>
	
	<bean id="ureport.reportRender" class="com.bstek.ureport.export.ReportRender">
		<property name="reportParser" ref="ureport.reportParser"/>
		<property name="reportBuilder" ref="ureport.reportBuilder"/>
	</bean>

	<bean id="ureport.defaultImageProvider" class="com.bstek.ureport.provider.image.DefaultImageProvider"/>
	
	<bean id="ureport.fileReportProvider" class="com.bstek.ureport.provider.report.file.FileReportProvider">
		<property name="fileStoreDir" value="${ureport.fileStoreDir}"/>
		<property name="disabled" value="${ureport.disableFileProvider}"/>
	</bean>

	<bean id="ureport.httpImageProvider" class="com.bstek.ureport.provider.image.HttpImageProvider"/>
	<bean id="ureport.httpsImageProvider" class="com.bstek.ureport.provider.image.HttpsImageProvider"/>
	
	<bean id="ureport.reportBuilder" class="com.bstek.ureport.build.ReportBuilder">
		<property name="hideRowColumnBuilder" ref="ureport.hideRowColumnBuilder"/>
	</bean>

	<bean id="ureport.hideRowColumnBuilder" class="com.bstek.ureport.build.HideRowColumnBuilder"/>

	<bean id="ureport.reportParser" class="com.bstek.ureport.parser.ReportParser"/>

	<bean id="ureport.formParserUtils" class="com.bstek.ureport.parser.impl.searchform.FormParserUtils"/>
	<bean id="ureport.checkboxParser" class="com.bstek.ureport.parser.impl.searchform.CheckboxParser"/>
	<bean id="ureport.gridParser" class="com.bstek.ureport.parser.impl.searchform.GridParser"/>
	<bean id="ureport.radioInputParser" class="com.bstek.ureport.parser.impl.searchform.RadioInputParser"/>
	<bean id="ureport.rextInputParser" class="com.bstek.ureport.parser.impl.searchform.TextInputParser"/>
	<bean id="ureport.resetButtonParser" class="com.bstek.ureport.parser.impl.searchform.ResetButtonParser"/>
	<bean id="ureport.submitButtonParser" class="com.bstek.ureport.parser.impl.searchform.SubmitButtonParser"/>
	<bean id="ureport.selectInputParser" class="com.bstek.ureport.parser.impl.searchform.SelectInputParser"/>
	<bean id="ureport.datetimeInputParser" class="com.bstek.ureport.parser.impl.searchform.DatetimeInputParser"/>
	
	<bean id="ureport.classpathReportProvider" class="com.bstek.ureport.provider.report.classpath.ClasspathReportProvider"/>
	
	<bean id="ureport.fontBuilder" class="com.bstek.ureport.export.pdf.font.FontBuilder"/>
	
	<bean id="ureport.expressionUtils" class="com.bstek.ureport.expression.ExpressionUtils"/>
	<bean id="ureport.utils" class="com.bstek.ureport.Utils">
		<property name="debug" value="${ureport.debug}"/>
	</bean>
	<bean id="ureport.cacheUtils" class="com.bstek.ureport.cache.CacheUtils"/>
	
	<bean id="ureport.countFunction" class="com.bstek.ureport.expression.function.CountFunction"/>
	<bean id="ureport.sumFunction" class="com.bstek.ureport.expression.function.SumFunction"/>
	<bean id="ureport.maxFunction" class="com.bstek.ureport.expression.function.MaxFunction"/>
	<bean id="ureport.minFunction" class="com.bstek.ureport.expression.function.MinFunction"/>
	<bean id="ureport.listFunction" class="com.bstek.ureport.expression.function.ListFunction"/>
	<bean id="ureport.avgFunction" class="com.bstek.ureport.expression.function.AvgFunction"/>
	<bean id="ureport.orderFunction" class="com.bstek.ureport.expression.function.OrderFunction"/>
	<bean id="ureport.WeekFunction" class="com.bstek.ureport.expression.function.date.WeekFunction"/>
	<bean id="ureport.dayFunction" class="com.bstek.ureport.expression.function.date.DayFunction"/>
	<bean id="ureport.monthFunction" class="com.bstek.ureport.expression.function.date.MonthFunction"/>
	<bean id="ureport.yearFunction" class="com.bstek.ureport.expression.function.date.YearFunction"/>
	<bean id="ureport.dateFunction" class="com.bstek.ureport.expression.function.date.DateFunction"/>
	<bean id="ureport.formatNumberFunction" class="com.bstek.ureport.expression.function.FormatNumberFunction"/>
	<bean id="ureport.formatDateFunction" class="com.bstek.ureport.expression.function.FormatDateFunction"/>
	<bean id="ureport.getFunction" class="com.bstek.ureport.expression.function.GetFunction"/>
	
	<bean id="ureport.absFunction" class="com.bstek.ureport.expression.function.math.AbsFunction"/>
	<bean id="ureport.ceilFunction" class="com.bstek.ureport.expression.function.math.CeilFunction"/>
	<bean id="ureport.ChnFunction" class="com.bstek.ureport.expression.function.math.ChnFunction"/>
	<bean id="ureport.ChnMoneyFunction" class="com.bstek.ureport.expression.function.math.ChnMoneyFunction"/>
	<bean id="ureport.CosFunction" class="com.bstek.ureport.expression.function.math.CosFunction"/>
	<bean id="ureport.ExpFunction" class="com.bstek.ureport.expression.function.math.ExpFunction"/>
	<bean id="ureport.floorFunction" class="com.bstek.ureport.expression.function.math.FloorFunction"/>
	<bean id="ureport.log10Function" class="com.bstek.ureport.expression.function.math.Log10Function"/>
	<bean id="ureport.logFunction" class="com.bstek.ureport.expression.function.math.LogFunction"/>
	<bean id="ureport.powFunction" class="com.bstek.ureport.expression.function.math.PowFunction"/>
	<bean id="ureport.randomFunction" class="com.bstek.ureport.expression.function.math.RandomFunction"/>
	<bean id="ureport.roundFunction" class="com.bstek.ureport.expression.function.math.RoundFunction"/>
	<bean id="ureport.sinFunction" class="com.bstek.ureport.expression.function.math.SinFunction"/>
	<bean id="ureport.sqrtFunction" class="com.bstek.ureport.expression.function.math.SqrtFunction"/>
	<bean id="ureport.tanFunction" class="com.bstek.ureport.expression.function.math.TanFunction"/>
	<bean id="ureport.stdevpFunction" class="com.bstek.ureport.expression.function.math.StdevpFunction"/>
	<bean id="ureport.varaFunction" class="com.bstek.ureport.expression.function.math.VaraFunction"/>
	<bean id="ureport.modeFunction" class="com.bstek.ureport.expression.function.math.ModeFunction"/>
	<bean id="ureport.medianFunction" class="com.bstek.ureport.expression.function.math.MedianFunction"/>
	
	
	<bean id="ureport.lengthFunction" class="com.bstek.ureport.expression.function.string.LengthFunction"/>
	<bean id="ureport.lowerFunction" class="com.bstek.ureport.expression.function.string.LowerFunction"/>
	<bean id="ureport.IndexOfFunction" class="com.bstek.ureport.expression.function.string.IndexOfFunction"/>
	<bean id="ureport.replaceFunction" class="com.bstek.ureport.expression.function.string.ReplaceFunction"/>
	<bean id="ureport.substringFunction" class="com.bstek.ureport.expression.function.string.SubstringFunction"/>
	<bean id="ureport.trimFunction" class="com.bstek.ureport.expression.function.string.TrimFunction"/>
	<bean id="ureport.upperFunction" class="com.bstek.ureport.expression.function.string.UpperFunction"/>
	
	<bean id="ureport.pageTotalFunction" class="com.bstek.ureport.expression.function.page.PageTotalFunction"/>
	<bean id="ureport.pageNumberFunction" class="com.bstek.ureport.expression.function.page.PageNumberFunction"/>
	<bean id="ureport.pageAvgFunction" class="com.bstek.ureport.expression.function.page.PageAvgFunction"/>
	<bean id="ureport.pageCountFunction" class="com.bstek.ureport.expression.function.page.PageCountFunction"/>
	<bean id="ureport.pageMaxFunction" class="com.bstek.ureport.expression.function.page.PageMaxFunction"/>
	<bean id="ureport.pageMinFunction" class="com.bstek.ureport.expression.function.page.PageMinFunction"/>
	<bean id="ureport.pageRowsFunction" class="com.bstek.ureport.expression.function.page.PageRowsFunction"/>
	<bean id="ureport.pageSumFunction" class="com.bstek.ureport.expression.function.page.PageSumFunction"/>
	
	<bean id="ureport.parameterFunction" class="com.bstek.ureport.expression.function.ParameterFunction"/>
	<bean id="ureport.parameterIsEmptyFunction" class="com.bstek.ureport.expression.function.ParameterIsEmptyFunction"/>
	<bean id="ureport.jsonFunction" class="com.bstek.ureport.expression.function.JsonFunction"/>
	
	<bean id="ureport.rowFunction" class="com.bstek.ureport.expression.function.RowFunction"/>
	<bean id="ureport.columnFunction" class="com.bstek.ureport.expression.function.ColumnFunction"/>
</beans>