1: <?php
2:
3:
4: namespace BeerXML\Record;
5:
6:
7: use BeerXML\Generator\IStyleDisplay as StyleGetter;
8: use BeerXML\Parser\IStyleDisplay as StyleSetter;
9:
10: class Style implements StyleGetter, StyleSetter
11: {
12:
13: const TYPE_LAGER = 'Lager';
14: const TYPE_ALE = 'Ale';
15: const TYPE_MEAD = 'Mead';
16: const TYPE_WHEAT = 'Wheat';
17: const TYPE_MIXED = 'Mixed';
18: const TYPE_CIDER = 'Cider';
19:
20: /**
21: * Name of the style profile – usually this is the specific name of the style – for example "Scottish Wee Heavy Ale"
22: * and not the Category which in this case might be "Scottish Ale"
23: *
24: * @var string
25: */
26: private $name;
27:
28: /**
29: * Category that this style belongs to – usually associated with a group of styles such as "English Ales" or
30: * "Amercian Lagers".
31: *
32: * @var string
33: */
34: private $category;
35:
36: /**
37: * Version of the style record. Should always be "1" for this version of the XML standard.
38: *
39: * @var int
40: */
41: private $version = 1;
42:
43: /**
44: * Number or identifier associated with this style category. For example in the BJCP style guide, the
45: * "American Lager" category has a category number of "1".
46: *
47: * @var string
48: */
49: private $categoryNumber;
50:
51: /**
52: * The specific style number or subcategory letter associated with this particular style. For example in the BJCP
53: * style guide, an American Standard Lager would be style letter "A" under the main category. Letters should be
54: * upper case.
55: *
56: * @var string
57: */
58: private $styleLetter;
59:
60: /**
61: * The name of the style guide that this particular style or category belongs to. For example "BJCP" might denote
62: * the BJCP style guide, and "AHA" would be used for the AHA style guide.
63: *
64: * @var string
65: */
66: private $styleGuide;
67:
68: /**
69: * May be "Lager", "Ale", "Mead", "Wheat", "Mixed" or "Cider". Defines the type of beverage associated with this
70: * category.
71: *
72: * @var string
73: */
74: private $type;
75:
76: /**
77: * The minimum specific gravity as measured relative to water. For example "1.040" might be a reasonable minimum
78: * for a Pale Ale.
79: *
80: * @var float
81: */
82: private $ogMin;
83:
84: /**
85: * The maximum specific gravity as measured relative to water.
86: *
87: * @var float
88: */
89: private $ogMax;
90:
91: /**
92: * The minimum final gravity as measured relative to water.
93: *
94: * @var float
95: */
96: private $fgMin;
97:
98: /**
99: * The maximum final gravity as measured relative to water.
100: *
101: * @var float
102: */
103: private $fgMax;
104:
105: /**
106: * The recommended minimum bitterness for this style as measured in International Bitterness Units (IBUs)
107: *
108: * @var float
109: */
110: private $ibuMin;
111:
112: /**
113: * The recommended maximum bitterness for this style as measured in International Bitterness Units (IBUs)
114: *
115: * @var float
116: */
117: private $ibuMax;
118:
119: /**
120: * The minimum recommended color in SRM
121: *
122: * @var number
123: */
124: private $colorMin;
125:
126: /**
127: * The maximum recommended color in SRM.
128: *
129: * @var number
130: */
131: private $colorMax;
132:
133: /**
134: * Minimum recommended carbonation for this style in volumes of CO2
135: *
136: * @var float
137: */
138: private $carbMin;
139:
140: /**
141: * The maximum recommended carbonation for this style in volumes of CO2
142: *
143: * @var float
144: */
145: private $carbMax;
146:
147: /**
148: * The minimum recommended alcohol by volume as a percentage.
149: *
150: * @var float
151: */
152: private $abvMin;
153:
154: /**
155: * The maximum recommended alcohol by volume as a percentage.
156: *
157: * @var float
158: */
159: private $abvMax;
160:
161: /**
162: * Description of the style, history
163: *
164: * @var string
165: */
166: private $notes;
167:
168: /**
169: * Flavor and aroma profile for this style
170: *
171: * @var string
172: */
173: private $profile;
174:
175: /**
176: * Suggested ingredients for this style
177: *
178: * @var string
179: */
180: private $ingredients;
181:
182: /**
183: * Example beers of this style.
184: *
185: * @var string
186: */
187: private $examples;
188:
189: /** Fields from Appendix A Optional Extensions for BeerXML Display **/
190:
191: /**
192: * @var string
193: */
194: private $displayOgMin;
195:
196: /**
197: * @var string
198: */
199: private $displayOgMax;
200:
201: /**
202: * @var string
203: */
204: private $displayFgMin;
205:
206: /**
207: * @var string
208: */
209: private $displayFgMax;
210:
211: /**
212: * @var string
213: */
214: private $displayColorMin;
215:
216: /**
217: * @var string
218: */
219:
220: /**
221: * @var string
222: */
223: private $displayColorMax;
224:
225: /**
226: * @var string
227: */
228: private $ogRange;
229:
230: /**
231: * @var string
232: */
233: private $fgRange;
234:
235: /**
236: * @var string
237: */
238: private $ibuRange;
239:
240: /**
241: * @var string
242: */
243: private $carbRange;
244:
245: /**
246: * @var string
247: */
248: private $colorRange;
249:
250: /**
251: * @var string
252: */
253: private $abvRange;
254:
255: /**
256: * @param float $abvMax
257: */
258: public function setAbvMax($abvMax)
259: {
260: $this->abvMax = $abvMax;
261: }
262:
263: /**
264: * @return float
265: */
266: public function getAbvMax()
267: {
268: return $this->abvMax;
269: }
270:
271: /**
272: * @param float $abvMin
273: */
274: public function setAbvMin($abvMin)
275: {
276: $this->abvMin = $abvMin;
277: }
278:
279: /**
280: * @return float
281: */
282: public function getAbvMin()
283: {
284: return $this->abvMin;
285: }
286:
287: /**
288: * @param float $carbMax
289: */
290: public function setCarbMax($carbMax)
291: {
292: $this->carbMax = $carbMax;
293: }
294:
295: /**
296: * @return float
297: */
298: public function getCarbMax()
299: {
300: return $this->carbMax;
301: }
302:
303: /**
304: * @param float $carbMin
305: */
306: public function setCarbMin($carbMin)
307: {
308: $this->carbMin = $carbMin;
309: }
310:
311: /**
312: * @return float
313: */
314: public function getCarbMin()
315: {
316: return $this->carbMin;
317: }
318:
319: /**
320: * @param string $category
321: */
322: public function setCategory($category)
323: {
324: $this->category = $category;
325: }
326:
327: /**
328: * @return string
329: */
330: public function getCategory()
331: {
332: return $this->category;
333: }
334:
335: /**
336: * @param string $categoryNumber
337: */
338: public function setCategoryNumber($categoryNumber)
339: {
340: $this->categoryNumber = $categoryNumber;
341: }
342:
343: /**
344: * @return string
345: */
346: public function getCategoryNumber()
347: {
348: return $this->categoryNumber;
349: }
350:
351: /**
352: * @param number $colorMax
353: */
354: public function setColorMax($colorMax)
355: {
356: $this->colorMax = $colorMax;
357: }
358:
359: /**
360: * @return number
361: */
362: public function getColorMax()
363: {
364: return $this->colorMax;
365: }
366:
367: /**
368: * @param number $colorMin
369: */
370: public function setColorMin($colorMin)
371: {
372: $this->colorMin = $colorMin;
373: }
374:
375: /**
376: * @return number
377: */
378: public function getColorMin()
379: {
380: return $this->colorMin;
381: }
382:
383: /**
384: * @param string $examples
385: */
386: public function setExamples($examples)
387: {
388: $this->examples = $examples;
389: }
390:
391: /**
392: * @return string
393: */
394: public function getExamples()
395: {
396: return $this->examples;
397: }
398:
399: /**
400: * @param float $fgMax
401: */
402: public function setFgMax($fgMax)
403: {
404: $this->fgMax = $fgMax;
405: }
406:
407: /**
408: * @return float
409: */
410: public function getFgMax()
411: {
412: return $this->fgMax;
413: }
414:
415: /**
416: * @param float $fgMin
417: */
418: public function setFgMin($fgMin)
419: {
420: $this->fgMin = $fgMin;
421: }
422:
423: /**
424: * @return float
425: */
426: public function getFgMin()
427: {
428: return $this->fgMin;
429: }
430:
431: /**
432: * @param float $ibuMax
433: */
434: public function setIbuMax($ibuMax)
435: {
436: $this->ibuMax = $ibuMax;
437: }
438:
439: /**
440: * @return float
441: */
442: public function getIbuMax()
443: {
444: return $this->ibuMax;
445: }
446:
447: /**
448: * @param float $ibuMin
449: */
450: public function setIbuMin($ibuMin)
451: {
452: $this->ibuMin = $ibuMin;
453: }
454:
455: /**
456: * @return float
457: */
458: public function getIbuMin()
459: {
460: return $this->ibuMin;
461: }
462:
463: /**
464: * @param string $ingredients
465: */
466: public function setIngredients($ingredients)
467: {
468: $this->ingredients = $ingredients;
469: }
470:
471: /**
472: * @return string
473: */
474: public function getIngredients()
475: {
476: return $this->ingredients;
477: }
478:
479: /**
480: * @param string $name
481: */
482: public function setName($name)
483: {
484: $this->name = $name;
485: }
486:
487: /**
488: * @return string
489: */
490: public function getName()
491: {
492: return $this->name;
493: }
494:
495: /**
496: * @param string $notes
497: */
498: public function setNotes($notes)
499: {
500: $this->notes = $notes;
501: }
502:
503: /**
504: * @return string
505: */
506: public function getNotes()
507: {
508: return $this->notes;
509: }
510:
511: /**
512: * @param float $ogMax
513: */
514: public function setOgMax($ogMax)
515: {
516: $this->ogMax = $ogMax;
517: }
518:
519: /**
520: * @return float
521: */
522: public function getOgMax()
523: {
524: return $this->ogMax;
525: }
526:
527: /**
528: * @param float $ogMin
529: */
530: public function setOgMin($ogMin)
531: {
532: $this->ogMin = $ogMin;
533: }
534:
535: /**
536: * @return float
537: */
538: public function getOgMin()
539: {
540: return $this->ogMin;
541: }
542:
543: /**
544: * @param string $profile
545: */
546: public function setProfile($profile)
547: {
548: $this->profile = $profile;
549: }
550:
551: /**
552: * @return string
553: */
554: public function getProfile()
555: {
556: return $this->profile;
557: }
558:
559: /**
560: * @param string $styleGuide
561: */
562: public function setStyleGuide($styleGuide)
563: {
564: $this->styleGuide = $styleGuide;
565: }
566:
567: /**
568: * @return string
569: */
570: public function getStyleGuide()
571: {
572: return $this->styleGuide;
573: }
574:
575: /**
576: * @param string $styleLetter
577: */
578: public function setStyleLetter($styleLetter)
579: {
580: $this->styleLetter = $styleLetter;
581: }
582:
583: /**
584: * @return string
585: */
586: public function getStyleLetter()
587: {
588: return $this->styleLetter;
589: }
590:
591: /**
592: * @param string $type
593: */
594: public function setType($type)
595: {
596: $this->type = $type;
597: }
598:
599: /**
600: * @return string
601: */
602: public function getType()
603: {
604: return $this->type;
605: }
606:
607: /**
608: * @param int $version
609: */
610: public function setVersion($version)
611: {
612: $this->version = $version;
613: }
614:
615: /**
616: * @return int
617: */
618: public function getVersion()
619: {
620: return $this->version;
621: }
622:
623: /**
624: * ABV Range for this style such as "4.5-5.5%"
625: *
626: * @param string $abvRange
627: */
628: public function setAbvRange($abvRange)
629: {
630: $this->abvRange = $abvRange;
631: }
632:
633: /**
634: * ABV Range for this style such as "4.5-5.5%"
635: *
636: * @return string
637: */
638: public function getAbvRange()
639: {
640: return $this->abvRange;
641: }
642:
643: /**
644: * Carbonation range in volumes such as "2.0-2.6 vols"
645: *
646: * @param string $carbRange
647: */
648: public function setCarbRange($carbRange)
649: {
650: $this->carbRange = $carbRange;
651: }
652:
653: /**
654: * Carbonation range in volumes such as "2.0-2.6 vols"
655: *
656: * @return string
657: */
658: public function getCarbRange()
659: {
660: return $this->carbRange;
661: }
662:
663: /**
664: * Color range such as "10-20 SRM"
665: *
666: * @param string $colorRange
667: */
668: public function setColorRange($colorRange)
669: {
670: $this->colorRange = $colorRange;
671: }
672:
673: /**
674: * Color range such as "10-20 SRM"
675: *
676: * @return string
677: */
678: public function getColorRange()
679: {
680: return $this->colorRange;
681: }
682:
683: /**
684: * Maximum color in user defined units such as "20 srm"
685: *
686: * @param string $displayColorMax
687: */
688: public function setDisplayColorMax($displayColorMax)
689: {
690: $this->displayColorMax = $displayColorMax;
691: }
692:
693: /**
694: * Maximum color in user defined units such as "20 srm"
695: *
696: * @return string
697: */
698: public function getDisplayColorMax()
699: {
700: return $this->displayColorMax;
701: }
702:
703: /**
704: * Minimum color in user defined units such as "30 srm".
705: *
706: * @param string $displayColorMin
707: */
708: public function setDisplayColorMin($displayColorMin)
709: {
710: $this->displayColorMin = $displayColorMin;
711: }
712:
713: /**
714: * Minimum color in user defined units such as "30 srm".
715: *
716: * @return string
717: */
718: public function getDisplayColorMin()
719: {
720: return $this->displayColorMin;
721: }
722:
723: /**
724: * Final gravity maximum in user defined units such as "1.019 sg".
725: *
726: * @param string $displayFgMax
727: */
728: public function setDisplayFgMax($displayFgMax)
729: {
730: $this->displayFgMax = $displayFgMax;
731: }
732:
733: /**
734: * Final gravity maximum in user defined units such as "1.019 sg".
735: *
736: * @return string
737: */
738: public function getDisplayFgMax()
739: {
740: return $this->displayFgMax;
741: }
742:
743: /**
744: * Final gravity minimum in user defined units such as "1.010 sg".
745: *
746: * @param string $displayFgMin
747: */
748: public function setDisplayFgMin($displayFgMin)
749: {
750: $this->displayFgMin = $displayFgMin;
751: }
752:
753: /**
754: * Final gravity minimum in user defined units such as "1.010 sg".
755: *
756: * @return string
757: */
758: public function getDisplayFgMin()
759: {
760: return $this->displayFgMin;
761: }
762:
763: /**
764: * Original gravity max in user defined units such as "1.056 sg"
765: *
766: * @param string $displayOgMax
767: */
768: public function setDisplayOgMax($displayOgMax)
769: {
770: $this->displayOgMax = $displayOgMax;
771: }
772:
773: /**
774: * Original gravity max in user defined units such as "1.056 sg"
775: *
776: * @return string
777: */
778: public function getDisplayOgMax()
779: {
780: return $this->displayOgMax;
781: }
782:
783: /**
784: * Original gravity minimum in user defined units such as "1.036 sg".
785: *
786: * @param string $displayOgMin
787: */
788: public function setDisplayOgMin($displayOgMin)
789: {
790: $this->displayOgMin = $displayOgMin;
791: }
792:
793: /**
794: * Original gravity minimum in user defined units such as "1.036 sg".
795: *
796: * @return string
797: */
798: public function getDisplayOgMin()
799: {
800: return $this->displayOgMin;
801: }
802:
803: /**
804: * Final gravity range such as "1.010-1.015 sg"
805: *
806: * @param string $fgRange
807: */
808: public function setFgRange($fgRange)
809: {
810: $this->fgRange = $fgRange;
811: }
812:
813: /**
814: * Final gravity range such as "1.010-1.015 sg"
815: *
816: * @return string
817: */
818: public function getFgRange()
819: {
820: return $this->fgRange;
821: }
822:
823: /**
824: * Bitterness range in IBUs such as "10-20 IBU"
825: *
826: * @param string $ibuRange
827: */
828: public function setIbuRange($ibuRange)
829: {
830: $this->ibuRange = $ibuRange;
831: }
832:
833: /**
834: * Bitterness range in IBUs such as "10-20 IBU"
835: *
836: * @return string
837: */
838: public function getIbuRange()
839: {
840: return $this->ibuRange;
841: }
842:
843: /**
844: * Original gravity range for the style such as "1.030-1.040 sg"
845: *
846: * @param string $ogRange
847: */
848: public function setOgRange($ogRange)
849: {
850: $this->ogRange = $ogRange;
851: }
852:
853: /**
854: * Original gravity range for the style such as "1.030-1.040 sg"
855: *
856: * @return string
857: */
858: public function getOgRange()
859: {
860: return $this->ogRange;
861: }
862:
863: }
864: