You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PropertyValueList.html 27KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
  2. <!-- Created by htmlize-0.67 in css mode. -->
  3. <html>
  4. <head>
  5. <title>PropertyValueList.java</title>
  6. <style type="text/css">
  7. <!--
  8. body {
  9. color: #000000;
  10. background-color: #faf0e6;
  11. } /* default */
  12. .jde-java-font-lock-package {
  13. color: #0000cd;
  14. background-color: #faf0e6;
  15. } /* jde-java-font-lock-package-face */
  16. .jde-java-font-lock-constant {
  17. color: #5f9ea0;
  18. background-color: #faf0e6;
  19. } /* jde-java-font-lock-constant-face */
  20. .keyword {
  21. color: #8b0000;
  22. background-color: #faf0e6;
  23. } /* font-lock-keyword-face */
  24. .jde-java-font-lock-doc-tag {
  25. color: #008b00;
  26. background-color: #faf0e6;
  27. } /* jde-java-font-lock-doc-tag-face */
  28. .jde-java-font-lock-number {
  29. color: #bc8f8f;
  30. background-color: #faf0e6;
  31. } /* jde-java-font-lock-number-face */
  32. .jde-java-font-lock-italic {
  33. background-color: #faf0e6;
  34. font-style: italic;
  35. } /* jde-java-font-lock-italic-face */
  36. .string {
  37. color: #008b00;
  38. background-color: #faf0e6;
  39. } /* font-lock-string-face */
  40. .variable-name {
  41. color: #8b008b;
  42. background-color: #faf0e6;
  43. } /* font-lock-variable-name-face */
  44. .jde-java-font-lock-modifier {
  45. color: #da70d6;
  46. background-color: #faf0e6;
  47. } /* jde-java-font-lock-modifier-face */
  48. .type {
  49. color: #4682b4;
  50. background-color: #faf0e6;
  51. } /* font-lock-type-face */
  52. .comment {
  53. color: #00008b;
  54. background-color: #faf0e6;
  55. } /* font-lock-comment-face */
  56. .function-name {
  57. color: #8b2323;
  58. background-color: #faf0e6;
  59. } /* font-lock-function-name-face */
  60. a {
  61. color: inherit;
  62. background-color: inherit;
  63. font: inherit;
  64. text-decoration: inherit;
  65. }
  66. a:hover {
  67. text-decoration: underline;
  68. }
  69. -->
  70. </style>
  71. </head>
  72. <body>
  73. <pre>
  74. <span class="keyword">package</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">datatypes</span>;
  75. <span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">lang</span>.<span class="jde-java-font-lock-package">reflect</span>.<span class="type">InvocationTargetException</span>;
  76. <span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">LinkedList</span>;
  77. <span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">Collection</span>;
  78. <span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">Iterator</span>;
  79. <span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="jde-java-font-lock-package">properties</span>.<span class="jde-java-font-lock-number">*</span>;
  80. <span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="type">PropertyConsts</span>;
  81. <span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="type">PropNames</span>;
  82. <span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="type">FONode</span>;
  83. <span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">datatypes</span>.<span class="type">PropertyValue</span>;
  84. <span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="jde-java-font-lock-package">expr</span>.<span class="type">PropertyException</span>;
  85. <span class="comment">/*
  86. * PropertyValueList.java
  87. * $Id$
  88. *
  89. * Created: Tue Dec 11 22:37:16 2001
  90. * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
  91. * For details on use and redistribution please refer to the
  92. * LICENSE file included with these sources.
  93. * @author &lt;a href=&quot;mailto:pbwest@powerup.com.au&quot;&gt;Peter B. West&lt;/a&gt;
  94. * @version $Revision$ $Name$
  95. */</span>
  96. <span class="comment">/**
  97. * A list of &lt;tt&gt;PropertyValue&lt;/tt&gt; elements.
  98. */</span>
  99. <span class="jde-java-font-lock-modifier">public</span> <span class="keyword">class</span> <span class="function-name" id="PropertyValueListClass">PropertyValueList</span> <span class="keyword">extends</span> <span class="type">LinkedList</span> <span class="keyword">implements</span> <span class="type">PropertyValue</span> {
  100. <span class="comment">/**
  101. * An integer index to the type of property of which this is a value.
  102. */</span>
  103. <span class="jde-java-font-lock-modifier">protected</span> <span class="type">int</span> <span class="variable-name" id="property">property</span>;
  104. <span class="comment">/**
  105. * An integer property type.
  106. */</span>
  107. <span class="jde-java-font-lock-modifier">public</span> <span class="jde-java-font-lock-modifier">final</span> <span class="type">int</span> <span class="variable-name" id="type">type</span>;
  108. <span class="comment">/**
  109. * The PropertyConsts singleton.
  110. */</span>
  111. <span class="jde-java-font-lock-modifier">public</span> <span class="jde-java-font-lock-modifier">final</span> <span class="type">PropertyConsts</span> <span class="variable-name" id="propertyConsts">propertyConsts</span>;
  112. <span class="comment">/**
  113. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">property</span><span class="comment"> &lt;tt&gt;int&lt;/tt&gt; index of the property.
  114. */</span>
  115. <span class="jde-java-font-lock-modifier">public</span> <span class="function-name" id="PropertyValueList">PropertyValueList</span>(<span class="type">int</span> <span class="variable-name">property</span>) <span class="keyword">throws</span> <span class="type">PropertyException</span> {
  116. <span class="keyword">super</span>();
  117. <span class="keyword">if</span> (property &lt; <span class="jde-java-font-lock-number">1</span> || property &gt; PropNames.<span class="jde-java-font-lock-constant" id="LAST_PROPERTY_INDEX">LAST_PROPERTY_INDEX</span>)
  118. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>(&quot;<span class="string">Invalid property index: </span>&quot; + property);
  119. <span class="keyword">this</span>.property = property;
  120. type = PropertyValue.<span class="jde-java-font-lock-constant" id="LIST">LIST</span>;
  121. propertyConsts = PropertyConsts.getPropertyConsts();
  122. }
  123. <span class="comment">/**
  124. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="propertyName">propertyName</span><span class="comment"> a &lt;tt&gt;String&lt;/tt&gt; containing the property name.
  125. */</span>
  126. <span class="jde-java-font-lock-modifier">public</span> <span class="function-name">PropertyValueList</span>(<span class="type">String</span> <span class="variable-name">propertyName</span>)
  127. <span class="keyword">throws</span> <span class="type">PropertyException</span>
  128. {
  129. <span class="keyword">super</span>();
  130. property = PropNames.getPropertyIndex(propertyName);
  131. <span class="keyword">if</span> (property &lt; <span class="jde-java-font-lock-number">1</span> || property &gt; PropNames.<span class="jde-java-font-lock-constant">LAST_PROPERTY_INDEX</span>)
  132. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>(&quot;<span class="string">Invalid property index: </span>&quot; + property);
  133. type = PropertyValue.<span class="jde-java-font-lock-constant">LIST</span>;
  134. propertyConsts = PropertyConsts.getPropertyConsts();
  135. }
  136. <span class="comment">/**
  137. * Constructor with a &lt;tt&gt;Collection&lt;/tt&gt;. Pass through to superclass
  138. * only if the collection is another instance of a PropertyValueList.
  139. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">property</span><span class="comment"> &lt;tt&gt;int&lt;/tt&gt; index of the property.
  140. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="c">c</span><span class="comment"> a &lt;tt&gt;Collection&lt;/tt&gt;, which must be another
  141. * &lt;i&gt;</span><span class="jde-java-font-lock-italic">PropertyValueList</span><span class="comment">&lt;/i&gt;.
  142. * </span><span class="jde-java-font-lock-doc-tag">@exception</span><span class="comment"> </span><span class="type">IllegalArgumentException</span><span class="comment"> if the &lt;tt&gt;Collection&lt;/tt&gt; is
  143. * not a &lt;i&gt;</span><span class="jde-java-font-lock-italic">PropertyValueList</span><span class="comment">&lt;/i&gt;.
  144. */</span>
  145. <span class="jde-java-font-lock-modifier">public</span> <span class="function-name">PropertyValueList</span>(<span class="type">int</span> <span class="variable-name">property</span>, <span class="type">Collection</span> <span class="variable-name">c</span>)
  146. <span class="keyword">throws</span> <span class="type">PropertyException</span>
  147. {
  148. <span class="keyword">super</span>(c);
  149. <span class="comment">// This test only follows the super() call because that call must
  150. </span> <span class="comment">// be the first in a constructor.
  151. </span> <span class="keyword">if</span> (! (c <span class="keyword">instanceof</span> <span class="type">PropertyValueList</span>))
  152. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">IllegalArgumentException</span>
  153. (&quot;<span class="string">Collection is not a PropertyValueList.</span>&quot;);
  154. <span class="keyword">if</span> (property &lt; <span class="jde-java-font-lock-number">1</span> || property &gt; PropNames.<span class="jde-java-font-lock-constant">LAST_PROPERTY_INDEX</span>)
  155. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>(&quot;<span class="string">Invalid property index: </span>&quot; + property);
  156. <span class="keyword">this</span>.property = property;
  157. type = PropertyValue.<span class="jde-java-font-lock-constant">LIST</span>;
  158. propertyConsts = PropertyConsts.getPropertyConsts();
  159. }
  160. <span class="comment">/**
  161. * Constructor with a &lt;tt&gt;Collection&lt;/tt&gt;. Pass through to superclass
  162. * only if the collection is another instance of a PropertyValueList.
  163. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">propertyName</span><span class="comment"> a &lt;tt&gt;String&lt;/tt&gt; containing the property name.
  164. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">c</span><span class="comment"> a &lt;tt&gt;Collection&lt;/tt&gt;, which must be another
  165. * &lt;i&gt;</span><span class="jde-java-font-lock-italic">PropertyValueList</span><span class="comment">&lt;/i&gt;.
  166. * </span><span class="jde-java-font-lock-doc-tag">@exception</span><span class="comment"> </span><span class="type">IllegalArgumentException</span><span class="comment"> if the &lt;tt&gt;Collection&lt;/tt&gt; is
  167. * not a &lt;i&gt;</span><span class="jde-java-font-lock-italic">PropertyValueList</span><span class="comment">&lt;/i&gt;.
  168. */</span>
  169. <span class="jde-java-font-lock-modifier">public</span> <span class="function-name">PropertyValueList</span>(<span class="type">String</span> <span class="variable-name">propertyName</span>, <span class="type">Collection</span> <span class="variable-name">c</span>)
  170. <span class="keyword">throws</span> <span class="type">PropertyException</span>
  171. {
  172. <span class="keyword">super</span>(c);
  173. <span class="comment">// This test only follows the super() call because that call must
  174. </span> <span class="comment">// be the first in a constructor.
  175. </span> <span class="keyword">if</span> (! (c <span class="keyword">instanceof</span> <span class="type">PropertyValueList</span>))
  176. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">IllegalArgumentException</span>
  177. (&quot;<span class="string">Collection is not a PropertyValueList.</span>&quot;);
  178. property = PropNames.getPropertyIndex(propertyName);
  179. <span class="keyword">if</span> (property &lt; <span class="jde-java-font-lock-number">1</span> || property &gt; PropNames.<span class="jde-java-font-lock-constant">LAST_PROPERTY_INDEX</span>)
  180. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>(&quot;<span class="string">Invalid property index: </span>&quot; + property);
  181. type = PropertyValue.<span class="jde-java-font-lock-constant">LIST</span>;
  182. propertyConsts = PropertyConsts.getPropertyConsts();
  183. }
  184. <span class="comment">/**
  185. * Append a PropertyValue or PropertyValueList to the end of the list.
  186. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="o">o</span><span class="comment"> a &lt;tt&gt;PropertyValue&lt;/tt&gt; or a &lt;PropertyValueList&lt;/tt&gt;;
  187. * the element to add. Defined as an
  188. * &lt;tt&gt;Object&lt;/tt&gt; to override the definition in &lt;tt&gt;LinkedList&lt;/tt&gt;.
  189. * </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> a &lt;tt&gt;boolean&lt;/tt&gt; success or failure(?).
  190. * </span><span class="jde-java-font-lock-doc-tag">@exception</span><span class="comment"> </span><span class="type">IllegalArgumentException</span><span class="comment"> if the object is not a
  191. * &lt;tt&gt;PropertyValue&lt;/tt&gt; or &lt;tt&gt;PropertyValueList&lt;/tt&gt;.
  192. */</span>
  193. <span class="jde-java-font-lock-modifier">public</span> <span class="type">boolean</span> <span class="function-name" id="add">add</span>(<span class="type">Object</span> <span class="variable-name">o</span>) {
  194. <span class="keyword">if</span> (! (o <span class="keyword">instanceof</span> <span class="type">PropertyValue</span> || o <span class="keyword">instanceof</span> <span class="type">PropertyValueList</span>))
  195. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">IllegalArgumentException</span>
  196. (&quot;<span class="string">Object is not a PropertyValue or a PropertyValueList.</span>&quot;);
  197. <span class="keyword">return</span> <span class="keyword">super</span>.add(o);
  198. }
  199. <span class="comment">/**
  200. * Insert a &lt;tt&gt;PropertyValue&lt;/tt&gt; or &lt;tt&gt;PropertyValueList&lt;/tt&gt;
  201. * at the beginning of the list.
  202. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">o</span><span class="comment"> a &lt;tt&gt;PropertyValue&lt;/tt&gt; or a &lt;PropertyValueList&lt;/tt&gt;;
  203. * the element to add. Defined as an
  204. * &lt;tt&gt;Object&lt;/tt&gt; to override the definition in &lt;tt&gt;LinkedList&lt;/tt&gt;.
  205. * </span><span class="jde-java-font-lock-doc-tag">@exception</span><span class="comment"> </span><span class="type">IllegalArgumentException</span><span class="comment"> if the object is not a
  206. * &lt;tt&gt;PropertyValue&lt;/tt&gt; or &lt;tt&gt;PropertyValueList&lt;/tt&gt;.
  207. */</span>
  208. <span class="jde-java-font-lock-modifier">public</span> <span class="type">void</span> <span class="function-name" id="addFirst">addFirst</span>(<span class="type">Object</span> <span class="variable-name">o</span>) {
  209. <span class="keyword">if</span> (! (o <span class="keyword">instanceof</span> <span class="type">PropertyValue</span> || o <span class="keyword">instanceof</span> <span class="type">PropertyValueList</span>))
  210. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">IllegalArgumentException</span>
  211. (&quot;<span class="string">Object is not a PropertyValue or a PropertyValueList.</span>&quot;);
  212. <span class="keyword">super</span>.addFirst(o);
  213. }
  214. <span class="comment">/**
  215. * Append a PropertyValue to the end of the list.
  216. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">o</span><span class="comment"> a &lt;tt&gt;PropertyValue&lt;/tt&gt;; the element to add. Defined as an
  217. * &lt;tt&gt;Object&lt;/tt&gt; to override the definition in &lt;tt&gt;LinkedList&lt;/tt&gt;.
  218. * </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> a &lt;tt&gt;boolean&lt;/tt&gt; success or failure(?).
  219. * </span><span class="jde-java-font-lock-doc-tag">@exception</span><span class="comment"> </span><span class="type">IllegalArgumentException</span><span class="comment"> if the object is not a
  220. * &lt;tt&gt;PropertyValue&lt;/tt&gt;.
  221. */</span>
  222. <span class="jde-java-font-lock-modifier">public</span> <span class="type">void</span> <span class="function-name" id="addLast">addLast</span>(<span class="type">Object</span> <span class="variable-name">o</span>) {
  223. add(o);
  224. }
  225. <span class="comment">/*
  226. * Following fields and methods implement the PropertyValue interface
  227. */</span>
  228. <span class="comment">/**
  229. * </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> &lt;tt&gt;int&lt;/tt&gt; property index.
  230. */</span>
  231. <span class="jde-java-font-lock-modifier">public</span> <span class="type">int</span> <span class="function-name" id="getProperty">getProperty</span>() {
  232. <span class="keyword">return</span> property;
  233. }
  234. <span class="jde-java-font-lock-modifier">public</span> <span class="type">void</span> <span class="function-name" id="setProperty">setProperty</span>(<span class="type">int</span> <span class="variable-name" id="index">index</span>) <span class="keyword">throws</span> <span class="type">PropertyException</span> {
  235. <span class="keyword">if</span> (index &lt; <span class="jde-java-font-lock-number">0</span> || index &gt; PropNames.<span class="jde-java-font-lock-constant">LAST_PROPERTY_INDEX</span>)
  236. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>(&quot;<span class="string">Invalid property index: </span>&quot; + index);
  237. property = index;
  238. }
  239. <span class="comment">/**
  240. * </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> type field of the &lt;tt&gt;PropertyValue&lt;/tt&gt;.
  241. */</span>
  242. <span class="jde-java-font-lock-modifier">public</span> <span class="type">int</span> <span class="function-name" id="getType">getType</span>() {
  243. <span class="keyword">return</span> type;
  244. }
  245. <span class="comment">/**
  246. * In some circumstances, the property against which a type is to be
  247. * validated may not be the same as the property against which this
  248. * &lt;i&gt;</span><span class="jde-java-font-lock-italic">AbstractPropertyValue</span><span class="comment">&lt;/i&gt; is defined.
  249. * A specific property argument is then required.
  250. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="testProperty">testProperty</span><span class="comment"> &lt;tt&gt;int&lt;/tt&gt; property index of the property
  251. * for which the type is to be validated.
  252. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">type</span><span class="comment"> &lt;tt&gt;int&lt;/tt&gt; bitmap of data types to check for
  253. * validity against this property.
  254. */</span>
  255. <span class="jde-java-font-lock-modifier">public</span> <span class="type">void</span> <span class="function-name" id="validate">validate</span>(<span class="type">int</span> <span class="variable-name">testProperty</span>, <span class="type">int</span> <span class="variable-name">type</span>)
  256. <span class="keyword">throws</span> <span class="type">PropertyException</span>
  257. {
  258. <span class="comment">// N.B. PROPERTY_SPECIFIC inheritance may require more specialized
  259. </span> <span class="comment">// checks. Only line-height comes into this category.
  260. </span>
  261. <span class="comment">// N.B. The first commented-out condition means that I cannot validate
  262. </span> <span class="comment">// unless the property is NOT inherited.
  263. </span> <span class="comment">// I can't remember why I put this
  264. </span> <span class="comment">// condition in here. Removing it. pbw 2002/02/18
  265. </span> <span class="comment">//if (propertyConsts.inherited.get(testProperty) == Property.NO
  266. </span> <span class="comment">//&amp;&amp; (propertyConsts.getDataTypes(testProperty) &amp; type) == 0) {
  267. </span>
  268. <span class="keyword">if</span> ((propertyConsts.getDataTypes(testProperty) &amp; type) == <span class="jde-java-font-lock-number">0</span>) {
  269. <span class="type">String</span> <span class="variable-name" id="pname">pname</span> = PropNames.getPropertyName(testProperty);
  270. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>
  271. (&quot;<span class="string">Datatype(s) </span>&quot; +
  272. Property.listDataTypes(type) +
  273. &quot;<span class="string"> not defined on </span>&quot; + pname);
  274. }
  275. }
  276. <span class="comment">/**
  277. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">type</span><span class="comment"> &lt;tt&gt;int&lt;/tt&gt; bitmap of data types to check for
  278. * validity against this property.
  279. */</span>
  280. <span class="jde-java-font-lock-modifier">public</span> <span class="type">void</span> <span class="function-name">validate</span>(<span class="type">int</span> <span class="variable-name">type</span>) <span class="keyword">throws</span> <span class="type">PropertyException</span> {
  281. <span class="comment">// N.B. PROPERTY_SPECIFIC inheritance may require more specialized
  282. </span> <span class="comment">// checks. Only line-height comes into this category.
  283. </span> validate(property, type);
  284. }
  285. <span class="jde-java-font-lock-modifier">public</span> <span class="type">String</span> <span class="function-name" id="toString">toString</span>() {
  286. <span class="type">String</span> <span class="variable-name" id="str">str</span>, <span class="variable-name">cstr</span>;
  287. <span class="keyword">try</span> {
  288. str = &quot;<span class="string">Property: </span>&quot; + PropNames.getPropertyName(property)
  289. + &quot;<span class="string"> Index: </span>&quot; + property + &quot;<span class="string"> List contents:\n</span>&quot;;
  290. <span class="type">Iterator</span> <span class="variable-name" id="contents">contents</span> = iterator();
  291. <span class="keyword">while</span> (contents.hasNext()) {
  292. <span class="type">int</span> <span class="variable-name" id="i">i</span> = <span class="jde-java-font-lock-number">0</span>, <span class="variable-name">j</span> = <span class="jde-java-font-lock-number">0</span>;
  293. <span class="type">Object</span> <span class="variable-name" id="obj">obj</span> = contents.next();
  294. <span class="keyword">try</span> {
  295. cstr = (<span class="type">String</span>)(obj.getClass()
  296. .getMethod(&quot;<span class="string">toString</span>&quot;, <span class="jde-java-font-lock-constant" id="null">null</span>)
  297. .invoke(obj, <span class="jde-java-font-lock-constant">null</span>));
  298. } <span class="keyword">catch</span> (<span class="type">IllegalAccessException</span> <span class="variable-name" id="e">e</span>) {
  299. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span> (e);
  300. } <span class="keyword">catch</span> (<span class="type">NoSuchMethodException</span> <span class="variable-name">e</span>) {
  301. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span> (e);
  302. } <span class="keyword">catch</span> (<span class="type">InvocationTargetException</span> <span class="variable-name">e</span>) {
  303. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span> (e);
  304. }
  305. <span class="keyword">while</span> (i &lt; cstr.length() &amp;&amp; j &gt;= <span class="jde-java-font-lock-number">0</span>) {
  306. j = cstr.indexOf('<span class="string">\n</span>', j);
  307. <span class="keyword">if</span> (j &gt;= <span class="jde-java-font-lock-number">0</span>) {
  308. str = str + &quot;<span class="string">&gt;</span>&quot; + cstr.substring(i, ++j);
  309. i = j;
  310. } <span class="keyword">else</span> {
  311. str = str + &quot;<span class="string">&gt;</span>&quot; + cstr.substring(i);
  312. i = cstr.length();
  313. }
  314. }
  315. }
  316. <span class="keyword">return</span> str;
  317. } <span class="keyword">catch</span> (<span class="type">PropertyException</span> <span class="variable-name">e</span>) {
  318. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">RuntimeException</span>(e.getMessage());
  319. }
  320. }
  321. <span class="jde-java-font-lock-modifier">public</span> <span class="type">Object</span> <span class="function-name" id="clone">clone</span>() {
  322. <span class="keyword">return</span> <span class="keyword">super</span>.clone();
  323. }
  324. }<span class="comment">// PropertyValueList
  325. </span></pre>
  326. </body>
  327. </html>