fcmlib
v1.0.93
Published
Next Gen Flow Component Model
Downloads
151
Readme
��#� �F�C�M�
�
�
�
�T�h�i�s� �l�i�b�r�a�r�y� �a�l�l�o�w�s� �y�o�u� �t�o� �b�u�i�l�d� �f�l�o�w� �c�u�s�t�o�m� �c�o�m�p�o�n�e�n�t�s� �w�h�i�c�h� �t�a�r�g�e�t� �b�o�t�h� �t�h�e� �d�e�f�a�u�l�t� �a�n�d� �d�e�f�a�u�l�t�-�l�e�g�a�c�y� �p�l�a�y�e�r�s� �s�i�m�u�l�t�a�n�e�o�u�s�l�y�.�
�
�
�
�I�t� �w�o�r�k�s� �o�n� �t�h�e� �c�o�n�c�e�p�t� �t�h�a�t� �t�h�e�r�e� �i�s� �a� �b�a�s�e� �a�b�s�t�r�a�c�t� �c�l�a�s�s� �d�e�f�i�n�i�t�i�o�n� �c�a�l�l�e�d� �F�C�M�C�o�r�e� �t�h�a�t� �d�e�f�i�n�e�s� �a�l�l� �t�h�e� �m�e�t�h�o�d�s� �&� �p�r�o�p�e�r�t�i�e�s�.�
�
�
�
�T�h�e�r�e� �a�r�e� �t�h�e�n� �2� �e�x�t�e�n�s�i�o�n� �c�l�a�s�s�e�s� �t�o� �t�h�i�s� �(�F�C�M�L�e�g�a�c�y� �&� �F�C�M�N�e�w�)� �w�h�i�c�h� �h�a�n�d�l�e� �t�h�e� �i�n�t�e�r�a�c�t�i�o�n�s� �w�i�t�h� �t�h�e� �f�l�o�w� �p�l�a�y�e�r� �A�P�I�'�s�
�
�
�
�F�C�M�L�e�g�a�c�y� �c�o�n�v�e�r�t�s� �t�h�e� �l�e�g�a�c�y� �m�a�n�y�w�h�o� �j�a�v�a�s�c�r�i�p�t� �l�i�b�r�a�r�y� �i�n�t�o� �t�h�e� �F�C�M�C�o�r�e� �m�o�d�e�l�.�
�
�
�
�F�C�M�N�e�w� �c�o�n�v�e�r�t�s� �t�h�e� �n�e�w� �d�e�f�a�u�l�t� �p�l�a�y�e�r� �l�i�b�r�a�r�y� �t�o� �t�h�e� �F�C�M�C�o�r�e� �m�o�d�e�l�.�
�
�
�
�T�o� �m�a�k�e� �t�h�i�s� �a�l�l� �w�o�r�k� �w�e� �i�m�p�l�e�m�e�n�t� �o�u�r� �a�c�t�u�a�l� �c�o�m�p�o�n�e�n�t� �i�n� �a� �s�i�n�g�l�e� �T�S�X� �f�i�l�e� �e�x�p�o�s�i�n�g� �a� �R�e�a�c�t�.�C�o�m�p�o�n�e�n�t�<�a�n�y�,�a�n�y�>�.�
�
�
�
�W�e� �i�m�p�l�e�m�e�n�t� �o�u�r� �f�l�o�w� �c�o�m�p�o�n�e�n�t� �i�n� �2� �f�i�l�e�s� �f�o�r� �C�o�r�e� �&� �L�e�g�a�c�y�.�
�
�
�
�I� �u�s�e� �E�S�B�u�i�l�d� �t�o� �t�r�a�n�s�p�i�l�e�,� �h�o�s�t� �a�n�d� �p�a�c�k�a�g�e�.�
�
�
�
�e�.�g�.�
�
�
�
�'�'�'�
�
�
�
�
�
�#� �p�a�c�k�a�g�e�.�j�s�o�n� �F�i�l�e�
�
�
�
�A�n� �e�x�a�m�p�l�e� �o�f� �a� �p�a�c�k�a�g�e�.�j�s�o�n� �f�i�l�e�
�
��
��
�
�{�
�
� � �"�n�a�m�e�"�:� �"�m�y�c�o�m�p�"�,�
�
� � �"�v�e�r�s�i�o�n�"�:� �"�1�.�0�.�0�"�,�
�
� � �"�d�e�s�c�r�i�p�t�i�o�n�"�:� �"�M�y� �C�o�m�p�o�n�e�n�t�"�,�
�
� � �"�s�c�r�i�p�t�s�"�:� �{�
�
� � � � �"�s�t�a�r�t�"�:� �"�e�s�b�u�i�l�d� �.�/�s�r�c�/�M�y�C�l�a�s�s�N�e�w�.�t�s�x� �-�-�o�u�t�f�i�l�e�=�.�/�b�u�i�l�d�/�m�y�c�l�a�s�s�_�n�g�.�j�s� �-�-�s�o�u�r�c�e�m�a�p�=�b�o�t�h� �-�-�s�e�r�v�e�=�8�0�8�0� �-�-�s�e�r�v�e�d�i�r�=�b�u�i�l�d� �-�-�b�u�n�d�l�e� �-�-�f�o�r�m�a�t�=�e�s�m� �-�-�w�a�t�c�h�"�,�
�
� � � � �"�b�u�i�l�d�"�:� �"�e�s�b�u�i�l�d� �.�/�s�r�c�/�M�y�C�l�a�s�s�N�e�w�.�t�s�x� �-�-�o�u�t�f�i�l�e�=�.�/�b�u�i�l�d�/�m�y�c�l�a�s�s�_�n�g�.�j�s� �-�-�m�i�n�i�f�y� �-�-�b�u�n�d�l�e� � �-�-�f�o�r�m�a�t�=�e�s�m� �-�-�t�a�r�g�e�t�=�c�h�r�o�m�e�5�8�,�f�i�r�e�f�o�x�5�7�,�s�a�f�a�r�i�1�1�,�e�d�g�e�1�6�"�,�
�
� � � � �"�s�t�a�r�t�L�e�g�a�c�y�"�:� �"�e�s�b�u�i�l�d� �.�/�s�r�c�/�M�y�C�l�a�s�s�N�e�w�L�e�g�a�c�y�.�t�s�x� �-�-�o�u�t�f�i�l�e�=�.�/�b�u�i�l�d�/�m�y�c�l�a�s�s�_�l�e�g�.�j�s� �-�-�s�o�u�r�c�e�m�a�p�=�b�o�t�h� �-�-�s�e�r�v�e�=�8�0�8�0� �-�-�s�e�r�v�e�d�i�r�=�b�u�i�l�d� �-�-�b�u�n�d�l�e� �-�-�f�o�r�m�a�t�=�e�s�m� �-�-�w�a�t�c�h�"�,�
�
� � � � �"�b�u�i�l�d�L�e�g�a�c�y�"�:� �"�e�s�b�u�i�l�d� �.�/�s�r�c�/�M�y�C�l�a�s�s�N�e�w�L�e�g�a�c�y�.�t�s�x� �-�-�o�u�t�f�i�l�e�=�.�/�b�u�i�l�d�/�m�y�c�l�a�s�s�_�l�e�g�.�j�s� �-�-�m�i�n�i�f�y� �-�-�b�u�n�d�l�e� � �-�-�f�o�r�m�a�t�=�e�s�m� �-�-�t�a�r�g�e�t�=�c�h�r�o�m�e�5�8�,�f�i�r�e�f�o�x�5�7�,�s�a�f�a�r�i�1�1�,�e�d�g�e�1�6�"�,�
�
� � � � �"�b�u�i�l�d�A�l�l�"�:� �"�n�p�m� �r�u�n� �b�u�i�l�d� �&� �n�p�m� �r�u�n� �b�u�i�l�d�L�e�g�a�c�y�"�
�
� � �}�,�
�
� � �"�a�u�t�h�o�r�"�:� �"�B�o�o�m�i�"�,�
�
� � �"�l�i�c�e�n�s�e�"�:� �"�M�I�T�"�,�
�
� � �"�d�e�p�e�n�d�e�n�c�i�e�s�"�:� �{�
�
� � � � �"�f�c�m�l�i�b�"�:� �"�^�1�.�0�.�3�8�"�,�
�
� � � � �"�r�e�a�c�t�"�:� �"�1�8�.�2�.�0�"�
�
� � �}�,�
�
� � �"�d�e�v�D�e�p�e�n�d�e�n�c�i�e�s�"�:� �{�
�
� � � � �"�@�t�y�p�e�s�/�r�e�a�c�t�"�:� �"�^�1�8�.�2�.�2�8�"�,�
�
� � � � �"�e�s�b�u�i�l�d�"�:� �"�0�.�1�9�.�4�"�
�
� � �}�
�
�}�
�
�
��
�
�
�
�
�#� �t�s�c�o�n�f�i�g�.�j�s�o�n�
�
�
�
�A�n� �e�x�a�m�p�l�e� �o�f� �a� �p�a�c�k�a�g�e�.�j�s�o�n� �f�i�l�e�
�
��
��
�
�{�
�
� � �"�c�o�m�p�i�l�e�r�O�p�t�i�o�n�s�"�:� �{�
�
� � � � �"�o�u�t�D�i�r�"�:� �"�.�/�b�u�i�l�d�"�,�
�
� � � � �"�s�o�u�r�c�e�M�a�p�"�:� �t�r�u�e�,�
�
� � � � �"�n�o�I�m�p�l�i�c�i�t�A�n�y�"�:� �t�r�u�e�,�
�
� � � � �"�m�o�d�u�l�e�"�:� �"�c�o�m�m�o�n�j�s�"�,�
�
� � � � �"�t�a�r�g�e�t�"�:� �"�e�s�5�"�,�
�
� � � � �"�j�s�x�"�:� �"�r�e�a�c�t�"�,�
�
� � � � �"�d�o�w�n�l�e�v�e�l�I�t�e�r�a�t�i�o�n�"�:� �t�r�u�e�,�
�
� � � � �"�l�i�b�"�:� �[�
�
� � � � � � �"�e�s�2�0�1�5�"�,�
�
� � � � � � �"�d�o�m�"�
�
� � � � �]�,�
�
� � � � �"�s�k�i�p�L�i�b�C�h�e�c�k�"�:� �f�a�l�s�e�,�
�
� � � � �"�e�s�M�o�d�u�l�e�I�n�t�e�r�o�p�"�:� �t�r�u�e�
�
� � �}�,�
�
� � �"�i�n�c�l�u�d�e�"�:� �[�
�
� � � � �"�.�/�s�r�c�/�*�*�/�*�"�
�
� � �]�
�
�}�
�
�
��
�
�
�
�
�#� �L�e�g�a�c�y� �C�o�m�p�o�n�e�n�t� �D�e�f�i�n�i�t�i�o�n� �(�M�y�C�l�a�s�s�L�e�g�a�c�y�.�t�s�x�)�
�
�
�
��
��
�
�i�m�p�o�r�t� �{� �F�C�M�L�e�g�a�c�y� �}� �f�r�o�m� �"�f�c�m�l�i�b�/�l�i�b�/�F�C�M�L�e�g�a�c�y�"�;�
�
�i�m�p�o�r�t� �*� �a�s� �R�e�a�c�t� �f�r�o�m� �'�r�e�a�c�t�'�;�
�
�i�m�p�o�r�t� �{� �_�M�y�C�l�a�s�s� �}� �f�r�o�m� �"�.�/�M�y�C�l�a�s�s�"�;�
�
�d�e�c�l�a�r�e� �c�o�n�s�t� �m�a�n�y�w�h�o�:� �a�n�y�;�
�
�
�
�c�l�a�s�s� �M�y�C�l�a�s�s� �e�x�t�e�n�d�s� �F�C�M�L�e�g�a�c�y� �{�
�
�
�
� � � � �/�/�F�C�M�C�o�r�e� �w�i�l�l� �t�r�i�g�g�e�r� �t�h�i�s� �i�f� �w�e� �s�h�o�u�l�d� �u�p�d�a�t�e�
�
� � � � �r�e�d�r�a�w�(�)� �{�
�
� � � � � � � � �/�/� �c�a�l�l� �s�o�m�e�t�h�i�n�g� �o�n� �t�h�e� �r�e�a�l� �c�o�m�p�o�n�e�n�t� �t�o� �t�r�i�g�g�e�r� �a� �r�e�d�r�a�w�
�
� � � � � � � � �t�h�i�s�.�c�h�i�l�d�C�o�m�p�o�n�e�n�t�.�b�u�i�l�d�C�o�r�e�T�a�b�l�e�(�)�;�
�
� � � � �}�
�
�
�
� � � � �r�e�n�d�e�r�(�)� �{�
�
� � � � � � � � �r�e�t�u�r�n�(�
�
� � � � � � � � � � � � �<�_�M�y�C�l�a�s�s� �
�
� � � � � � � � � � � � � � � � �p�a�r�e�n�t�=�{�t�h�i�s�}�
�
� � � � � � � � � � � � � � � � �r�e�f�=�{�(�e�l�e�m�e�n�t�:� �a�n�y�)� �=�>� �{�t�h�i�s�.�c�h�i�l�d�C�o�m�p�o�n�e�n�t� �=� �e�l�e�m�e�n�t�}�}� �/�/� �h�e�r�e� �w�e� �a�r�e� �g�i�v�i�n�g� �F�C�M�C�o�r�e� �a� �r�e�f� �t�o� �o�u�r� �c�o�m�p�o�n�e�n�t�
�
� � � � � � � � � � � � �/�>�
�
� � � � � � � � �)�;�
�
� � � � �}�
�
�}�
�
�m�a�n�y�w�h�o�.�c�o�m�p�o�n�e�n�t�.�r�e�g�i�s�t�e�r�(�'�M�y�C�l�a�s�s�'�,� �M�y�C�l�a�s�s�)�;�
�
�
��
�
�
�
�
�#� �N�e�w� �C�o�m�p�o�n�e�n�t� �D�e�f�i�n�i�t�i�o�n� �(�M�y�C�l�a�s�s�N�e�w�.�t�s�x�)�
�
�
�
��
��
�
�i�m�p�o�r�t� �{� �F�C�M�N�e�w� �}� �f�r�o�m� �"�f�c�m�l�i�b�/�l�i�b�/�F�C�M�N�e�w�"�;�
�
�i�m�p�o�r�t� �*� �a�s� �R�e�a�c�t� �f�r�o�m� �'�r�e�a�c�t�'�;�
�
�i�m�p�o�r�t� �{� �_�M�y�C�l�a�s�s� �}� �f�r�o�m� �"�.�/�M�y�C�l�a�s�s�"�;�
�
�
�
�e�x�p�o�r�t� �d�e�f�a�u�l�t� �c�l�a�s�s� �C�a�s�c�a�d�i�n�g�C�o�m�b�o�s� �e�x�t�e�n�d�s� �F�C�M�N�e�w� �{�
�
�
�
� � � � �/�/�F�C�M�C�o�r�e� �w�i�l�l� �t�r�i�g�g�e�r� �t�h�i�s� �i�f� �w�e� �s�h�o�u�l�d� �u�p�d�a�t�e�
�
� � � � �r�e�d�r�a�w�(�)� �{�
�
� � � � � � � � �/�/� �c�a�l�l� �s�o�m�e�t�h�i�n�g� �o�n� �t�h�e� �r�e�a�l� �c�o�m�p�o�n�e�n�t� �t�o� �t�r�i�g�g�e�r� �a� �r�e�d�r�a�w�
�
� � � � � � � � �t�h�i�s�.�c�h�i�l�d�C�o�m�p�o�n�e�n�t�.�b�u�i�l�d�C�o�r�e�T�a�b�l�e�(�)�;�
�
� � � � �}�
�
�
�
� � � � �r�e�n�d�e�r�(�)� �{�
�
� � � � � � � � �r�e�t�u�r�n�(�
�
� � � � � � � � � � � � �<�_�M�y�C�l�a�s�s� �
�
� � � � � � � � � � � � � � � � �p�a�r�e�n�t�=�{�t�h�i�s�}�
�
� � � � � � � � � � � � � � � � �r�e�f�=�{�(�e�l�e�m�e�n�t�:� �a�n�y�)� �=�>� �{�t�h�i�s�.�c�h�i�l�d�C�o�m�p�o�n�e�n�t� �=� �e�l�e�m�e�n�t�}�}� �/�/� �h�e�r�e� �w�e� �a�r�e� �g�i�v�i�n�g� �F�C�M�C�o�r�e� �a� �r�e�f� �t�o� �o�u�r� �c�o�m�p�o�n�e�n�t�
�
� � � � � � � � � � � � �/�>�
�
� � � � � � � � �)�;�
�
� � � � �}�
�
�}�
�
�
��
�
�
�
�
�#� �A�c�t�u�a�l� �c�o�m�p�o�n�e�n�t� �i�m�p�l�e�m�e�n�t�a�t�i�o�n� �(�M�y�C�l�a�s�s�.�t�s�x�)�
�
�
�
��
��
�
�e�x�p�o�r�t� �c�l�a�s�s� �_�M�y�C�l�a�s�s� �e�x�t�e�n�d�s� �R�e�a�c�t�.�C�o�m�p�o�n�e�n�t�<�a�n�y�,�a�n�y�>� �{�
�
� � � � �c�o�m�p�o�n�e�n�t�:� �F�C�M�C�o�r�e�;�
�
�
�
� � � � �c�o�n�s�t�r�u�c�t�o�r�(�p�r�o�p�s�.�a�n�y�)� �{�
�
� � � � � � � � �s�u�p�e�r�(�p�r�o�p�s�)�;�
�
� � � � � � � � �t�h�i�s�.�c�o�m�p�o�n�e�n�t� �=� �p�r�o�p�s�.�p�r�o�p�s�.�p�a�r�e�n�t�;�
�
� � � � �}�
�
�
�
� � � � �r�e�n�d�e�r�(�)� �{�
�
�
�
� � � � � � � � �l�e�t� �c�l�a�s�s�e�s�:� �s�t�r�i�n�g� �=� �'�m�y�c�l�a�s�s� �'� �+� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�'�c�l�a�s�s�e�s�'�,� �'�'�)�;�
�
� � � � � � � � �c�o�n�s�t� �s�t�y�l�e�:� �C�S�S�P�r�o�p�e�r�t�i�e�s� �=� �{�}�;�
�
� � � � � � � � �s�t�y�l�e�.�w�i�d�t�h� �=� �'�f�i�t�-�c�o�n�t�e�n�t�'�;�
�
� � � � � � � � �s�t�y�l�e�.�h�e�i�g�h�t� �=� �'�f�i�t�-�c�o�n�t�e�n�t�'�;�
�
�
�
� � � � � � � � �i�f� �(�t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�i�s�V�i�s�i�b�l�e� �=�=�=� �f�a�l�s�e�)� �{�
�
� � � � � � � � � � � � �s�t�y�l�e�.�d�i�s�p�l�a�y� �=� �'�n�o�n�e�'�;�
�
� � � � � � � � �}�
�
� � � � � � � � �i�f� �(�t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�w�i�d�t�h�"�)�)� �{�
�
� � � � � � � � � � � � �s�t�y�l�e�.�w�i�d�t�h� �=� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�w�i�d�t�h�"�)�;�
�
� � � � � � � � �}�
�
� � � � � � � � �i�f� �(�t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�h�e�i�g�h�t�"�)�)� �{�
�
� � � � � � � � � � � � �s�t�y�l�e�.�h�e�i�g�h�t� �=� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�h�e�i�g�h�t�"�)�;�
�
� � � � � � � � �}�
�
� � � � � � � � �r�e�t�u�r�n� �(�
�
� � � � � � � � � � � � �<�d�i�v�
�
� � � � � � � � � � � � � � � � �c�l�a�s�s�N�a�m�e�=�{�c�l�a�s�s�e�s�}�
�
� � � � � � � � � � � � � � � � �s�t�y�l�e�=�{�s�t�y�l�e�}�
�
� � � � � � � � � � � � �>�
�
� � � � � � � � � � � � � � � � �"�H�e�l�l�o� �W�o�r�l�d�"�
�
� � � � � � � � � � � � �<�/�d�i�v�>�
�
� � � � � � � � �)�;�
�
� � � � �}�
�
�}�
�
�
��
�
�
�
�
�#� �I�n�t�e�r�f�a�c�e�
�
�
�
�W�e� �n�o�w� �h�a�v�e� �t�h�e� �a�b�i�l�i�t�y�,� �i�n� �t�h�e� �a�c�t�u�a�l� �c�o�m�p�o�n�e�n�t� �f�i�l�e� �(�M�y�C�l�a�s�s�.�t�s�x�)� �t�o� �u�s�e� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�x�x�x� �t�o� �i�n�t�e�r�a�c�t� �w�i�t�h� �t�h�e� �d�a�t�a� �d�e�l�i�v�e�r�e�d� �t�o� �u�s� �b�y� �F�l�o�w� �a�n�d� �t�h�e� �F�l�o�w� �s�e�r�v�e�r� �s�i�d�e� �s�t�a�t�e� �d�i�r�e�c�t�l�y�.�
�
�
�
�#�#� �C�o�r�e� �P�r�o�p�e�r�t�i�e�s�
�
�
�
�#�#�#� �i�d�
�
�
�
�T�h�e� �c�o�m�p�o�n�e�n�t�'�s� �g�u�i�d� �a�s� �c�r�e�a�t�e�d� �b�y� �F�l�o�w�.�
�
�
�
�#�#�#� �l�a�b�e�l�
�
�
�
�T�h�e� �c�o�m�p�o�n�e�n�t�'�s� �l�a�b�e�l� �s�t�r�i�n�g�.�
�
�
�
�#�#�#� �c�o�n�t�e�n�t�T�y�p�e�
�
�
�
�A�n� �e�C�o�n�t�e�n�t�T�y�p�e� �e�n�u�m�e�r�a�t�i�o�n� �o�f� �t�h�e� �s�t�a�t�e�'�s� �c�o�n�t�e�n�t� �t�y�p�e�.�
�
�
�
�#�#�#� �c�o�n�t�e�n�t�V�a�l�u�e�
�
�
�
�T�h�e� �c�o�m�p�o�n�e�n�t�'�s� �s�t�r�i�n�g� �s�t�a�t�e� �v�a�l�u�e� �i�f� �t�h�e� �s�t�a�t�e� �i�s� �a� �s�i�m�p�l�e� �t�y�p�e� �(�s�t�r�i�n�g�,� �n�u�m�b�e�r�,� �d�a�t�e�T�i�m�e�,� �b�o�o�l�e�a�n� �e�t�c�.�)�.�
�
�
�
�#�#�#� �o�b�j�e�c�t�D�a�t�a�
�
�
�
�T�h�e� �c�o�m�p�o�n�e�n�t�'�s� �d�a�t�a�S�o�u�r�c�e� �a�s� �a�n� �o�b�j�e�c�t�D�a�t�a�A�r�r�a�y� �i�f� �t�h�e� �m�o�d�e�l� �i�s� �a�n� �o�b�j�e�c�t�D�a�t�a� �o�r� �o�b�j�e�c�t�D�a�t�a�A�r�r�a�y�.�
�
�
�
�#�#�#� �g�e�t�O�r�i�g�i�n�a�l�S�t�a�t�e�V�a�l�u�e�(�)� �:� �s�t�r�i�n�g� �|� �b�o�o�l�e�a�n� �|� �n�u�m�b�e�r� �|� �D�a�t�e� �|� �F�l�o�w�O�b�j�e�c�t�D�a�t�a� �|� �F�l�o�w�O�b�j�e�c�t�D�a�t�a�A�r�r�a�y� �|� �u�n�d�e�f�i�n�e�d�
�
�
�
�G�e�t�s� �t�h�e� �c�o�m�p�o�n�e�n�t�'�s� �i�n�i�t�i�a�l� �s�t�a�t�e� �v�a�l�e� �a�s� �a� �r�e�a�l� �c�o�n�v�e�r�t�e�d� �t�y�p�e�.�
�
�
�
�#�#�#� �s�e�t�S�t�a�t�e�V�a�l�u�e�(�v�a�l�u�e�:� �s�t�r�i�n�g� �|� �b�o�o�l�e�a�n� �|� �n�u�m�b�e�r� �|� �D�a�t�e� �|� �F�l�o�w�O�b�j�e�c�t�D�a�t�a� �|� �F�l�o�w�O�b�j�e�c�t�D�a�t�a�A�r�r�a�y�)�
�
�
�
�S�e�t�s� �t�h�e� �c�o�m�p�o�n�e�n�t�'�s� �s�t�a�t�e� �v�a�l�u�e�.�
�
�
�
�#�#�#� �s�t�a�t�e�V�a�l�u�e� �:� �s�t�r�i�n�g� �|� �b�o�o�l�e�a�n� �|� �n�u�m�b�e�r� �|� �D�a�t�e� �|� �F�l�o�w�O�b�j�e�c�t�D�a�t�a� �|� �F�l�o�w�O�b�j�e�c�t�D�a�t�a�A�r�r�a�y�
�
�
�
�G�e�t�s� �t�h�e� �c�u�r�r�e�n�t� �v�a�l�u�e� �o�f� �t�h�e� �c�o�m�p�o�n�e�n�t�'�s� �s�t�a�t�e�.�
�
�
�
�T�h�e� �o�n�e� �y�o�u� �l�a�s�t� �s�e�t� �w�i�t�h� �s�e�t�S�t�a�t�e�V�a�l�u�e�(�)�.�
�
�
�
�#�#�#� �o�u�t�c�o�m�e�s� �:� �O�b�j�e�c�t� �
�
�
�
�A�n� �o�b�j�e�c�t� �w�i�t�h� �e�a�c�h� �o�u�t�c�o�m�e� �a�t�t�a�c�h�e�d� �t�o� �t�h�e� �c�o�m�p�o�n�e�n�t� �k�e�y�e�d� �o�n� �i�t�s� �d�e�v�e�l�o�p�e�r� �n�a�m�e�.�
�
�
�
�e�.�g�.�
�
��
��
�
�l�e�t� �o�c�:� �F�l�o�w�O�u�t�c�o�m�e� �=� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�o�u�t�c�o�m�e�s�[�"�O�u�t�c�o�m�e�N�a�m�e�"�]�
�
�
��
�
�
�o�r�
�
��
��
�
�O�b�j�e�c�t�.�k�e�y�s�(�t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�o�u�t�c�o�m�e�s�)�.�f�o�r�E�a�c�h�(�(�k�e�y�:� �s�t�r�i�n�g�)� �=�>� �{�
�
� � � � �l�e�t� �o�c�:� �F�l�o�w�O�u�t�c�o�m�e� �=� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�o�u�t�c�o�m�e�s�[�k�e�y�]�
�
�}�)�;�
�
�
��
�
�
�
�
�#�#�#� �a�s�y�n�c� �t�r�i�g�g�e�r�O�u�t�c�o�m�e�(�o�u�t�c�o�m�e�N�a�m�e�:� �s�t�r�i�n�g�)� �:� �P�r�o�m�i�s�e�<�a�n�y�>�
�
�
�
�T�h�i�s� �w�i�l�l� �t�r�i�g�g�e�r� �t�h�e� �o�u�t�c�o�m�e� �s�p�e�c�i�f�i�e�d� �b�y� �i�t�s� �d�e�v�e�l�o�p�e�r�N�a�m�e�.�
�
�
�
�I�t� �i�s� �a�w�a�i�t�-�a�b�l�e�.�
�
�
�
�#�#�#� �a�s�y�n�c� �g�e�t�V�a�l�u�e�(�n�a�m�e�:� �s�t�r�i�n�g�)� �:� �P�r�o�m�i�s�e�<�F�l�o�w�V�a�l�u�e�>�
�
�
�
�T�h�i�s� �w�i�l�l� �m�a�k�e� �a�n� �a�w�a�i�t�-�a�b�l�e� �c�a�l�l� �t�o� �d�i�r�e�c�t�l�y� �g�e�t� �a�n�y� �n�a�m�e�d� �v�a�l�u�e� �f�r�o�m� �t�h�e� �c�u�r�r�e�n�t� �F�l�o�w�'�s� �s�t�a�t�e�.�
�
�
�
�I�t� �d�i�r�e�c�t�l�y� �c�a�l�l�s� �t�h�e� �F�l�o�w� �R�E�S�T� �a�p�i�.�
�
�
�
�I�f� �t�h�e� �v�a�l�u�e� �(�N�a�m�e�d� �o�n� �i�t�'�s� �d�e�v�e�l�o�p�e�r�N�a�m�e�)� �i�s� �n�o�t� �i�n� �t�h�e� �s�t�a�t�e� �i�t� �w�i�l�l� �t�h�r�o�w� �a� �s�i�l�e�n�t� �c�o�n�s�o�l�e� �e�r�r�o�r� �a�n�d� �r�e�t�u�r�n� �a� �n�u�l�l�.�
�
�
�
�I�f� �s�u�c�c�e�s�s�f�u�l� �i�t� �w�i�l�l� �r�e�t�u�r�n� �a� �F�l�o�w�V�a�l�u�e� �o�b�j�e�c�t�.�
�
�
�
�#�#�#� �a�s�y�n�c� �s�e�t�V�a�l�u�e�(�F�l�o�w�V�a�l�u�e� �|� �F�l�o�w�V�a�l�u�e�[�]�)�
�
�
�
�T�h�i�s� �w�i�l�l� �m�a�k�e� �a�n� �a�w�a�i�t�-�a�b�l�e� �c�a�l�l� �t�o� �d�i�r�e�c�t�l�y� �u�p�d�a�t�e� �t�h�e� �F�l�o�w�V�a�l�u�e� �i�n�t�o� �t�h�e� �c�u�r�r�e�n�t� �F�l�o�w�'�s� �s�t�a�t�e�.�
�
�
�
�I�t� �d�i�r�e�c�t�l�y� �c�a�l�l�s� �t�h�e� �F�l�o�w� �R�E�S�T� �a�p�i�.�
�
�
�
�e�.�g�.�
�
��
��
�
�l�e�t� �v�a�l�:� �F�l�o�w�V�a�l�u�e� �=� �a�w�a�i�t� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�g�e�t�V�a�l�u�e�(�"�M�y�V�a�l�u�e�"�)�;�
�
�i�f�(�v�a�l�)� �{�
�
� � � � �v�a�l�.�v�a�l�u�e� �=� �"�H�e�l�l�o� �W�o�r�l�d�"�;�
�
� � � � �/�/�o�r�
�
� � � � �v�a�l�.�v�a�l�u�e� �=� �s�o�m�e�O�b�j�e�c�t�D�a�t�a�O�r�A�r�r�a�y�;�
�
� � � � �a�w�a�i�t� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�s�e�t�V�a�l�u�e�(�v�a�l�)�;�
�
�}�
�
�
��
�
�
�
�
�#�#�#� �a�s�y�n�c� �i�n�f�l�a�t�e�V�a�l�u�e�(�v�a�l�u�e�:� �s�t�r�i�n�g�)� �:� �P�r�o�m�i�s�e�<�s�t�r�i�n�g�>�
�
�
�
�T�h�i�s� �a�w�a�i�t�a�b�l�e� �f�u�n�c�t�i�o�n� �w�i�l�l� �a�t�t�e�m�p�t� �t�o� �e�x�t�r�a�c�t� �a� �p�a�r�t� �o�f� �a� �F�l�o�w� �v�a�l�u�e�.�
�
�
�
�W�e� �p�a�s�s� �i�t� �{�{�M�y�V�a�l�u�e�}�}� �o�r� �{�{�M�y�V�a�l�u�e�-�>�P�r�o�p�e�r�t�y�}�}� �o�r� �{�{�M�y�V�a�l�u�e�-�>�P�r�o�p�e�r�t�y�-�>�p�r�o�p�e�r�t�y�}�}� �e�t�c�.�
�
�
�
�I�t� �w�i�l�l� �r�e�t�r�i�e�v�e� �t�h�e� �F�l�o�w�V�a�l�u�e� �"�M�y�V�a�l�u�e�"� �i�f� �n�o�t� �p�r�e�v�i�o�u�s�l�y� �r�e�t�r�i�e�v�e�d� �t�h�e�n� �i�t�e�r�a�t�e� �d�o�w�n� �t�h�r�o�u�g�h� �i�t�'�s� �p�r�o�p�e�r�i�e�s� �t�o� �g�e�t� �t�h�e� �i�n�d�i�c�a�t�e�d� �o�n�e�.�
�
�
�
�G�r�e�a�t� �i�f� �y�o�u� �w�a�n�t� �t�o� �p�a�s�s� �a� �c�o�m�p�l�e�x� �v�a�l�u�e� �i�n� �a�n� �a�t�t�r�i�b�u�t�e�.�
�
�
�
�
�
�#�#�#� �g�e�t�A�t�t�r�i�b�u�t�e�(�A�t�t�r�i�b�u�t�e�N�a�m�e�,� �d�e�f�a�u�l�t�V�a�l�u�e�)� �:� �s�t�r�i�n�g�;�
�
�
�
�T�h�i�s� �w�i�l�l� �g�e�t� �t�h�e� �v�a�l�u�e� �o�f� �t�h�e� �n�a�m�e�d� �a�t�t�r�i�b�u�t�e� �f�r�o�m� �t�h�e� �c�o�m�p�o�n�e�n�t�.�
�
�
�
�I�f� �i�t� �i�s� �n�o�t� �d�e�f�i�n�e�d� �t�h�e�n� �t�h�e� �d�e�f�a�u�l�t�V�a�l�u�e� �w�i�l�l� �b�e� �r�e�t�u�r�n�e�d� �o�r� �n�u�l�l� �i�f� �n�o� �d�e�f�a�u�l�t� �i�s� �s�p�e�c�i�f�i�e�d�.�
�
�
�
�e�.�g�.� �
�
��
��
�
�l�e�t� �m�y�B�o�o�l�:� �b�o�o�l�e�a�n� �=� �t�h�i�s�.�c�o�m�p�o�n�e�n�t�.�g�e�t�A�t�t�r�i�b�u�t�e�(�"�m�y�B�o�o�l�"�,�"�f�a�l�s�e�"�)� �=�=�=� �"�t�r�u�e�"�;�
�
�
��
�
�
�
�
�#�#�#� �O�t�h�e�r�s�
�
�
�
�T�h�e�r�e� �a�r�e� �v�a�r�i�o�u�s� �o�t�h�e�r� �c�o�m�p�o�n�e�n�t� �c�o�n�f�i�g�u�r�a�t�i�o�n� �a�t�t�r�i�b�u�t�e�s� �e�x�p�o�s�e�d� �l�i�k�e� �v�i�s�i�b�i�l�i�t�y�,� �d�e�v�e�l�o�p�e�r�N�a�m�e�,� �a�u�t�h�e�n�t�i�c�a�t�i�o�n�T�o�k�e�n�,� �c�u�r�r�e�n�t�M�a�p�E�l�e�m�e�n�t�I�d� �a�n�d� �m�o�r�e�.�
�
�
�
�#� �O�t�h�e�r� �C�l�a�s�s�e�s�
�
�
�
�V�a�r�i�o�u�s� �o�t�h�e�r� �c�l�a�s�s�e�s� �a�r�e� �e�x�p�o�s�e�d� �a�s� �h�e�l�p�e�r�s� �a�n�d� �E�n�u�m�s�.�
�
�
�
�#�#� �F�l�o�w�O�b�j�e�c�t�D�a�t�a�
�
�#�#� �F�l�o�w�O�b�j�e�c�t�D�a�t�a�A�r�r�a�y�
�
�#�#� �F�l�o�w�D�i�s�p�l�a�y�C�o�l�u�m�n�
�
�#�#� �F�l�o�w�O�u�t�c�o�m�e�
�
�#�#� �F�l�o�w�A�t�t�r�i�b�u�t�e�
�
�#�#� �F�l�o�w�V�a�l�u�e�
�
�#�#� �e�C�o�n�t�e�n�t�T�y�p�e�