1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="UTF-8"> 5<title>sampleFile - OpenGrok cross reference for /sampleFile</title></head><body> 6<script type="text/javascript">/* <![CDATA[ */ 7function get_sym_list(){return [["Namespace","xn",[["koans.23-meta",195]]]];} /* ]]> */</script><a class="l" name="1" href="#1">1</a><span class="c">; Eclipse Public License, Version 1.0 (EPL-1.0) (plain text) THE ACCOMPANYING</span> 8<a class="l" name="2" href="#2">2</a><span class="c">; PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE</span> 9<a class="l" name="3" href="#3">3</a><span class="c">; ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM</span> 10<a class="l" name="4" href="#4">4</a><span class="c">; CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</span> 11<a class="l" name="5" href="#5">5</a><span class="c">;</span> 12<a class="l" name="6" href="#6">6</a><span class="c">; 1. DEFINITIONS</span> 13<a class="l" name="7" href="#7">7</a><span class="c">;</span> 14<a class="l" name="8" href="#8">8</a><span class="c">; "Contribution" means:</span> 15<a class="l" name="9" href="#9">9</a><span class="c">;</span> 16<a class="hl" name="10" href="#10">10</a><span class="c">; a) in the case of the initial Contributor, the initial code and</span> 17<a class="l" name="11" href="#11">11</a><span class="c">; documentation distributed under this Agreement, and b) in the case of each</span> 18<a class="l" name="12" href="#12">12</a><span class="c">; subsequent Contributor: i) changes to the Program, and ii) additions to the</span> 19<a class="l" name="13" href="#13">13</a><span class="c">; Program; where such changes <a href="/source/s?path=and/">and</a>/<a href="/source/s?path=and/or">or</a> additions to the Program originate from</span> 20<a class="l" name="14" href="#14">14</a><span class="c">; and are distributed by that particular Contributor. A Contribution</span> 21<a class="l" name="15" href="#15">15</a><span class="c">; 'originates' from a Contributor if it was added to the Program by such</span> 22<a class="l" name="16" href="#16">16</a><span class="c">; Contributor itself or anyone acting on such Contributor's behalf.</span> 23<a class="l" name="17" href="#17">17</a><span class="c">; Contributions do not include additions to the Program which: (i) are</span> 24<a class="l" name="18" href="#18">18</a><span class="c">; separate modules of software distributed in conjunction with the Program</span> 25<a class="l" name="19" href="#19">19</a><span class="c">; under their own license agreement, and (ii) are not derivative works of the</span> 26<a class="hl" name="20" href="#20">20</a><span class="c">; Program. "Contributor" means any person or entity that distributes the</span> 27<a class="l" name="21" href="#21">21</a><span class="c">; Program.</span> 28<a class="l" name="22" href="#22">22</a><span class="c">;</span> 29<a class="l" name="23" href="#23">23</a><span class="c">; "Licensed Patents " mean patent claims licensable by a Contributor which are</span> 30<a class="l" name="24" href="#24">24</a><span class="c">; necessarily infringed by the use or sale of its Contribution alone or when</span> 31<a class="l" name="25" href="#25">25</a><span class="c">; combined with the Program.</span> 32<a class="l" name="26" href="#26">26</a><span class="c">;</span> 33<a class="l" name="27" href="#27">27</a><span class="c">; "Program" means the Contributions distributed in accordance with this</span> 34<a class="l" name="28" href="#28">28</a><span class="c">; Agreement.</span> 35<a class="l" name="29" href="#29">29</a><span class="c">;</span> 36<a class="hl" name="30" href="#30">30</a><span class="c">; "Recipient" means anyone who receives the Program under this Agreement,</span> 37<a class="l" name="31" href="#31">31</a><span class="c">; including all Contributors.</span> 38<a class="l" name="32" href="#32">32</a><span class="c">;</span> 39<a class="l" name="33" href="#33">33</a><span class="c">; 2. GRANT OF RIGHTS</span> 40<a class="l" name="34" href="#34">34</a><span class="c">;</span> 41<a class="l" name="35" href="#35">35</a><span class="c">; a) Subject to the terms of this Agreement, each Contributor hereby grants</span> 42<a class="l" name="36" href="#36">36</a><span class="c">; Recipient a non-exclusive, worldwide, royalty-free copyright license to</span> 43<a class="l" name="37" href="#37">37</a><span class="c">; reproduce, prepare derivative works of, publicly display, publicly perform,</span> 44<a class="l" name="38" href="#38">38</a><span class="c">; distribute and sublicense the Contribution of such Contributor, if any, and</span> 45<a class="l" name="39" href="#39">39</a><span class="c">; such derivative works, in source code and object code form. b) Subject to</span> 46<a class="hl" name="40" href="#40">40</a><span class="c">; the terms of this Agreement, each Contributor hereby grants Recipient a</span> 47<a class="l" name="41" href="#41">41</a><span class="c">; non-exclusive, worldwide, royalty-free patent license under Licensed Patents</span> 48<a class="l" name="42" href="#42">42</a><span class="c">; to make, use, sell, offer to sell, import and otherwise transfer the</span> 49<a class="l" name="43" href="#43">43</a><span class="c">; Contribution of such Contributor, if any, in source code and object code</span> 50<a class="l" name="44" href="#44">44</a><span class="c">; form. This patent license shall apply to the combination of the Contribution</span> 51<a class="l" name="45" href="#45">45</a><span class="c">; and the Program if, at the time the Contribution is added by the</span> 52<a class="l" name="46" href="#46">46</a><span class="c">; Contributor, such addition of the Contribution causes such combination to be</span> 53<a class="l" name="47" href="#47">47</a><span class="c">; covered by the Licensed Patents. The patent license shall not apply to any</span> 54<a class="l" name="48" href="#48">48</a><span class="c">; other combinations which include the Contribution. No hardware per se is</span> 55<a class="l" name="49" href="#49">49</a><span class="c">; licensed hereunder. c) Recipient understands that although each Contributor</span> 56<a class="hl" name="50" href="#50">50</a><span class="c">; grants the licenses to its Contributions set forth herein, no assurances are</span> 57<a class="l" name="51" href="#51">51</a><span class="c">; provided by any Contributor that the Program does not infringe the patent or</span> 58<a class="l" name="52" href="#52">52</a><span class="c">; other intellectual property rights of any other entity. Each Contributor</span> 59<a class="l" name="53" href="#53">53</a><span class="c">; disclaims any liability to Recipient for claims brought by any other entity</span> 60<a class="l" name="54" href="#54">54</a><span class="c">; based on infringement of intellectual property rights or otherwise. As a</span> 61<a class="l" name="55" href="#55">55</a><span class="c">; condition to exercising the rights and licenses granted hereunder, each</span> 62<a class="l" name="56" href="#56">56</a><span class="c">; Recipient hereby assumes sole responsibility to secure any other</span> 63<a class="l" name="57" href="#57">57</a><span class="c">; intellectual property rights needed, if any. For example, if a third party</span> 64<a class="l" name="58" href="#58">58</a><span class="c">; patent license is required to allow Recipient to distribute the Program, it</span> 65<a class="l" name="59" href="#59">59</a><span class="c">; is Recipient's responsibility to acquire that license before distributing</span> 66<a class="hl" name="60" href="#60">60</a><span class="c">; the Program. d) Each Contributor represents that to its knowledge it has</span> 67<a class="l" name="61" href="#61">61</a><span class="c">; sufficient copyright rights in its Contribution, if any, to grant the</span> 68<a class="l" name="62" href="#62">62</a><span class="c">; copyright license set forth in this Agreement.</span> 69<a class="l" name="63" href="#63">63</a><span class="c">;</span> 70<a class="l" name="64" href="#64">64</a><span class="c">; 3. REQUIREMENTS</span> 71<a class="l" name="65" href="#65">65</a><span class="c">;</span> 72<a class="l" name="66" href="#66">66</a><span class="c">; A Contributor may choose to distribute the Program in object code form under</span> 73<a class="l" name="67" href="#67">67</a><span class="c">; its own license agreement, provided that:</span> 74<a class="l" name="68" href="#68">68</a><span class="c">;</span> 75<a class="l" name="69" href="#69">69</a><span class="c">; a) it complies with the terms and conditions of this Agreement; and b) its</span> 76<a class="hl" name="70" href="#70">70</a><span class="c">; license agreement: i) effectively disclaims on behalf of all Contributors</span> 77<a class="l" name="71" href="#71">71</a><span class="c">; all warranties and conditions, express and implied, including warranties or</span> 78<a class="l" name="72" href="#72">72</a><span class="c">; conditions of title and non-infringement, and implied warranties or</span> 79<a class="l" name="73" href="#73">73</a><span class="c">; conditions of merchantability and fitness for a particular purpose; ii)</span> 80<a class="l" name="74" href="#74">74</a><span class="c">; effectively excludes on behalf of all Contributors all liability for</span> 81<a class="l" name="75" href="#75">75</a><span class="c">; damages, including direct, indirect, special, incidental and consequential</span> 82<a class="l" name="76" href="#76">76</a><span class="c">; damages, such as lost profits; iii) states that any provisions which differ</span> 83<a class="l" name="77" href="#77">77</a><span class="c">; from this Agreement are offered by that Contributor alone and not by any</span> 84<a class="l" name="78" href="#78">78</a><span class="c">; other party; and iv) states that source code for the Program is available</span> 85<a class="l" name="79" href="#79">79</a><span class="c">; from such Contributor, and informs licensees how to obtain it in a</span> 86<a class="hl" name="80" href="#80">80</a><span class="c">; reasonable manner on or through a medium customarily used for software</span> 87<a class="l" name="81" href="#81">81</a><span class="c">; exchange. When the Program is made available in source code form:</span> 88<a class="l" name="82" href="#82">82</a><span class="c">;</span> 89<a class="l" name="83" href="#83">83</a><span class="c">; a) it must be made available under this Agreement; and b) a copy of this</span> 90<a class="l" name="84" href="#84">84</a><span class="c">; Agreement must be included with each copy of the Program. Contributors may</span> 91<a class="l" name="85" href="#85">85</a><span class="c">; not remove or alter any copyright notices contained within the Program. Each</span> 92<a class="l" name="86" href="#86">86</a><span class="c">; Contributor must identify itself as the originator of its Contribution, if</span> 93<a class="l" name="87" href="#87">87</a><span class="c">; any, in a manner that reasonably allows subsequent Recipients to identify</span> 94<a class="l" name="88" href="#88">88</a><span class="c">; the originator of the Contribution.</span> 95<a class="l" name="89" href="#89">89</a><span class="c">;</span> 96<a class="hl" name="90" href="#90">90</a><span class="c">; 4. COMMERCIAL DISTRIBUTION</span> 97<a class="l" name="91" href="#91">91</a><span class="c">;</span> 98<a class="l" name="92" href="#92">92</a><span class="c">; Commercial distributors of software may accept certain responsibilities with</span> 99<a class="l" name="93" href="#93">93</a><span class="c">; respect to end users, business partners and the like. While this license is</span> 100<a class="l" name="94" href="#94">94</a><span class="c">; intended to facilitate the commercial use of the Program, the Contributor</span> 101<a class="l" name="95" href="#95">95</a><span class="c">; who includes the Program in a commercial product offering should do so in a</span> 102<a class="l" name="96" href="#96">96</a><span class="c">; manner which does not create potential liability for other Contributors.</span> 103<a class="l" name="97" href="#97">97</a><span class="c">; Therefore, if a Contributor includes the Program in a commercial product</span> 104<a class="l" name="98" href="#98">98</a><span class="c">; offering, such Contributor ("Commercial Contributor") hereby agrees to</span> 105<a class="l" name="99" href="#99">99</a><span class="c">; defend and indemnify every other Contributor ("Indemnified Contributor")</span> 106<a class="hl" name="100" href="#100">100</a><span class="c">; against any losses, damages and costs (collectively "Losses") arising from</span> 107<a class="l" name="101" href="#101">101</a><span class="c">; claims, lawsuits and other legal actions brought by a third party against</span> 108<a class="l" name="102" href="#102">102</a><span class="c">; the Indemnified Contributor to the extent caused by the acts or omissions of</span> 109<a class="l" name="103" href="#103">103</a><span class="c">; such Commercial Contributor in connection with its distribution of the</span> 110<a class="l" name="104" href="#104">104</a><span class="c">; Program in a commercial product offering. The obligations in this section do</span> 111<a class="l" name="105" href="#105">105</a><span class="c">; not apply to any claims or Losses relating to any actual or alleged</span> 112<a class="l" name="106" href="#106">106</a><span class="c">; intellectual property infringement. In order to qualify, an Indemnified</span> 113<a class="l" name="107" href="#107">107</a><span class="c">; Contributor must: a) promptly notify the Commercial Contributor in writing</span> 114<a class="l" name="108" href="#108">108</a><span class="c">; of such claim, and b) allow the Commercial Contributor to control, and</span> 115<a class="l" name="109" href="#109">109</a><span class="c">; cooperate with the Commercial Contributor in, the defense and any related</span> 116<a class="hl" name="110" href="#110">110</a><span class="c">; settlement negotiations. The Indemnified Contributor may participate in any</span> 117<a class="l" name="111" href="#111">111</a><span class="c">; such claim at its own expense.</span> 118<a class="l" name="112" href="#112">112</a><span class="c">;</span> 119<a class="l" name="113" href="#113">113</a><span class="c">; For example, a Contributor might include the Program in a commercial product</span> 120<a class="l" name="114" href="#114">114</a><span class="c">; offering, Product X. That Contributor is then a Commercial Contributor. If</span> 121<a class="l" name="115" href="#115">115</a><span class="c">; that Commercial Contributor then makes performance claims, or offers</span> 122<a class="l" name="116" href="#116">116</a><span class="c">; warranties related to Product X, those performance claims and warranties are</span> 123<a class="l" name="117" href="#117">117</a><span class="c">; such Commercial Contributor's responsibility alone. Under this section, the</span> 124<a class="l" name="118" href="#118">118</a><span class="c">; Commercial Contributor would have to defend claims against the other</span> 125<a class="l" name="119" href="#119">119</a><span class="c">; Contributors related to those performance claims and warranties, and if a</span> 126<a class="hl" name="120" href="#120">120</a><span class="c">; court requires any other Contributor to pay any damages as a result, the</span> 127<a class="l" name="121" href="#121">121</a><span class="c">; Commercial Contributor must pay those damages.</span> 128<a class="l" name="122" href="#122">122</a><span class="c">;</span> 129<a class="l" name="123" href="#123">123</a><span class="c">; 5. NO WARRANTY</span> 130<a class="l" name="124" href="#124">124</a><span class="c">;</span> 131<a class="l" name="125" href="#125">125</a><span class="c">; EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON</span> 132<a class="l" name="126" href="#126">126</a><span class="c">; AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER</span> 133<a class="l" name="127" href="#127">127</a><span class="c">; EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR</span> 134<a class="l" name="128" href="#128">128</a><span class="c">; CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A</span> 135<a class="l" name="129" href="#129">129</a><span class="c">; PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the</span> 136<a class="hl" name="130" href="#130">130</a><span class="c">; appropriateness of using and distributing the Program and assumes all risks</span> 137<a class="l" name="131" href="#131">131</a><span class="c">; associated with its exercise of rights under this Agreement , including but</span> 138<a class="l" name="132" href="#132">132</a><span class="c">; not limited to the risks and costs of program errors, compliance with</span> 139<a class="l" name="133" href="#133">133</a><span class="c">; applicable laws, damage to or loss of data, programs or equipment, and</span> 140<a class="l" name="134" href="#134">134</a><span class="c">; unavailability or interruption of operations.</span> 141<a class="l" name="135" href="#135">135</a><span class="c">;</span> 142<a class="l" name="136" href="#136">136</a><span class="c">; 6. DISCLAIMER OF LIABILITY</span> 143<a class="l" name="137" href="#137">137</a><span class="c">;</span> 144<a class="l" name="138" href="#138">138</a><span class="c">; EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY</span> 145<a class="l" name="139" href="#139">139</a><span class="c">; CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span> 146<a class="hl" name="140" href="#140">140</a><span class="c">; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION</span> 147<a class="l" name="141" href="#141">141</a><span class="c">; LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span> 148<a class="l" name="142" href="#142">142</a><span class="c">; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span> 149<a class="l" name="143" href="#143">143</a><span class="c">; ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE</span> 150<a class="l" name="144" href="#144">144</a><span class="c">; EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY</span> 151<a class="l" name="145" href="#145">145</a><span class="c">; OF SUCH DAMAGES.</span> 152<a class="l" name="146" href="#146">146</a><span class="c">;</span> 153<a class="l" name="147" href="#147">147</a><span class="c">; 7. GENERAL</span> 154<a class="l" name="148" href="#148">148</a><span class="c">;</span> 155<a class="l" name="149" href="#149">149</a><span class="c">; If any provision of this Agreement is invalid or unenforceable under</span> 156<a class="hl" name="150" href="#150">150</a><span class="c">; applicable law, it shall not affect the validity or enforceability of the</span> 157<a class="l" name="151" href="#151">151</a><span class="c">; remainder of the terms of this Agreement, and without further action by the</span> 158<a class="l" name="152" href="#152">152</a><span class="c">; parties hereto, such provision shall be reformed to the minimum extent</span> 159<a class="l" name="153" href="#153">153</a><span class="c">; necessary to make such provision valid and enforceable.</span> 160<a class="l" name="154" href="#154">154</a><span class="c">;</span> 161<a class="l" name="155" href="#155">155</a><span class="c">; If Recipient institutes patent litigation against any entity (including a</span> 162<a class="l" name="156" href="#156">156</a><span class="c">; cross-claim or counterclaim in a lawsuit) alleging that the Program itself</span> 163<a class="l" name="157" href="#157">157</a><span class="c">; (excluding combinations of the Program with other software or hardware)</span> 164<a class="l" name="158" href="#158">158</a><span class="c">; infringes such Recipient's patent(s), then such Recipient's rights granted</span> 165<a class="l" name="159" href="#159">159</a><span class="c">; under Section 2(b) shall terminate as of the date such litigation is filed.</span> 166<a class="hl" name="160" href="#160">160</a><span class="c">;</span> 167<a class="l" name="161" href="#161">161</a><span class="c">; All Recipient's rights under this Agreement shall terminate if it fails to</span> 168<a class="l" name="162" href="#162">162</a><span class="c">; comply with any of the material terms or conditions of this Agreement and</span> 169<a class="l" name="163" href="#163">163</a><span class="c">; does not cure such failure in a reasonable period of time after becoming</span> 170<a class="l" name="164" href="#164">164</a><span class="c">; aware of such noncompliance. If all Recipient's rights under this Agreement</span> 171<a class="l" name="165" href="#165">165</a><span class="c">; terminate, Recipient agrees to cease use and distribution of the Program as</span> 172<a class="l" name="166" href="#166">166</a><span class="c">; soon as reasonably practicable. However, Recipient's obligations under this</span> 173<a class="l" name="167" href="#167">167</a><span class="c">; Agreement and any licenses granted by Recipient relating to the Program</span> 174<a class="l" name="168" href="#168">168</a><span class="c">; shall continue and survive.</span> 175<a class="l" name="169" href="#169">169</a><span class="c">;</span> 176<a class="hl" name="170" href="#170">170</a><span class="c">; Everyone is permitted to copy and distribute copies of this Agreement, but</span> 177<a class="l" name="171" href="#171">171</a><span class="c">; in order to avoid inconsistency the Agreement is copyrighted and may only be</span> 178<a class="l" name="172" href="#172">172</a><span class="c">; modified in the following manner. The Agreement Steward reserves the right</span> 179<a class="l" name="173" href="#173">173</a><span class="c">; to publish new versions (including revisions) of this Agreement from time to</span> 180<a class="l" name="174" href="#174">174</a><span class="c">; time. No one other than the Agreement Steward has the right to modify this</span> 181<a class="l" name="175" href="#175">175</a><span class="c">; Agreement. The Eclipse Foundation is the initial Agreement Steward. The</span> 182<a class="l" name="176" href="#176">176</a><span class="c">; Eclipse Foundation may assign the responsibility to serve as the Agreement</span> 183<a class="l" name="177" href="#177">177</a><span class="c">; Steward to a suitable separate entity. Each new version of the Agreement</span> 184<a class="l" name="178" href="#178">178</a><span class="c">; will be given a distinguishing version number. The Program (including</span> 185<a class="l" name="179" href="#179">179</a><span class="c">; Contributions) may always be distributed subject to the version of the</span> 186<a class="hl" name="180" href="#180">180</a><span class="c">; Agreement under which it was received. In addition, after a new version of</span> 187<a class="l" name="181" href="#181">181</a><span class="c">; the Agreement is published, Contributor may elect to distribute the Program</span> 188<a class="l" name="182" href="#182">182</a><span class="c">; (including its Contributions) under the new version. Except as expressly</span> 189<a class="l" name="183" href="#183">183</a><span class="c">; stated in Sections 2(a) and 2(b) above, Recipient receives no rights or</span> 190<a class="l" name="184" href="#184">184</a><span class="c">; licenses to the intellectual property of any Contributor under this</span> 191<a class="l" name="185" href="#185">185</a><span class="c">; Agreement, whether expressly, by implication, estoppel or otherwise. All</span> 192<a class="l" name="186" href="#186">186</a><span class="c">; rights in the Program not expressly granted under this Agreement are</span> 193<a class="l" name="187" href="#187">187</a><span class="c">; reserved.</span> 194<a class="l" name="188" href="#188">188</a><span class="c">;</span> 195<a class="l" name="189" href="#189">189</a><span class="c">; This Agreement is governed by the laws of the State of New York and the</span> 196<a class="hl" name="190" href="#190">190</a><span class="c">; intellectual property laws of the United States of America. No party to this</span> 197<a class="l" name="191" href="#191">191</a><span class="c">; Agreement will bring a legal action under this Agreement more than one year</span> 198<a class="l" name="192" href="#192">192</a><span class="c">; after the cause of action arose. Each party waives its rights to a jury</span> 199<a class="l" name="193" href="#193">193</a><span class="c">; trial in any resulting litigation.</span> 200<a class="l" name="194" href="#194">194</a> 201<a class="l" name="195" href="#195">195</a>(<b>ns</b> <a class="xn" name="koans.23-meta"/><a href="/source/s?refs=koans.23%5C-meta" class="xn intelliWindow-symbol" data-definition-place="def">koans.23-meta</a> 202<a class="l" name="196" href="#196">196</a> (<a href="/source/s?defs=%5C%3Arequire" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:require</a> [<a href="/source/s?defs=koan%5C-engine.core" class="intelliWindow-symbol" data-definition-place="undefined-in-file">koan-engine.core</a> <a href="/source/s?defs=%5C%3Arefer" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:refer</a> <a href="/source/s?defs=%5C%3Aall" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:all</a>])) 203<a class="l" name="197" href="#197">197</a> 204<a class="l" name="198" href="#198">198</a>(<b>def</b> <a class="d" name="giants"/><a href="/source/s?refs=giants" class="d intelliWindow-symbol" data-definition-place="def">giants</a> 205<a class="l" name="199" href="#199">199</a> (<b>with-meta</b> '<a href="/source/s?defs=Giants" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Giants</a> 206<a class="hl" name="200" href="#200">200</a> {<a href="/source/s?defs=%5C%3Aleague" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:league</a> <span class="s">"National League"</span>})) 207<a class="l" name="201" href="#201">201</a> 208<a class="l" name="202" href="#202">202</a>(<a href="/source/s?defs=meditations" class="intelliWindow-symbol" data-definition-place="undefined-in-file">meditations</a> 209<a class="l" name="203" href="#203">203</a> <span class="s">"Some objects can be tagged using the with-meta function"</span> 210<a class="l" name="204" href="#204">204</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (<b>meta</b> <a class="d intelliWindow-symbol" href="#giants" data-definition-place="defined-in-file">giants</a>)) 211<a class="l" name="205" href="#205">205</a> 212<a class="l" name="206" href="#206">206</a> <span class="s">"Or more succinctly with a reader macro"</span> 213<a class="l" name="207" href="#207">207</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (<b>meta</b> '^{<a href="/source/s?defs=%5C%3Adivision" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:division</a> <span class="s">"West"</span>} <a href="/source/s?defs=Giants" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Giants</a>)) 214<a class="l" name="208" href="#208">208</a> 215<a class="l" name="209" href="#209">209</a> <span class="s">"While others can't"</span> 216<a class="hl" name="210" href="#210">210</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (<b>try</b> 217<a class="l" name="211" href="#211">211</a> (<b>with-meta</b> 218<a class="l" name="212" href="#212">212</a> <span class="n">2</span> 219<a class="l" name="213" href="#213">213</a> {<a href="/source/s?defs=%5C%3Aprime" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:prime</a> <b>true</b>}) 220<a class="l" name="214" href="#214">214</a> (<a href="/source/s?defs=catch" class="intelliWindow-symbol" data-definition-place="undefined-in-file">catch</a> <a href="/source/s?defs=ClassCastException" class="intelliWindow-symbol" data-definition-place="undefined-in-file">ClassCastException</a> <a href="/source/s?defs=e" class="intelliWindow-symbol" data-definition-place="undefined-in-file">e</a> 221<a class="l" name="215" href="#215">215</a> <span class="s">"This doesn't implement the IObj interface"</span>))) 222<a class="l" name="216" href="#216">216</a> 223<a class="l" name="217" href="#217">217</a> <span class="s">"Notice when metadata carries over"</span> 224<a class="l" name="218" href="#218">218</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (<b>meta</b> (<b>merge</b> '^{<a href="/source/s?defs=%5C%3Afoo" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:foo</a> <a href="/source/s?defs=%5C%3Abar" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:bar</a>} {<a href="/source/s?defs=%5C%3Aa" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:a</a> <span class="n">1</span> <a href="/source/s?defs=%5C%3Ab" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:b</a> <span class="n">2</span>} 225<a class="l" name="219" href="#219">219</a> {<a href="/source/s?defs=%5C%3Ab" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:b</a> <span class="n">3</span> <a href="/source/s?defs=%5C%3Ac" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:c</a> <span class="n">4</span>}))) 226<a class="hl" name="220" href="#220">220</a> 227<a class="l" name="221" href="#221">221</a> <span class="s">"And when it doesn't"</span> 228<a class="l" name="222" href="#222">222</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (<b>meta</b> (<b>merge</b> {<a href="/source/s?defs=%5C%3Aa" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:a</a> <span class="n">1</span> <a href="/source/s?defs=%5C%3Ab" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:b</a> <span class="n">2</span>} 229<a class="l" name="223" href="#223">223</a> '^{<a href="/source/s?defs=%5C%3Afoo" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:foo</a> <a href="/source/s?defs=%5C%3Abar" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:bar</a>} {<a href="/source/s?defs=%5C%3Ab" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:b</a> <span class="n">3</span> <a href="/source/s?defs=%5C%3Ac" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:c</a> <span class="n">36rCRAZY</span>}))) 230<a class="l" name="224" href="#224">224</a> 231<a class="l" name="225" href="#225">225</a> <span class="s">"Metadata can be used as a type hint to avoid reflection during runtime"</span> 232<a class="l" name="226" href="#226">226</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (#(.<a href="/source/s?defs=charAt" class="intelliWindow-symbol" data-definition-place="undefined-in-file">charAt</a> ^<a href="/source/s?defs=String" class="intelliWindow-symbol" data-definition-place="undefined-in-file">String</a> % <span class="n">0</span>) <span class="s">"Cast me"</span>)) 233<a class="l" name="227" href="#227">227</a> 234<a class="l" name="228" href="#228">228</a> <span class="s">"You can directly update an object's metadata"</span> 235<a class="l" name="229" href="#229">229</a> (= <span class="n">0xFF</span> (<b>let</b> [<a class="d intelliWindow-symbol" href="#giants" data-definition-place="defined-in-file">giants</a> 236<a class="hl" name="230" href="#230">230</a> (<b>with-meta</b> 237<a class="l" name="231" href="#231">231</a> '<a href="/source/s?defs=Giants" class="intelliWindow-symbol" data-definition-place="undefined-in-file">Giants</a> 238<a class="l" name="232" href="#232">232</a> {<a href="/source/s?defs=%5C%3Aworld%5C-series%5C-titles" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:world-series-titles</a> (<b>atom</b> <span class="n">7</span>)})] 239<a class="l" name="233" href="#233">233</a> (<b>swap!</b> (<a href="/source/s?defs=%5C%3Aworld%5C-series%5C-titles" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:world-series-titles</a> (<b>meta</b> <a class="d intelliWindow-symbol" href="#giants" data-definition-place="defined-in-file">giants</a>)) <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a>) 240<a class="l" name="234" href="#234">234</a> @(<a href="/source/s?defs=%5C%3Aworld%5C-series%5C-titles" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:world-series-titles</a> (<b>meta</b> <a class="d intelliWindow-symbol" href="#giants" data-definition-place="defined-in-file">giants</a>)))) 241<a class="l" name="235" href="#235">235</a> 242<a class="l" name="236" href="#236">236</a> <span class="s">"You can also create a new object from another object with metadata"</span> 243<a class="l" name="237" href="#237">237</a> (= {<a href="/source/s?defs=%5C%3Aleague" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:league</a> <span class="s">"National League"</span> <a href="/source/s?defs=%5C%3Apark" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:park</a> <span class="s">"AT&T Park"</span>} 244<a class="l" name="238" href="#238">238</a> (<b>meta</b> (<b>vary-meta</b> <a class="d intelliWindow-symbol" href="#giants" data-definition-place="defined-in-file">giants</a> 245<a class="l" name="239" href="#239">239</a> <b>assoc</b> <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a>))) 246<a class="hl" name="240" href="#240">240</a> 247<a class="l" name="241" href="#241">241</a> <span class="s">"But it won't affect behavior like equality"</span> 248<a class="l" name="242" href="#242">242</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (<b>vary-meta</b> <a class="d intelliWindow-symbol" href="#giants" data-definition-place="defined-in-file">giants</a> <b>dissoc</b> <a href="/source/s?defs=%5C%3Aleague" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:league</a>)) 249<a class="l" name="243" href="#243">243</a> 250<a class="l" name="244" href="#244">244</a> <span class="s">"Or the object's printed representation"</span> 251<a class="l" name="245" href="#245">245</a> (= <a href="/source/s?defs=__" class="intelliWindow-symbol" data-definition-place="undefined-in-file">__</a> (<b>pr-str</b> (<b>vary-meta</b> <a class="d intelliWindow-symbol" href="#giants" data-definition-place="defined-in-file">giants</a> <b>dissoc</b> <a href="/source/s?defs=%5C%3Aleague" class="intelliWindow-symbol" data-definition-place="undefined-in-file">:league</a>)))) 252<a class="l" name="246" href="#246">246</a></body> 253</html> 254