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.

AbstractPropertyValue.html 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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>AbstractPropertyValue.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">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>;
  76. <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>;
  77. <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>;
  78. <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>;
  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">expr</span>.<span class="type">PropertyException</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">datatypes</span>.<span class="type">PropertyValue</span>;
  81. <span class="comment">/*
  82. * AbstractPropertyValue.java
  83. * $Id$
  84. *
  85. * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
  86. * For details on use and redistribution please refer to the
  87. * LICENSE file included with these sources.
  88. * @author &lt;a href=&quot;mailto:pbwest@powerup.com.au&quot;&gt;Peter B. West&lt;/a&gt;
  89. * @version $Revision$ $Name$
  90. */</span>
  91. <span class="comment">/**
  92. * Base abstract class for all property value types.
  93. */</span>
  94. <span class="jde-java-font-lock-modifier">public</span> <span class="jde-java-font-lock-modifier">abstract</span> <span class="keyword">class</span> <span class="function-name" id="AbstractPropertyValueClass">AbstractPropertyValue</span>
  95. <span class="keyword">implements</span> <span class="type">PropertyValue</span>, <span class="type">Cloneable</span>
  96. {
  97. <span class="comment">/**
  98. * An integer index to the type of property of which this is a value.
  99. */</span>
  100. <span class="jde-java-font-lock-modifier">protected</span> <span class="type">int</span> <span class="variable-name" id="property">property</span>;
  101. <span class="comment">/**
  102. * An integer property type.
  103. */</span>
  104. <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>;
  105. <span class="comment">/**
  106. * The PropertyConsts singleton.
  107. */</span>
  108. <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>;
  109. <span class="comment">/**
  110. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="index">index</span><span class="comment"> index of the property in the property arrays.
  111. * </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">type</span><span class="comment"> of this value
  112. */</span>
  113. <span class="jde-java-font-lock-modifier">public</span> <span class="function-name" id="AbstractPropertyValue">AbstractPropertyValue</span>(<span class="type">int</span> <span class="variable-name">index</span>, <span class="type">int</span> <span class="variable-name">type</span>)
  114. <span class="keyword">throws</span> <span class="type">PropertyException</span>
  115. {
  116. <span class="keyword">if</span> (index &lt; <span class="jde-java-font-lock-number">1</span> || index &gt; PropNames.<span class="jde-java-font-lock-constant" id="LAST_PROPERTY_INDEX">LAST_PROPERTY_INDEX</span>)
  117. <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);
  118. <span class="keyword">if</span> (type &lt; <span class="jde-java-font-lock-number">0</span> || type &gt; PropertyValue.<span class="jde-java-font-lock-constant" id="LAST_PROPERTY_TYPE">LAST_PROPERTY_TYPE</span>)
  119. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>(&quot;<span class="string">Invalid property type: </span>&quot; + type);
  120. property = index;
  121. <span class="keyword">this</span>.type = type;
  122. propertyConsts = PropertyConsts.getPropertyConsts();
  123. }
  124. <span class="comment">/**
  125. * </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.
  126. */</span>
  127. <span class="jde-java-font-lock-modifier">public</span> <span class="function-name">AbstractPropertyValue</span>(<span class="type">String</span> <span class="variable-name">propertyName</span>, <span class="type">int</span> <span class="variable-name">type</span>)
  128. <span class="keyword">throws</span> <span class="type">PropertyException</span>
  129. {
  130. propertyConsts = PropertyConsts.getPropertyConsts();
  131. property = PropNames.getPropertyIndex(propertyName);
  132. <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>)
  133. <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);
  134. <span class="keyword">if</span> (type &lt; <span class="jde-java-font-lock-number">0</span> || type &gt; PropertyValue.<span class="jde-java-font-lock-constant">LAST_PROPERTY_TYPE</span>)
  135. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>(&quot;<span class="string">Invalid property type: </span>&quot; + type);
  136. <span class="keyword">this</span>.type = type;
  137. }
  138. <span class="comment">/**
  139. * </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> &lt;tt&gt;int&lt;/tt&gt; property index.
  140. */</span>
  141. <span class="jde-java-font-lock-modifier">public</span> <span class="type">int</span> <span class="function-name" id="getProperty">getProperty</span>() {
  142. <span class="keyword">return</span> property;
  143. }
  144. <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">index</span>) <span class="keyword">throws</span> <span class="type">PropertyException</span> {
  145. <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>)
  146. <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);
  147. property = index;
  148. }
  149. <span class="comment">/**
  150. * </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;.
  151. */</span>
  152. <span class="jde-java-font-lock-modifier">public</span> <span class="type">int</span> <span class="function-name" id="getType">getType</span>() {
  153. <span class="keyword">return</span> type;
  154. }
  155. <span class="comment">/**
  156. * In some circumstances, the property against which a type is to be
  157. * validated may not be the same as the property against which this
  158. * &lt;i&gt;</span><span class="jde-java-font-lock-italic">AbstractPropertyValue</span><span class="comment">&lt;/i&gt; is defined.
  159. * A specific property argument is then required.
  160. * </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
  161. * for which the type is to be validated.
  162. * </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
  163. * validity against this property.
  164. */</span>
  165. <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>)
  166. <span class="keyword">throws</span> <span class="type">PropertyException</span>
  167. {
  168. <span class="comment">// N.B. PROPERTY_SPECIFIC inheritance may require more specialized
  169. </span> <span class="comment">// checks. Only line-height comes into this category.
  170. </span>
  171. <span class="comment">// N.B. The first commented-out condition means that I cannot validate
  172. </span> <span class="comment">// unless the property is NOT inherited.
  173. </span> <span class="comment">// I can't remember why I put this
  174. </span> <span class="comment">// condition in here. Removing it. pbw 2002/02/18
  175. </span> <span class="comment">//if (propertyConsts.inherited.get(testProperty) == Property.NO
  176. </span> <span class="comment">//&amp;&amp; (propertyConsts.getDataTypes(testProperty) &amp; type) == 0) {
  177. </span>
  178. <span class="keyword">if</span> ((propertyConsts.getDataTypes(testProperty) &amp; type) == <span class="jde-java-font-lock-number">0</span>) {
  179. <span class="type">String</span> <span class="variable-name" id="pname">pname</span> = PropNames.getPropertyName(testProperty);
  180. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">PropertyException</span>
  181. (&quot;<span class="string">Datatype(s) </span>&quot; +
  182. Property.listDataTypes(type) +
  183. &quot;<span class="string"> not defined on </span>&quot; + pname);
  184. }
  185. }
  186. <span class="comment">/**
  187. * </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
  188. * validity against this property.
  189. */</span>
  190. <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> {
  191. <span class="comment">// N.B. PROPERTY_SPECIFIC inheritance may require more specialized
  192. </span> <span class="comment">// checks. Only line-height comes into this category.
  193. </span> validate(property, type);
  194. }
  195. <span class="jde-java-font-lock-modifier">public</span> <span class="jde-java-font-lock-modifier">static</span> <span class="type">String</span> <span class="function-name" id="typeString">typeString</span>(<span class="type">int</span> <span class="variable-name">type</span>) {
  196. <span class="keyword">if</span> (type &lt; <span class="jde-java-font-lock-number">0</span> || type &gt;PropertyValue.<span class="jde-java-font-lock-constant">LAST_PROPERTY_TYPE</span>)
  197. <span class="keyword">return</span> &quot;<span class="string">Property type out of range</span>&quot;;
  198. <span class="keyword">return</span> PropertyValue.propertyTypes.get(type);
  199. }
  200. <span class="jde-java-font-lock-modifier">public</span> <span class="type">String</span> <span class="function-name" id="toString">toString</span>() {
  201. <span class="keyword">try</span> {
  202. <span class="keyword">return</span> &quot;<span class="string">Property: </span>&quot; + PropNames.getPropertyName(property)
  203. + &quot;<span class="string"> Index: </span>&quot; + property + &quot;<span class="string"> Type: </span>&quot; +
  204. typeString(type);
  205. } <span class="keyword">catch</span> (<span class="type">PropertyException</span> <span class="variable-name" id="e">e</span>) {
  206. <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">RuntimeException</span>(e.getMessage());
  207. }
  208. }
  209. <span class="jde-java-font-lock-modifier">public</span> <span class="type">Object</span> <span class="function-name" id="clone">clone</span>() <span class="keyword">throws</span> <span class="type">CloneNotSupportedException</span> {
  210. <span class="keyword">return</span> <span class="keyword">super</span>.clone();
  211. }
  212. }
  213. </pre>
  214. </body>
  215. </html>