CDR Module: Fixed broken headers in Admin GUI. No longer require output buffering.
[openemr.git] / interface / super / rules / library / RuleCriteriaAgeBuilder.php
blob67e6437dd3aa0830eef80bce0479c893e94597e4
1 <?php
2 // Copyright (C) 2010-2011 Aron Racho <aron@mi-squred.com>
3 //
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
9 require_once( library_src( 'RuleCriteriaBuilder.php') );
10 /**
11 * Description of RuleCriteriaAgeBuilder
13 * @author aron
15 class RuleCriteriaAgeBuilder extends RuleCriteriaBuilder {
17 /**
18 * @return RuleCriteriaType
20 function resolveRuleCriteriaType( $method, $methodDetail, $value ) {
21 if (strpos($method, "age_max") ) {
22 return RuleCriteriaType::from(RuleCriteriaType::ageMax);
24 if (strpos($method, "age_min") ) {
25 return RuleCriteriaType::from(RuleCriteriaType::ageMin);
27 return null;
30 /**
31 * @param RuleCriteriaType $ruleCriteriaType
32 * @return RuleCriteria
34 function build( $ruleCriteriaType, $value, $methodDetail ) {
35 $method = $ruleCriteriaType->method;
36 $criteria = new RuleCriteriaAge(
37 $method == 'age_max' ? 'max' : 'min',
38 $value,
39 TimeUnit::from($methodDetail)
42 $criteria->value = $value;
43 return $criteria;
46 /**
48 * @param RuleCriteriaType $criteriaType
50 function newInstance( $criteriaType ) {
51 if ( $criteriaType->code == RuleCriteriaType::ageMin ) {
52 return new RuleCriteriaAge( 'min' );
55 if ( $criteriaType->code == RuleCriteriaType::ageMax ) {
56 return new RuleCriteriaAge( 'max' );
59 return null;