1: <?php
2:
3: namespace BeerXML\Record;
4:
5: use BeerXML\Generator\IRecipeDisplay as RecipeGetter;
6: use BeerXML\Parser\IRecipeDisplay as RecipeSetter;
7:
8: class Recipe implements RecipeGetter, RecipeSetter
9: {
10: /**
11: * Name of the recipe.
12: *
13: * @var string
14: */
15: private $name;
16:
17: /**
18: * Version of the recipe record. Should always be "1" for this version of the XML standard.
19: *
20: * @var int
21: */
22: private $version = 1;
23:
24: /**
25: * May be one of "Extract", "Partial Mash" or "All Grain"
26: *
27: * @var string
28: */
29: private $type;
30:
31: /**
32: * The style of the beer this recipe is associated with. All of the required items for a valid style should be
33: * between the <STYLE>…</STYLE> tags.
34: *
35: * @var Style
36: */
37: private $style;
38:
39: /**
40: * An equipment record is optional. If included the BATCH_SIZE and BOIL_SIZE in the equipment record must match
41: * the values in this recipe record.
42: *
43: * @var Equipment
44: */
45: private $equipment;
46:
47: /**
48: * Name of the brewer
49: *
50: * @var string
51: */
52: private $brewer;
53:
54: /**
55: * Optional name of the assistant brewer
56: *
57: * @var string
58: */
59: private $asstBrewer;
60:
61: /**
62: * Target size of the finished batch in liters.
63: *
64: * @var float
65: */
66: private $batchSize;
67:
68: /**
69: * Starting size for the main boil of the wort in liters.
70: *
71: * @var float
72: */
73: private $boilSize;
74:
75: /**
76: * The total time to boil the wort in minutes.
77: *
78: * @var number
79: */
80: private $boilTime;
81:
82: /**
83: * The percent brewhouse efficiency to be used for estimating the starting gravity of the beer. Not required for
84: * "Extract" recipes, but is required for "Partial Mash" and "All Grain" recipes.
85: *
86: * @var float
87: */
88: private $efficiency;
89:
90: /**
91: * Zero or more HOP ingredient records may appear between the <HOPS>…</HOPS> tags.
92: *
93: * @var array of Hop
94: */
95: private $hops = array();
96:
97: /**
98: * Zero or more FERMENTABLE ingredients may appear between the <FERMENTABLES> … </FERMENTABLES> tags.
99: *
100: * @var array of Fermentable
101: */
102: private $fermentables = array();
103:
104: /**
105: * Zero or more MISC records may appear between <MISCS> … </MISCS>
106: *
107: * @var array of Misc
108: */
109: private $miscs = array();
110:
111: /**
112: * Zero or more YEAST records may appear between <YEASTS> … </YEASTS>
113: *
114: * @var array of Yeast
115: */
116: private $yeasts = array();
117:
118: /**
119: * Zero or more WATER records may appear between <WATERS> … </WATERS>
120: *
121: * @var array of Water
122: */
123: private $waters = array();
124:
125: /**
126: * A MASH profile record containing one or more MASH_STEPs. NOTE: No Mash record is needed for "Extract" type
127: * brews.
128: *
129: * @var MashProfile
130: */
131: private $mash;
132:
133: /**
134: * Notes associated with this recipe – may be multiline.
135: *
136: * @var string
137: */
138: private $notes;
139:
140: /**
141: * Tasting notes – may be multiline.
142: *
143: * @var string
144: */
145: private $tasteNotes;
146:
147: /**
148: * Number between zero and 50.0 denoting the taste rating – corresponds to the 50 point BJCP rating system.
149: *
150: * @var float
151: */
152: private $tasteRating;
153:
154: /**
155: * The measured original (pre-fermentation) specific gravity of the beer.
156: *
157: * @var float
158: */
159: private $og;
160:
161: /**
162: * The measured final gravity of the finished beer.
163: *
164: * @var float
165: */
166: private $fg;
167:
168: /**
169: * The number of fermentation stages used – typically a number between one and three
170: *
171: * @var int
172: */
173: private $fermentationStages;
174:
175: /**
176: * Time spent in the primary in days
177: *
178: * @var number
179: */
180: private $primaryAge;
181:
182: /**
183: * Temperature in degrees Celsius for the primary fermentation.
184: *
185: * @var number
186: */
187: private $primaryTemp;
188:
189: /**
190: * Time spent in the secondary in days.
191: *
192: * @var number
193: */
194: private $secondaryAge;
195:
196: /**
197: * Temperature in degrees Celsius for the secondary fermentation.
198: *
199: * @var number
200: */
201: private $secondaryTemp;
202:
203: /**
204: * Time spent in the third fermenter in days.
205: *
206: * @var number
207: */
208: private $tertiaryAge;
209:
210: /**
211: * Temperature in the tertiary fermenter.
212: *
213: * @var number
214: */
215: private $tertiaryTemp;
216:
217: /**
218: * The time to age the beer in days after bottling.
219: *
220: * @var number
221: */
222: private $age;
223:
224: /**
225: * Temperature for aging the beer after bottling.
226: *
227: * @var number
228: */
229: private $ageTemp;
230:
231: /**
232: * Date brewed
233: *
234: * @var \DateTime
235: */
236: private $date;
237:
238: /**
239: * Floating point value corresponding to the target volumes of CO2 used to carbonate this beer.
240: *
241: * @var float
242: */
243: private $carbonation;
244:
245: /**
246: * TRUE if the batch was force carbonated using CO2 pressure, FALSE if the batch was carbonated using a priming
247: * agent. Default is FALSE
248: *
249: * @var bool
250: */
251: private $forcedCarbonation = false;
252:
253: /**
254: * Text describing the priming agent such as "Honey" or "Corn Sugar" – used only if this is not a forced carbonation
255: *
256: * @var string
257: */
258: private $primingSugarName;
259:
260: /**
261: * The temperature for either bottling or forced carbonation.
262: *
263: * @var number
264: */
265: private $carbonationTemp;
266:
267: /**
268: * Factor used to convert this priming agent to an equivalent amount of corn sugar for a bottled scenario. For
269: * example, "Dry Malt Extract" would have a value of 1.4 because it requires 1.4 times as much DME as corn sugar to
270: * carbonate. To calculate the amount of DME needed, the program can calculate the amount of corn sugar needed and
271: * then multiply by this factor.
272: *
273: * @var float
274: */
275: private $primingSugarEquiv;
276:
277: /**
278: * Used to factor in the smaller amount of sugar needed for large containers. For example, this might be 0.5 for a
279: * typical 5 gallon keg since naturally priming a keg requires about 50% as much sugar as priming bottles.
280: *
281: * @var float
282: */
283: private $kegPrimingFactor;
284:
285:
286: /** Fields from Appendix A Optional Extensions for BeerXML Display **/
287: /**
288: * @var string
289: */
290: private $estOg;
291:
292: /**
293: * @var string
294: */
295: private $estFg;
296:
297: /**
298: * @var string
299: */
300: private $estColor;
301:
302: /**
303: * @var float
304: */
305: private $ibu;
306:
307: /**
308: * @var string
309: */
310: private $ibuMethod;
311:
312: /**
313: * @var float
314: */
315: private $estAbv;
316:
317: /**
318: * @var float
319: */
320: private $abv;
321:
322: /**
323: * @var float
324: */
325: private $actualEfficiency;
326:
327: /**
328: * @var string
329: */
330: private $calories;
331:
332: /**
333: * @var string
334: */
335: private $displayBatchSize;
336:
337: /**
338: * @var string
339: */
340: private $displayBoilSize;
341:
342: /**
343: * @var string
344: */
345: private $displayOg;
346:
347: /**
348: * @var string
349: */
350: private $displayFg;
351:
352: /**
353: * @var string
354: */
355: private $displayPrimaryTemp;
356:
357: /**
358: * @var string
359: */
360: private $displaySecondaryTemp;
361:
362: /**
363: * @var string
364: */
365: private $displayTertiaryTemp;
366:
367: /**
368: * @var string
369: */
370: private $displayAgeTemp;
371:
372: /**
373: * @var string
374: */
375: private $carbonationUsed;
376:
377: /**
378: * @var string
379: */
380: private $displayCarbTemp;
381:
382: /**
383: * @return number
384: */
385: public function getAge()
386: {
387: return $this->age;
388: }
389:
390: /**
391: * @param number $age
392: */
393: public function setAge($age)
394: {
395: $this->age = $age;
396: }
397:
398: /**
399: * @return number
400: */
401: public function getAgeTemp()
402: {
403: return $this->ageTemp;
404: }
405:
406: /**
407: * @param number $ageTemp
408: */
409: public function setAgeTemp($ageTemp)
410: {
411: $this->ageTemp = $ageTemp;
412: }
413:
414: /**
415: * @return string
416: */
417: public function getAsstBrewer()
418: {
419: return $this->asstBrewer;
420: }
421:
422: /**
423: * @param string $asstBrewer
424: */
425: public function setAsstBrewer($asstBrewer)
426: {
427: $this->asstBrewer = $asstBrewer;
428: }
429:
430: /**
431: * @return float
432: */
433: public function getBatchSize()
434: {
435: return $this->batchSize;
436: }
437:
438: /**
439: * @param float $batchSize
440: */
441: public function setBatchSize($batchSize)
442: {
443: $this->batchSize = $batchSize;
444: }
445:
446: /**
447: * @return float
448: */
449: public function getBoilSize()
450: {
451: return $this->boilSize;
452: }
453:
454: /**
455: * @param float $boilSize
456: */
457: public function setBoilSize($boilSize)
458: {
459: $this->boilSize = $boilSize;
460: }
461:
462: /**
463: * @return number
464: */
465: public function getBoilTime()
466: {
467: return $this->boilTime;
468: }
469:
470: /**
471: * @param number $boilTime
472: */
473: public function setBoilTime($boilTime)
474: {
475: $this->boilTime = $boilTime;
476: }
477:
478: /**
479: * @return string
480: */
481: public function getBrewer()
482: {
483: return $this->brewer;
484: }
485:
486: /**
487: * @param string $brewer
488: */
489: public function setBrewer($brewer)
490: {
491: $this->brewer = $brewer;
492: }
493:
494: /**
495: * @return float
496: */
497: public function getCarbonation()
498: {
499: return $this->carbonation;
500: }
501:
502: /**
503: * @param float $carbonation
504: */
505: public function setCarbonation($carbonation)
506: {
507: $this->carbonation = $carbonation;
508: }
509:
510: /**
511: * @return number
512: */
513: public function getCarbonationTemp()
514: {
515: return $this->carbonationTemp;
516: }
517:
518: /**
519: * @param number $carbonationTemp
520: */
521: public function setCarbonationTemp($carbonationTemp)
522: {
523: $this->carbonationTemp = $carbonationTemp;
524: }
525:
526: /**
527: * @return \DateTime
528: */
529: public function getDate()
530: {
531: return $this->date;
532: }
533:
534: /**
535: * @param \DateTime $date
536: */
537: public function setDate($date)
538: {
539: $this->date = $date;
540: }
541:
542: /**
543: * @return float
544: */
545: public function getEfficiency()
546: {
547: return $this->efficiency;
548: }
549:
550: /**
551: * @param float $efficiency
552: */
553: public function setEfficiency($efficiency)
554: {
555: $this->efficiency = $efficiency;
556: }
557:
558: /**
559: * @return Equipment
560: */
561: public function getEquipment()
562: {
563: return $this->equipment;
564: }
565:
566: /**
567: * @param Equipment $equipment
568: */
569: public function setEquipment($equipment)
570: {
571: $this->equipment = $equipment;
572: }
573:
574: /**
575: * @return Fermentable[]
576: */
577: public function getFermentables()
578: {
579: return $this->fermentables;
580: }
581:
582: /**
583: * @param Fermentable $fermentable
584: */
585: public function addFermentable($fermentable)
586: {
587: $this->fermentables[] = $fermentable;
588: }
589:
590: /**
591: * @return int
592: */
593: public function getFermentationStages()
594: {
595: return $this->fermentationStages;
596: }
597:
598: /**
599: * @param int $fermentationStages
600: */
601: public function setFermentationStages($fermentationStages)
602: {
603: $this->fermentationStages = $fermentationStages;
604: }
605:
606: /**
607: * @return float
608: */
609: public function getFg()
610: {
611: return $this->fg;
612: }
613:
614: /**
615: * @param float $fg
616: */
617: public function setFg($fg)
618: {
619: $this->fg = $fg;
620: }
621:
622: /**
623: * @return boolean
624: */
625: public function getForcedCarbonation()
626: {
627: return $this->forcedCarbonation;
628: }
629:
630: /**
631: * @param boolean $forcedCarbonation
632: */
633: public function setForcedCarbonation($forcedCarbonation)
634: {
635: $this->forcedCarbonation = $forcedCarbonation;
636: }
637:
638: /**
639: * @return Hop[]
640: */
641: public function getHops()
642: {
643: return $this->hops;
644: }
645:
646: /**
647: * @param Hop $hop
648: */
649: public function addHop($hop)
650: {
651: $this->hops[] = $hop;
652: }
653:
654: /**
655: * @return float
656: */
657: public function getKegPrimingFactor()
658: {
659: return $this->kegPrimingFactor;
660: }
661:
662: /**
663: * @param float $kegPrimingFactor
664: */
665: public function setKegPrimingFactor($kegPrimingFactor)
666: {
667: $this->kegPrimingFactor = $kegPrimingFactor;
668: }
669:
670: /**
671: * @return MashProfile
672: */
673: public function getMash()
674: {
675: return $this->mash;
676: }
677:
678: /**
679: * @param MashProfile $mash
680: */
681: public function setMash($mash)
682: {
683: $this->mash = $mash;
684: }
685:
686: /**
687: * @return array
688: */
689: public function getMiscs()
690: {
691: return $this->miscs;
692: }
693:
694: /**
695: * @param Misc
696: */
697: public function addMisc($misc)
698: {
699: $this->miscs[] = $misc;
700: }
701:
702: /**
703: * @return string
704: */
705: public function getName()
706: {
707: return $this->name;
708: }
709:
710: /**
711: * @param string $name
712: */
713: public function setName($name)
714: {
715: $this->name = $name;
716: }
717:
718: /**
719: * @return string
720: */
721: public function getNotes()
722: {
723: return $this->notes;
724: }
725:
726: /**
727: * @param string $notes
728: */
729: public function setNotes($notes)
730: {
731: $this->notes = $notes;
732: }
733:
734: /**
735: * @return float
736: */
737: public function getOg()
738: {
739: return $this->og;
740: }
741:
742: /**
743: * @param float $og
744: */
745: public function setOg($og)
746: {
747: $this->og = $og;
748: }
749:
750: /**
751: * @return number
752: */
753: public function getPrimaryAge()
754: {
755: return $this->primaryAge;
756: }
757:
758: /**
759: * @param number $primaryAge
760: */
761: public function setPrimaryAge($primaryAge)
762: {
763: $this->primaryAge = $primaryAge;
764: }
765:
766: /**
767: * @return number
768: */
769: public function getPrimaryTemp()
770: {
771: return $this->primaryTemp;
772: }
773:
774: /**
775: * @param number $primaryTemp
776: */
777: public function setPrimaryTemp($primaryTemp)
778: {
779: $this->primaryTemp = $primaryTemp;
780: }
781:
782: /**
783: * @return float
784: */
785: public function getPrimingSugarEquiv()
786: {
787: return $this->primingSugarEquiv;
788: }
789:
790: /**
791: * @param float $primingSugarEquiv
792: */
793: public function setPrimingSugarEquiv($primingSugarEquiv)
794: {
795: $this->primingSugarEquiv = $primingSugarEquiv;
796: }
797:
798: /**
799: * @return string
800: */
801: public function getPrimingSugarName()
802: {
803: return $this->primingSugarName;
804: }
805:
806: /**
807: * @param string $primingSugarName
808: */
809: public function setPrimingSugarName($primingSugarName)
810: {
811: $this->primingSugarName = $primingSugarName;
812: }
813:
814: /**
815: * @return number
816: */
817: public function getSecondaryAge()
818: {
819: return $this->secondaryAge;
820: }
821:
822: /**
823: * @param number $secondaryAge
824: */
825: public function setSecondaryAge($secondaryAge)
826: {
827: $this->secondaryAge = $secondaryAge;
828: }
829:
830: /**
831: * @return number
832: */
833: public function getSecondaryTemp()
834: {
835: return $this->secondaryTemp;
836: }
837:
838: /**
839: * @param number $secondaryTemp
840: */
841: public function setSecondaryTemp($secondaryTemp)
842: {
843: $this->secondaryTemp = $secondaryTemp;
844: }
845:
846: /**
847: * @return Style
848: */
849: public function getStyle()
850: {
851: return $this->style;
852: }
853:
854: /**
855: * @param Style $style
856: */
857: public function setStyle($style)
858: {
859: $this->style = $style;
860: }
861:
862: /**
863: * @return string
864: */
865: public function getTasteNotes()
866: {
867: return $this->tasteNotes;
868: }
869:
870: /**
871: * @param string $tasteNotes
872: */
873: public function setTasteNotes($tasteNotes)
874: {
875: $this->tasteNotes = $tasteNotes;
876: }
877:
878: /**
879: * @return float
880: */
881: public function getTasteRating()
882: {
883: return $this->tasteRating;
884: }
885:
886: /**
887: * @param float $tasteRating
888: */
889: public function setTasteRating($tasteRating)
890: {
891: $this->tasteRating = $tasteRating;
892: }
893:
894: /**
895: * @return number
896: */
897: public function getTertiaryAge()
898: {
899: return $this->tertiaryAge;
900: }
901:
902: /**
903: * @param number $tertiaryAge
904: */
905: public function setTertiaryAge($tertiaryAge)
906: {
907: $this->tertiaryAge = $tertiaryAge;
908: }
909:
910: /**
911: * @return number
912: */
913: public function getTertiaryTemp()
914: {
915: return $this->tertiaryTemp;
916: }
917:
918: /**
919: * @param number $tertiaryTemp
920: */
921: public function setTertiaryTemp($tertiaryTemp)
922: {
923: $this->tertiaryTemp = $tertiaryTemp;
924: }
925:
926: /**
927: * @return string
928: */
929: public function getType()
930: {
931: return $this->type;
932: }
933:
934: /**
935: * @param string $type
936: */
937: public function setType($type)
938: {
939: $this->type = $type;
940: }
941:
942: /**
943: * @return int
944: */
945: public function getVersion()
946: {
947: return $this->version;
948: }
949:
950: /**
951: * @param int $version
952: */
953: public function setVersion($version)
954: {
955: $this->version = $version;
956: }
957:
958: /**
959: * @return array
960: */
961: public function getWaters()
962: {
963: return $this->waters;
964: }
965:
966: /**
967: * @param Water
968: */
969: public function addWater($water)
970: {
971: $this->waters[] = $water;
972: }
973:
974: /**
975: * @return array
976: */
977: public function getYeasts()
978: {
979: return $this->yeasts;
980: }
981:
982: /**
983: * @param Yeast
984: */
985: public function addYeast($yeast)
986: {
987: $this->yeasts[] = $yeast;
988: }
989:
990: /**
991: * Actual alcohol by volume calculated from the OG and FG measured.
992: *
993: * @param float $abv Percent
994: */
995: public function setAbv($abv)
996: {
997: $this->abv = $abv;
998: }
999:
1000: /**
1001: * Actual alcohol by volume calculated from the OG and FG measured.
1002: *
1003: * @return float Percent
1004: */
1005: public function getAbv()
1006: {
1007: return $this->abv;
1008: }
1009:
1010: /**
1011: * The actual efficiency as calculated using the measured original and final gravity.
1012: *
1013: * @param float $actualEfficiency Percent
1014: */
1015: public function setActualEfficiency($actualEfficiency)
1016: {
1017: $this->actualEfficiency = $actualEfficiency;
1018: }
1019:
1020: /**
1021: * The actual efficiency as calculated using the measured original and final gravity.
1022: *
1023: * @return float Percent
1024: */
1025: public function getActualEfficiency()
1026: {
1027: return $this->actualEfficiency;
1028: }
1029:
1030: /**
1031: * Calorie estimate based on the measured starting and ending gravity.
1032: *
1033: * Note that calories should be quoted in "Cal" or kilocalories which is the normal dietary measure (i.e. a beer is
1034: * usually in the range of 100-250 calories per 12 oz). Examples "180 Cal/pint",
1035: *
1036: * @param string $calories
1037: */
1038: public function setCalories($calories)
1039: {
1040: $this->calories = $calories;
1041: }
1042:
1043: /**
1044: * Calorie estimate based on the measured starting and ending gravity.
1045: *
1046: * Note that calories should be quoted in "Cal" or kilocalories which is the normal dietary measure (i.e. a beer is
1047: * usually in the range of 100-250 calories per 12 oz). Examples "180 Cal/pint",
1048: *
1049: * @return string
1050: */
1051: public function getCalories()
1052: {
1053: return $this->calories;
1054: }
1055:
1056: /**
1057: * Temperature to use when aging the beer in user units such as "55 F"
1058: *
1059: * @param string $displayAgeTemp
1060: */
1061: public function setDisplayAgeTemp($displayAgeTemp)
1062: {
1063: $this->displayAgeTemp = $displayAgeTemp;
1064: }
1065:
1066: /**
1067: * Temperature to use when aging the beer in user units such as "55 F"
1068: *
1069: * @return string
1070: */
1071: public function getDisplayAgeTemp()
1072: {
1073: return $this->displayAgeTemp;
1074: }
1075:
1076: /**
1077: * Batch size in user defined units along with the units as in "5.0 gal"
1078: *
1079: * @param string $displayBatchSize
1080: */
1081: public function setDisplayBatchSize($displayBatchSize)
1082: {
1083: $this->displayBatchSize = $displayBatchSize;
1084: }
1085:
1086: /**
1087: * Batch size in user defined units along with the units as in "5.0 gal"
1088: *
1089: * @return string
1090: */
1091: public function getDisplayBatchSize()
1092: {
1093: return $this->displayBatchSize;
1094: }
1095:
1096: /**
1097: * Boil size with user defined units as in "6.3 gal"
1098: *
1099: * @param string $displayBoilSize
1100: */
1101: public function setDisplayBoilSize($displayBoilSize)
1102: {
1103: $this->displayBoilSize = $displayBoilSize;
1104: }
1105:
1106: /**
1107: * Boil size with user defined units as in "6.3 gal"
1108: *
1109: * @return string
1110: */
1111: public function getDisplayBoilSize()
1112: {
1113: return $this->displayBoilSize;
1114: }
1115:
1116: /**
1117: * Carbonation/Bottling temperature in appropriate units such as "40F" or "32 C"
1118: *
1119: * @param string $displayCarbTemp
1120: */
1121: public function setDisplayCarbTemp($displayCarbTemp)
1122: {
1123: $this->displayCarbTemp = $displayCarbTemp;
1124: }
1125:
1126: /**
1127: * Carbonation/Bottling temperature in appropriate units such as "40F" or "32 C"
1128: *
1129: * @return string
1130: */
1131: public function getDisplayCarbTemp()
1132: {
1133: return $this->displayCarbTemp;
1134: }
1135:
1136: /**
1137: * Text description of the carbonation used such as "50g corn sugar" or "Kegged at 20psi"
1138: *
1139: * @param string $carbonationUsed
1140: */
1141: public function setCarbonationUsed($carbonationUsed)
1142: {
1143: $this->carbonationUsed = $carbonationUsed;
1144: }
1145:
1146: /**
1147: * Text description of the carbonation used such as "50g corn sugar" or "Kegged at 20psi"
1148: *
1149: * @return string
1150: */
1151: public function getCarbonationUsed()
1152: {
1153: return $this->carbonationUsed;
1154: }
1155:
1156: /**
1157: * Measured final gravity in user defined units as in "1.035 sg"
1158: *
1159: * @param string $displayFg
1160: */
1161: public function setDisplayFg($displayFg)
1162: {
1163: $this->displayFg = $displayFg;
1164: }
1165:
1166: /**
1167: * Measured final gravity in user defined units as in "1.035 sg"
1168: *
1169: * @return string
1170: */
1171: public function getDisplayFg()
1172: {
1173: return $this->displayFg;
1174: }
1175:
1176: /**
1177: * Measured original gravity in user defined units as in "6.4 plato"
1178: *
1179: * @param string $displayOg
1180: */
1181: public function setDisplayOg($displayOg)
1182: {
1183: $this->displayOg = $displayOg;
1184: }
1185:
1186: /**
1187: * Measured original gravity in user defined units as in "6.4 plato"
1188: *
1189: * @return string
1190: */
1191: public function getDisplayOg()
1192: {
1193: return $this->displayOg;
1194: }
1195:
1196: /**
1197: * Primary fermentation temperature in user defined units such as "64 F"
1198: *
1199: * @param string $displayPrimaryTemp
1200: */
1201: public function setDisplayPrimaryTemp($displayPrimaryTemp)
1202: {
1203: $this->displayPrimaryTemp = $displayPrimaryTemp;
1204: }
1205:
1206: /**
1207: * Primary fermentation temperature in user defined units such as "64 F"
1208: *
1209: * @return string
1210: */
1211: public function getDisplayPrimaryTemp()
1212: {
1213: return $this->displayPrimaryTemp;
1214: }
1215:
1216: /**
1217: * Secondary fermentation temperature in user defined units such as "56 F"
1218: *
1219: * @param string $displaySecondaryTemp
1220: */
1221: public function setDisplaySecondaryTemp($displaySecondaryTemp)
1222: {
1223: $this->displaySecondaryTemp = $displaySecondaryTemp;
1224: }
1225:
1226: /**
1227: * Secondary fermentation temperature in user defined units such as "56 F"
1228: *
1229: * @return string
1230: */
1231: public function getDisplaySecondaryTemp()
1232: {
1233: return $this->displaySecondaryTemp;
1234: }
1235:
1236: /**
1237: * Tertiary temperature in user defined units such as "20 C"
1238: *
1239: * @param string $displayTertiaryTemp
1240: */
1241: public function setDisplayTertiaryTemp($displayTertiaryTemp)
1242: {
1243: $this->displayTertiaryTemp = $displayTertiaryTemp;
1244: }
1245:
1246: /**
1247: * Tertiary temperature in user defined units such as "20 C"
1248: *
1249: * @return string
1250: */
1251: public function getDisplayTertiaryTemp()
1252: {
1253: return $this->displayTertiaryTemp;
1254: }
1255:
1256: /**
1257: * Estimated percent alcohol by volume for this recipe.
1258: *
1259: * @param float $estAbv Percent
1260: */
1261: public function setEstAbv($estAbv)
1262: {
1263: $this->estAbv = $estAbv;
1264: }
1265:
1266: /**
1267: * Estimated percent alcohol by volume for this recipe.
1268: *
1269: * @return float Percent
1270: */
1271: public function getEstAbv()
1272: {
1273: return $this->estAbv;
1274: }
1275:
1276: /**
1277: * The estimated color of the beer in user defined color units.
1278: *
1279: * @param string $estColor
1280: */
1281: public function setEstColor($estColor)
1282: {
1283: $this->estColor = $estColor;
1284: }
1285:
1286: /**
1287: * The estimated color of the beer in user defined color units.
1288: *
1289: * @return string
1290: */
1291: public function getEstColor()
1292: {
1293: return $this->estColor;
1294: }
1295:
1296: /**
1297: * Calculated estimate for the final specific gravity of this recipe along with the units as in "1.015 sg"
1298: *
1299: * @param string $estFg
1300: */
1301: public function setEstFg($estFg)
1302: {
1303: $this->estFg = $estFg;
1304: }
1305:
1306: /**
1307: * Calculated estimate for the final specific gravity of this recipe along with the units as in "1.015 sg"
1308: *
1309: * @return string
1310: */
1311: public function getEstFg()
1312: {
1313: return $this->estFg;
1314: }
1315:
1316: /**
1317: * Calculated estimate of the original gravity for this recipe along with the units.
1318: *
1319: * @param string $estOg
1320: */
1321: public function setEstOg($estOg)
1322: {
1323: $this->estOg = $estOg;
1324: }
1325:
1326: /**
1327: * Calculated estimate of the original gravity for this recipe along with the units.
1328: *
1329: * @return string
1330: */
1331: public function getEstOg()
1332: {
1333: return $this->estOg;
1334: }
1335:
1336: /**
1337: * The estimated bitterness level of the beer in IBUs
1338: *
1339: * @param float $ibu
1340: */
1341: public function setIbu($ibu)
1342: {
1343: $this->ibu = $ibu;
1344: }
1345:
1346: /**
1347: * The estimated bitterness level of the beer in IBUs
1348: *
1349: * @return float
1350: */
1351: public function getIbu()
1352: {
1353: return $this->ibu;
1354: }
1355:
1356: /**
1357: * May be "Rager", "Tinseth" or "Garetz" corresponding to the method/equation used to estimate IBUs for this recipe.
1358: *
1359: * @param string $ibuMethod
1360: */
1361: public function setIbuMethod($ibuMethod)
1362: {
1363: $this->ibuMethod = $ibuMethod;
1364: }
1365:
1366: /**
1367: * May be "Rager", "Tinseth" or "Garetz" corresponding to the method/equation used to estimate IBUs for this recipe.
1368: *
1369: * @return string
1370: */
1371: public function getIbuMethod()
1372: {
1373: return $this->ibuMethod;
1374: }
1375:
1376: }
1377: