PageRenderTime 62ms CodeModel.GetById 26ms RepoModel.GetById 1ms app.codeStats 0ms

/libreoffice-3.6.0.2/javaunohelper/test/com/sun/star/lib/uno/helper/PropertySet_Test.java

#
Java | 1693 lines | 1513 code | 122 blank | 58 comment | 425 complexity | 3fa07b3bee4a7c8b123777cb1b7a3fa9 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, LGPL-2.1, AGPL-1.0, BSD-3-Clause-No-Nuclear-License-2014, GPL-3.0, LGPL-3.0
  1. /*************************************************************************
  2. *
  3. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4. *
  5. * Copyright 2000, 2010 Oracle and/or its affiliates.
  6. *
  7. * OpenOffice.org - a multi-platform office productivity suite
  8. *
  9. * This file is part of OpenOffice.org.
  10. *
  11. * OpenOffice.org is free software: you can redistribute it and/or modify
  12. * it under the terms of the GNU Lesser General Public License version 3
  13. * only, as published by the Free Software Foundation.
  14. *
  15. * OpenOffice.org is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU Lesser General Public License version 3 for more details
  19. * (a copy is included in the LICENSE file that accompanied this code).
  20. *
  21. * You should have received a copy of the GNU Lesser General Public License
  22. * version 3 along with OpenOffice.org. If not, see
  23. * <http://www.openoffice.org/license.html>
  24. * for a copy of the LGPLv3 License.
  25. *
  26. ************************************************************************/
  27. package com.sun.star.lib.uno.helper;
  28. import com.sun.star.lang.EventObject;
  29. import com.sun.star.lang.DisposedException;
  30. import com.sun.star.uno.Type;
  31. import com.sun.star.uno.TypeClass;
  32. import com.sun.star.uno.XInterface;
  33. import com.sun.star.uno.UnoRuntime;
  34. import com.sun.star.uno.Any;
  35. import com.sun.star.uno.XWeak;
  36. import com.sun.star.beans.XPropertySet;
  37. import com.sun.star.beans.UnknownPropertyException;
  38. import com.sun.star.beans.Property;
  39. import com.sun.star.beans.PropertyAttribute;
  40. import com.sun.star.beans.XPropertyChangeListener;
  41. import com.sun.star.beans.PropertyVetoException;
  42. import com.sun.star.beans.PropertyChangeEvent;
  43. import com.sun.star.beans.XVetoableChangeListener;
  44. import com.sun.star.beans.XPropertySetInfo;
  45. import com.sun.star.beans.XPropertiesChangeListener;
  46. import java.util.Arrays;
  47. public class PropertySet_Test
  48. {
  49. /** Creates a new instance of PropertySet_Test */
  50. public PropertySet_Test()
  51. {
  52. }
  53. public boolean convertPropertyValue()
  54. {
  55. System.out.println("PropertySet.convertPropertyValue");
  56. boolean[] r= new boolean[50];
  57. int i= 0;
  58. TestClass cl= new TestClass();
  59. try {
  60. r[i++]= cl.test_convertPropertyValue();
  61. }catch(java.lang.Exception e){
  62. i++;
  63. }
  64. boolean bOk= true;
  65. for (int c= 0; c < i; c++)
  66. bOk= bOk && r[c];
  67. if (bOk == false)
  68. System.out.println("Failed");
  69. else
  70. System.out.println("Ok");
  71. return bOk;
  72. }
  73. public boolean setPropertyValueNoBroadcast()
  74. {
  75. System.out.println("PropertySet.setValueNoBroadcast");
  76. boolean[] r= new boolean[50];
  77. int i= 0;
  78. TestClass cl= new TestClass();
  79. try {
  80. r[i++]= cl.test_setPropertyValueNoBroadcast();
  81. }catch(java.lang.Exception e){
  82. i++;
  83. }
  84. boolean bOk= true;
  85. for (int c= 0; c < i; c++)
  86. bOk= bOk && r[c];
  87. if (bOk == false)
  88. System.out.println("Failed");
  89. else
  90. System.out.println("Ok");
  91. return bOk;
  92. }
  93. public boolean setPropertyValue()
  94. {
  95. System.out.println("PropertySet.setPropertyValue");
  96. boolean[] r= new boolean[150];
  97. int i= 0;
  98. TestClass cl= new TestClass();
  99. try {
  100. cl.resetPropertyMembers();
  101. Object value;
  102. Object ret;
  103. value= new Boolean(true);
  104. cl.setPropertyValue("PropBoolA", value);
  105. ret= cl.getPropertyValue("PropBoolA");
  106. r[i++]= ((Boolean) ret).equals( (Boolean) value);
  107. value= new Character('A');
  108. cl.setPropertyValue("PropCharA",value);
  109. ret= cl.getPropertyValue("PropCharA");
  110. r[i++]= ((Character) ret).equals((Character) value);
  111. value= new Byte((byte) 111);
  112. cl.setPropertyValue("PropByteA",value);
  113. ret= cl.getPropertyValue("PropByteA");
  114. r[i++]= ((Byte) ret).equals((Byte) value);
  115. value= new Short((short)112);
  116. cl.setPropertyValue("PropShortA", value);
  117. ret= cl.getPropertyValue("PropShortA");
  118. r[i++]= ((Short) ret).equals((Short) value);
  119. value= new Integer(113);
  120. cl.setPropertyValue("PropIntA", value);
  121. ret= cl.getPropertyValue("PropIntA");
  122. r[i++]= ((Integer) ret).equals((Integer) value);
  123. value= new Long(115);
  124. cl.setPropertyValue("PropLongA", value);
  125. ret= cl.getPropertyValue("PropLongA");
  126. r[i++]= ((Long) ret).equals((Long) value);
  127. value= new Float(3.14);
  128. cl.setPropertyValue("PropFloatA", value);
  129. ret= cl.getPropertyValue("PropFloatA");
  130. r[i++]= ((Float) ret).equals((Float) value);
  131. value= new Double(3.145);
  132. cl.setPropertyValue("PropDoubleA",value);
  133. ret= cl.getPropertyValue("PropDoubleA");
  134. r[i++]= ((Double) ret).equals((Double) value);
  135. value= new String("string");
  136. cl.setPropertyValue("PropStringA",value);
  137. ret= cl.getPropertyValue("PropStringA");
  138. r[i++]= ((String) ret).equals((String) value);
  139. value= new ComponentBase();
  140. cl.setPropertyValue("PropXInterfaceA",value);
  141. ret= cl.getPropertyValue("PropXInterfaceA");
  142. r[i++]= ((XInterface) ret).equals((XInterface) value);
  143. value= new ComponentBase();
  144. cl.setPropertyValue("PropXWeakA",value);
  145. ret= cl.getPropertyValue("PropXWeakA");
  146. r[i++]= ((XWeak) ret).equals((XWeak) value);
  147. value = com.sun.star.beans.PropertyState.AMBIGUOUS_VALUE;
  148. cl.setPropertyValue("PropEnum",value);
  149. ret= cl.getPropertyValue("PropEnum");
  150. r[i++]= ret == value;
  151. value= new byte[]{1,2,3};
  152. cl.setPropertyValue("PropArrayByteA", value);
  153. ret= cl.getPropertyValue("PropArrayByteA");
  154. r[i++]= ((byte[]) ret).equals((byte[]) value);
  155. value= new Type(String.class);
  156. cl.setPropertyValue("PropTypeA", value);
  157. ret= cl.getPropertyValue("PropTypeA");
  158. r[i++]= ((Type) ret).equals(value);
  159. // test protected,package,private members
  160. value= new Boolean(true);
  161. cl.setPropertyValue("PropBoolB", value);
  162. ret= cl.getPropertyValue("PropBoolB");
  163. r[i++]= ((Boolean) ret).equals((Boolean) value);
  164. cl.setPropertyValue("PropBoolC", value);
  165. ret= cl.getPropertyValue("PropBoolC");
  166. r[i++]= ((Boolean) ret).equals((Boolean) value);
  167. try{
  168. cl.setPropertyValue("PropBoolD", value);
  169. i++;
  170. }catch (Exception e)
  171. {
  172. r[i++]= true;
  173. }
  174. cl.resetPropertyMembers();
  175. value= new Boolean(true);
  176. cl.setPropertyValue("PropObjectA", value);
  177. ret= cl.getPropertyValue("PropObjectA");
  178. r[i++]= ((Boolean) ret).equals((Boolean) value);
  179. value= new Character('A');
  180. cl.setPropertyValue("PropObjectA",value);
  181. ret= cl.getPropertyValue("PropObjectA");
  182. r[i++]= ((Character) ret).equals((Character) value);
  183. value= new Byte((byte) 111);
  184. cl.setPropertyValue("PropObjectA",value);
  185. ret= cl.getPropertyValue("PropObjectA");
  186. r[i++]= ((Byte) ret).equals((Byte) value);
  187. value= new Short((short)112);
  188. cl.setPropertyValue("PropObjectA", value);
  189. ret= cl.getPropertyValue("PropObjectA");
  190. r[i++]= ((Short) ret).equals((Short) value);
  191. value= new Integer(113);
  192. cl.setPropertyValue("PropObjectA", value);
  193. ret= cl.getPropertyValue("PropObjectA");
  194. r[i++]= ((Integer) ret).equals((Integer) value);
  195. value= new Long(115);
  196. cl.setPropertyValue("PropObjectA", value);
  197. ret= cl.getPropertyValue("PropObjectA");
  198. r[i++]= ((Long) ret).equals((Long) value);
  199. value= new Float(3.14);
  200. cl.setPropertyValue("PropObjectA", value);
  201. ret= cl.getPropertyValue("PropObjectA");
  202. r[i++]= ((Float) ret).equals((Float) value);
  203. value= new Double(3.145);
  204. cl.setPropertyValue("PropObjectA",value);
  205. ret= cl.getPropertyValue("PropObjectA");
  206. r[i++]= ((Double) ret).equals((Double) value);
  207. value= new String("string");
  208. cl.setPropertyValue("PropObjectA",value);
  209. ret= cl.getPropertyValue("PropObjectA");
  210. r[i++]= ((String) ret).equals((String) value);
  211. value= new ComponentBase();
  212. cl.setPropertyValue("PropObjectA",value);
  213. ret= cl.getPropertyValue("PropObjectA");
  214. r[i++]= ((XInterface) ret).equals((XInterface) value);
  215. value= new ComponentBase();
  216. cl.setPropertyValue("PropObjectA",value);
  217. ret= cl.getPropertyValue("PropObjectA");
  218. r[i++]= ((XWeak) ret).equals((XWeak) value);
  219. value= new byte[]{1,2,3};
  220. cl.setPropertyValue("PropObjectA", value);
  221. ret= cl.getPropertyValue("PropObjectA");
  222. r[i++]= ((byte[]) ret).equals((byte[]) value);
  223. value= new Type(String.class);
  224. cl.setPropertyValue("PropObjectA", value);
  225. ret= cl.getPropertyValue("PropObjectA");
  226. r[i++]= ((Type) ret).equals(value);
  227. cl.setPropertyValue("PropObjectA", new Any( new Type(byte.class), new Byte((byte)1)));
  228. ret= cl.getPropertyValue("PropObjectA");
  229. r[i++]= ((Byte) ret).byteValue() == 1;
  230. cl.resetPropertyMembers();
  231. value= new Boolean(true);
  232. cl.setPropertyValue("PropAnyA", value);
  233. ret= cl.getPropertyValue("PropAnyA");
  234. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  235. value= new Character('A');
  236. cl.setPropertyValue("PropAnyA",value);
  237. ret= cl.getPropertyValue("PropAnyA");
  238. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  239. value= new Byte((byte) 111);
  240. cl.setPropertyValue("PropAnyA",value);
  241. ret= cl.getPropertyValue("PropAnyA");
  242. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  243. value= new Short((short)112);
  244. cl.setPropertyValue("PropAnyA", value);
  245. ret= cl.getPropertyValue("PropAnyA");
  246. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  247. value= new Integer(113);
  248. cl.setPropertyValue("PropAnyA", value);
  249. ret= cl.getPropertyValue("PropAnyA");
  250. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  251. value= new Long(115);
  252. cl.setPropertyValue("PropAnyA", value);
  253. ret= cl.getPropertyValue("PropAnyA");
  254. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  255. value= new Float(3.14);
  256. cl.setPropertyValue("PropAnyA", value);
  257. ret= cl.getPropertyValue("PropAnyA");
  258. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  259. value= new Double(3.145);
  260. cl.setPropertyValue("PropAnyA",value);
  261. ret= cl.getPropertyValue("PropAnyA");
  262. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  263. value= new String("string");
  264. cl.setPropertyValue("PropAnyA",value);
  265. ret= cl.getPropertyValue("PropAnyA");
  266. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  267. value= new ComponentBase();
  268. cl.setPropertyValue("PropAnyA",value);
  269. ret= cl.getPropertyValue("PropAnyA");
  270. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  271. value= new ComponentBase();
  272. cl.setPropertyValue("PropAnyA",value);
  273. ret= cl.getPropertyValue("PropAnyA");
  274. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  275. value= new byte[]{1,2,3};
  276. cl.setPropertyValue("PropAnyA", value);
  277. ret= cl.getPropertyValue("PropAnyA");
  278. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  279. value= new Type(String.class);
  280. cl.setPropertyValue("PropAnyA", value);
  281. ret= cl.getPropertyValue("PropAnyA");
  282. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  283. cl.resetPropertyMembers();
  284. value= new Any(new Type(boolean.class), new Boolean(true));
  285. cl.setPropertyValue("PropBoolA", value);
  286. ret= cl.getPropertyValue("PropBoolA");
  287. r[i++]= ret instanceof Boolean && util.anyEquals(value, ret);
  288. value= new Any (new Type(char.class), new Character('A'));
  289. cl.setPropertyValue("PropCharA",value);
  290. ret= cl.getPropertyValue("PropCharA");
  291. r[i++]= ret instanceof Character && util.anyEquals(value, ret);
  292. value= new Any(new Type(byte.class), new Byte((byte) 111));
  293. cl.setPropertyValue("PropByteA",value);
  294. ret= cl.getPropertyValue("PropByteA");
  295. r[i++]= ret instanceof Byte && util.anyEquals(value, ret);
  296. value= new Any(new Type(short.class), new Short((short)112));
  297. cl.setPropertyValue("PropShortA", value);
  298. ret= cl.getPropertyValue("PropShortA");
  299. r[i++]= ret instanceof Short && util.anyEquals(value, ret);
  300. value= new Any(new Type(int.class), new Integer(113));
  301. cl.setPropertyValue("PropIntA", value);
  302. ret= cl.getPropertyValue("PropIntA");
  303. r[i++]= ret instanceof Integer && util.anyEquals(value, ret);
  304. value= new Any(new Type(long.class), new Long(115));
  305. cl.setPropertyValue("PropLongA", value);
  306. ret= cl.getPropertyValue("PropLongA");
  307. r[i++]= ret instanceof Long && util.anyEquals(value, ret);
  308. value= new Any(new Type(float.class), new Float(3.14));
  309. cl.setPropertyValue("PropFloatA", value);
  310. ret= cl.getPropertyValue("PropFloatA");
  311. r[i++]= ret instanceof Float && util.anyEquals(value, ret);
  312. value= new Any(new Type(double.class),new Double(3.145));
  313. cl.setPropertyValue("PropDoubleA",value);
  314. ret= cl.getPropertyValue("PropDoubleA");
  315. r[i++]= ret instanceof Double && util.anyEquals(value, ret);
  316. value= new Any(new Type(String.class), new String("string"));
  317. cl.setPropertyValue("PropStringA",value);
  318. ret= cl.getPropertyValue("PropStringA");
  319. r[i++]= ret instanceof String && util.anyEquals(value, ret);
  320. value= new Any(new Type(ComponentBase.class), new ComponentBase());
  321. cl.setPropertyValue("PropXInterfaceA",value);
  322. ret= cl.getPropertyValue("PropXInterfaceA");
  323. r[i++]= ret instanceof ComponentBase && util.anyEquals(value, ret);
  324. value= new Any( new Type(ComponentBase.class), new ComponentBase());
  325. cl.setPropertyValue("PropXWeakA",value);
  326. ret= cl.getPropertyValue("PropXWeakA");
  327. r[i++]= ret instanceof ComponentBase && util.anyEquals(value, ret);
  328. value= new Any(new Type(byte[].class), new byte[]{1,2,3});
  329. cl.setPropertyValue("PropArrayByteA", value);
  330. ret= cl.getPropertyValue("PropArrayByteA");
  331. r[i++]= ret instanceof byte[] && util.anyEquals(value, ret);
  332. value= new Any(new Type(Type.class), new Type(String.class));
  333. cl.setPropertyValue("PropTypeA", value);
  334. ret= cl.getPropertyValue("PropTypeA");
  335. r[i++]= ret instanceof Type && util.anyEquals(value, ret);
  336. cl.resetPropertyMembers();
  337. value= new Any(new Type(boolean.class), new Boolean(true));
  338. cl.setPropertyValue("PropAnyA", value);
  339. ret= cl.getPropertyValue("PropAnyA");
  340. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  341. value= new Any (new Type(char.class), new Character('A'));
  342. cl.setPropertyValue("PropAnyA",value);
  343. ret= cl.getPropertyValue("PropAnyA");
  344. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  345. value= new Any(new Type(byte.class), new Byte((byte) 111));
  346. cl.setPropertyValue("PropAnyA",value);
  347. ret= cl.getPropertyValue("PropAnyA");
  348. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  349. value= new Any(new Type(short.class), new Short((short)112));
  350. cl.setPropertyValue("PropAnyA", value);
  351. ret= cl.getPropertyValue("PropAnyA");
  352. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  353. value= new Any(new Type(int.class), new Integer(113));
  354. cl.setPropertyValue("PropAnyA", value);
  355. ret= cl.getPropertyValue("PropAnyA");
  356. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  357. value= new Any(new Type(long.class), new Long(115));
  358. cl.setPropertyValue("PropAnyA", value);
  359. ret= cl.getPropertyValue("PropAnyA");
  360. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  361. value= new Any(new Type(float.class), new Float(3.14));
  362. cl.setPropertyValue("PropAnyA", value);
  363. ret= cl.getPropertyValue("PropAnyA");
  364. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  365. value= new Any(new Type(double.class),new Double(3.145));
  366. cl.setPropertyValue("PropAnyA",value);
  367. ret= cl.getPropertyValue("PropAnyA");
  368. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  369. value= new Any(new Type(String.class), new String("string"));
  370. cl.setPropertyValue("PropAnyA",value);
  371. ret= cl.getPropertyValue("PropAnyA");
  372. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  373. value= new Any(new Type(ComponentBase.class), new ComponentBase());
  374. cl.setPropertyValue("PropAnyA",value);
  375. ret= cl.getPropertyValue("PropAnyA");
  376. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  377. value= new Any( new Type(ComponentBase.class), new ComponentBase());
  378. cl.setPropertyValue("PropAnyA",value);
  379. ret= cl.getPropertyValue("PropAnyA");
  380. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  381. value= new Any(new Type(byte[].class), new byte[]{1,2,3});
  382. cl.setPropertyValue("PropAnyA", value);
  383. ret= cl.getPropertyValue("PropAnyA");
  384. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  385. value= new Any(new Type(Type.class), new Type(String.class));
  386. cl.setPropertyValue("PropAnyA", value);
  387. ret= cl.getPropertyValue("PropAnyA");
  388. r[i++]= ret instanceof Any && util.anyEquals(value, ret);
  389. // ------------------------------------------------------------------------------
  390. cl.resetPropertyMembers();
  391. value= new Boolean(true);
  392. cl.setPropertyValue("PropBoolClass", value);
  393. ret= cl.getPropertyValue("PropBoolClass");
  394. r[i++]= ((Boolean) ret).equals( (Boolean) value);
  395. value= new Character('A');
  396. cl.setPropertyValue("PropCharClass",value);
  397. ret= cl.getPropertyValue("PropCharClass");
  398. r[i++]= ((Character) ret).equals((Character) value);
  399. value= new Byte((byte) 111);
  400. cl.setPropertyValue("PropByteClass",value);
  401. ret= cl.getPropertyValue("PropByteClass");
  402. r[i++]= ((Byte) ret).equals((Byte) value);
  403. value= new Short((short)112);
  404. cl.setPropertyValue("PropShortClass", value);
  405. ret= cl.getPropertyValue("PropShortClass");
  406. r[i++]= ((Short) ret).equals((Short) value);
  407. value= new Integer(113);
  408. cl.setPropertyValue("PropIntClass", value);
  409. ret= cl.getPropertyValue("PropIntClass");
  410. r[i++]= ((Integer) ret).equals((Integer) value);
  411. value= new Long(115);
  412. cl.setPropertyValue("PropLongClass", value);
  413. ret= cl.getPropertyValue("PropLongClass");
  414. r[i++]= ((Long) ret).equals((Long) value);
  415. value= new Float(3.14);
  416. cl.setPropertyValue("PropFloatClass", value);
  417. ret= cl.getPropertyValue("PropFloatClass");
  418. r[i++]= ((Float) ret).equals((Float) value);
  419. value= new Double(3.145);
  420. cl.setPropertyValue("PropDoubleClass",value);
  421. ret= cl.getPropertyValue("PropDoubleClass");
  422. r[i++]= ((Double) ret).equals((Double) value);
  423. cl.resetPropertyMembers();
  424. cl.resetPropertyMembers();
  425. value= new Any(new Type(boolean.class), new Boolean(true));
  426. cl.setPropertyValue("PropBoolClass", value);
  427. ret= cl.getPropertyValue("PropBoolClass");
  428. r[i++]= ret instanceof Boolean && util.anyEquals(value, ret);
  429. value= new Any (new Type(char.class), new Character('A'));
  430. cl.setPropertyValue("PropCharClass",value);
  431. ret= cl.getPropertyValue("PropCharClass");
  432. r[i++]= ret instanceof Character && util.anyEquals(value, ret);
  433. value= new Any(new Type(byte.class), new Byte((byte) 111));
  434. cl.setPropertyValue("PropByteClass",value);
  435. ret= cl.getPropertyValue("PropByteClass");
  436. r[i++]= ret instanceof Byte && util.anyEquals(value, ret);
  437. value= new Any(new Type(short.class), new Short((short)112));
  438. cl.setPropertyValue("PropShortClass", value);
  439. ret= cl.getPropertyValue("PropShortClass");
  440. r[i++]= ret instanceof Short && util.anyEquals(value, ret);
  441. value= new Any(new Type(int.class), new Integer(113));
  442. cl.setPropertyValue("PropIntClass", value);
  443. ret= cl.getPropertyValue("PropIntClass");
  444. r[i++]= ret instanceof Integer && util.anyEquals(value, ret);
  445. value= new Any(new Type(long.class), new Long(115));
  446. cl.setPropertyValue("PropLongClass", value);
  447. ret= cl.getPropertyValue("PropLongClass");
  448. r[i++]= ret instanceof Long && util.anyEquals(value, ret);
  449. value= new Any(new Type(float.class), new Float(3.14));
  450. cl.setPropertyValue("PropFloatClass", value);
  451. ret= cl.getPropertyValue("PropFloatClass");
  452. r[i++]= ret instanceof Float && util.anyEquals(value, ret);
  453. value= new Any(new Type(double.class),new Double(3.145));
  454. cl.setPropertyValue("PropDoubleClass",value);
  455. ret= cl.getPropertyValue("PropDoubleClass");
  456. r[i++]= ret instanceof Double && util.anyEquals(value, ret);
  457. value= new Any(new Type(String.class), new String("string"));
  458. // PropertyAttribute.READONLY
  459. cl.propBoolA.Attributes= PropertyAttribute.READONLY;
  460. try{
  461. cl.setPropertyValue("PropBoolA", new Boolean(true));
  462. i++;
  463. }catch (com.sun.star.beans.PropertyVetoException e)
  464. {
  465. r[i++]= true;
  466. }
  467. cl.propBoolA.Attributes= 0;
  468. // MAYBEVOID
  469. cl.resetPropertyMembers();
  470. // first MAYBEVOID not set
  471. //primitive members: must not work
  472. cl.boolPropA= false;
  473. try {
  474. cl.setPropertyValue("PropBoolA", null); i++;
  475. } catch (com.sun.star.lang.IllegalArgumentException e) {
  476. r[i++]= true;
  477. }
  478. try {
  479. cl.setPropertyValue("PropBoolA", new Any(new Type(boolean.class), null)); i++;
  480. } catch (com.sun.star.lang.IllegalArgumentException e) {
  481. r[i++]= true;
  482. }
  483. cl.propBoolA.Attributes= PropertyAttribute.MAYBEVOID;
  484. try{
  485. cl.setPropertyValue("PropBoolA", null); i++;
  486. } catch (com.sun.star.lang.IllegalArgumentException e) {
  487. r[i++]= true;
  488. }
  489. cl.propBoolA.Attributes= 0;
  490. cl.propBoolClass.Attributes= PropertyAttribute.MAYBEVOID;
  491. cl.boolClassProp= null;
  492. cl.setPropertyValue("PropBoolClass", null);
  493. r[i++]= cl.boolClassProp == null;
  494. // the returned value must be a void any
  495. Object objAny= cl.getPropertyValue("PropBoolClass");
  496. r[i++]= util.isVoidAny( objAny);
  497. cl.boolClassProp= new Boolean(true);
  498. cl.setPropertyValue("PropBoolClass", null);
  499. r[i++]= cl.boolClassProp == null;
  500. cl.boolClassProp= new Boolean(false);
  501. cl.setPropertyValue("PropBoolClass", new Any(new Type(boolean.class),null));
  502. r[i++]= cl.boolClassProp == null;
  503. cl.propXWeakA.Attributes= PropertyAttribute.MAYBEVOID;
  504. cl.setPropertyValue("PropXWeakA", null);
  505. r[i++]= util.isVoidAny(cl.getPropertyValue("PropXWeakA"));
  506. cl.propXWeakA.Attributes= 0;
  507. cl.anyPropA= null;
  508. try{
  509. cl.setPropertyValue("PropAnyA", null); i++;
  510. }catch (com.sun.star.lang.IllegalArgumentException e) {
  511. r[i++]= true;
  512. }
  513. cl.anyPropA= null;
  514. cl.propAnyA.Attributes= PropertyAttribute.MAYBEVOID;
  515. Type _t= new Type(Object.class);
  516. cl.setPropertyValue("PropAnyA", null);
  517. r[i++]= cl.anyPropA.getType().equals(new Type(void.class)) &&
  518. cl.anyPropA.getObject() == null;
  519. cl.anyPropA= new Any(new Type(byte.class),new Byte((byte) 111));
  520. cl.setPropertyValue("PropAnyA", null);
  521. r[i++]= cl.anyPropA.getType().equals(new Type(byte.class)) &&
  522. cl.anyPropA.getObject() == null;
  523. cl.anyPropA= null;
  524. try{
  525. cl.setPropertyValue("PropAnyA", new Object()); i++;
  526. }catch (com.sun.star.lang.IllegalArgumentException e)
  527. {
  528. r[i++]= true;
  529. }
  530. cl.propObjectA.Attributes= 0;
  531. try{
  532. cl.setPropertyValue("PropObjectA", null); i++;
  533. }catch (com.sun.star.lang.IllegalArgumentException e)
  534. {
  535. r[i++]= true;
  536. }
  537. try{
  538. cl.setPropertyValue("PropObjectA", new Any( new Type(byte.class), null)); i++;
  539. } catch (com.sun.star.lang.IllegalArgumentException e)
  540. {
  541. r[i++]= true;
  542. }
  543. cl.propObjectA.Attributes= PropertyAttribute.MAYBEVOID;
  544. cl.propObjectA= null;
  545. cl.setPropertyValue("PropObjectA", null);
  546. r[i++]= cl.propObjectA == null;
  547. cl.propObjectA= null;
  548. cl.setPropertyValue("PropObjectA", new Any( new Type(byte.class), null));
  549. r[i++]= cl.propObjectA == null;
  550. //
  551. }catch(java.lang.Exception e){
  552. i++;
  553. }
  554. boolean bOk= true;
  555. for (int c= 0; c < i; c++)
  556. bOk= bOk && r[c];
  557. if (bOk == false)
  558. System.out.println("Failed");
  559. else
  560. System.out.println("Ok");
  561. return bOk;
  562. }
  563. public boolean addPropertyChangeListener()
  564. {
  565. System.out.println("PropertySet.addPropertyChangeListener,\n" +
  566. "PropertySet.removePropertChangeListener," +
  567. "PropertySet.addVetoableChangeListener, \n" +
  568. "PropertySet.removeVetoableChangeListener" +
  569. "Notification of listeners");
  570. boolean[] r= new boolean[50];
  571. int i= 0;
  572. try {
  573. TestClass cl= new TestClass();
  574. Listener li= new Listener();
  575. cl.addPropertyChangeListener("PropByteA", li);
  576. Byte val1= new Byte((byte)115);
  577. cl.setPropertyValue("PropByteA", val1);
  578. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0;
  579. cl.propByteA.Attributes = PropertyAttribute.BOUND;
  580. cl.addPropertyChangeListener("PropByteA", li);
  581. Byte val2= new Byte((byte)116);
  582. cl.setPropertyValue("PropByteA", val2);
  583. r[i++]= li.nChangeCalled == 1 && li.nVetoCalled == 0;
  584. r[i++]= li.evt.OldValue.equals(val1) && li.evt.NewValue.equals(val2) && li.evt.Source == cl;
  585. li.reset();
  586. Listener li2= new Listener();
  587. cl.addPropertyChangeListener("PropByteA", li2);
  588. Byte val3= new Byte((byte) 117);
  589. cl.setPropertyValue("PropByteA", val3);
  590. r[i++]= li.nChangeCalled == 1 && li.nVetoCalled == 0
  591. && li2.nChangeCalled == 1 && li2.nVetoCalled == 0;
  592. r[i++]= li.evt.OldValue.equals(val2) && li.evt.NewValue.equals(val3) && li.evt.Source == cl
  593. && li2.evt.OldValue.equals(val2) && li2.evt.NewValue.equals(val3) && li2.evt.Source == cl ;
  594. li.reset();
  595. li2.reset();
  596. Listener li3= new Listener();
  597. val1= new Byte((byte)118);
  598. cl.addPropertyChangeListener("", li3);
  599. cl.setPropertyValue("PropByteA", val1);
  600. r[i++]= li.nChangeCalled == 1 && li.nVetoCalled == 0
  601. && li2.nChangeCalled == 1 && li2.nVetoCalled == 0
  602. && li3.nChangeCalled == 1 && li3.nVetoCalled == 0;
  603. r[i++]= li.evt.OldValue.equals(val3) && li.evt.NewValue.equals(val1) && li.evt.Source == cl;
  604. r[i++]= li2.evt.OldValue.equals(val3) && li2.evt.NewValue.equals(val1) && li2.evt.Source == cl;
  605. r[i++]= li3.evt.OldValue.equals(val3) && li3.evt.NewValue.equals(val1) && li3.evt.Source == cl ;
  606. li.reset();
  607. li2.reset();
  608. li3.reset();
  609. cl.removePropertyChangeListener("PropByteA",li);
  610. cl.setPropertyValue("PropByteA", val1);
  611. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0
  612. && li2.nChangeCalled == 1 && li2.nVetoCalled == 0
  613. && li3.nChangeCalled == 1 && li3.nVetoCalled == 0;
  614. cl.removePropertyChangeListener("PropByteA", li2);
  615. li.reset();
  616. li2.reset();
  617. li3.reset();
  618. cl.setPropertyValue("PropByteA", val1);
  619. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0
  620. && li2.nChangeCalled == 0 && li2.nVetoCalled == 0
  621. && li3.nChangeCalled == 1 && li3.nVetoCalled == 0;
  622. cl.removePropertyChangeListener("", li3);
  623. li.reset();
  624. li2.reset();
  625. li3.reset();
  626. cl.setPropertyValue("PropByteA", val2);
  627. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0
  628. && li2.nChangeCalled == 0 && li2.nVetoCalled == 0
  629. && li3.nChangeCalled == 0 && li3.nVetoCalled == 0;
  630. cl.addPropertyChangeListener("PropByteA", li);
  631. cl.addPropertyChangeListener("PropByteA", li2);
  632. cl.addPropertyChangeListener("", li3);
  633. cl.dispose();
  634. li.reset();
  635. li2.reset();
  636. li3.reset();
  637. try {
  638. cl.setPropertyValue("PropByteA", val2); i++;
  639. }catch (DisposedException e)
  640. {
  641. r[i++]= true;
  642. }
  643. //Vetoable tests
  644. cl= new TestClass();
  645. li.reset();
  646. li2.reset();
  647. li3.reset();
  648. cl.addVetoableChangeListener("PropByteA", li);
  649. val1= new Byte((byte)115);
  650. cl.setPropertyValue("PropByteA", val1);
  651. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0;
  652. cl.propByteA.Attributes = PropertyAttribute.CONSTRAINED;
  653. cl.addVetoableChangeListener("PropByteA", li);
  654. val2= new Byte((byte)116);
  655. li.reset();
  656. cl.setPropertyValue("PropByteA", val2);
  657. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 1;
  658. r[i++]= li.evt.OldValue.equals(val1) && li.evt.NewValue.equals(val2) && li.evt.Source == cl;
  659. li.reset();
  660. li2.reset();
  661. li3.reset();
  662. cl.addVetoableChangeListener("PropByteA", li2);
  663. val3= new Byte((byte) 117);
  664. cl.setPropertyValue("PropByteA", val3);
  665. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 1
  666. && li2.nChangeCalled == 0 && li2.nVetoCalled == 1;
  667. r[i++]= li.evt.OldValue.equals(val2) && li.evt.NewValue.equals(val3) && li.evt.Source == cl
  668. && li2.evt.OldValue.equals(val2) && li2.evt.NewValue.equals(val3) && li2.evt.Source == cl ;
  669. li.reset();
  670. li2.reset();
  671. li3.reset();
  672. val1= new Byte((byte)118);
  673. cl.addVetoableChangeListener("", li3);
  674. cl.setPropertyValue("PropByteA", val1);
  675. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 1
  676. && li2.nChangeCalled == 0 && li2.nVetoCalled == 1
  677. && li3.nChangeCalled == 0 && li3.nVetoCalled == 1;
  678. r[i++]= li.evt.OldValue.equals(val3) && li.evt.NewValue.equals(val1) && li.evt.Source == cl;
  679. r[i++]= li2.evt.OldValue.equals(val3) && li2.evt.NewValue.equals(val1) && li2.evt.Source == cl;
  680. r[i++]= li3.evt.OldValue.equals(val3) && li3.evt.NewValue.equals(val1) && li3.evt.Source == cl ;
  681. li.reset();
  682. li2.reset();
  683. li3.reset();
  684. // Test Veto Exception
  685. cl.setPropertyValue("PropByteA", val1);
  686. li.bVeto= true;
  687. try {
  688. cl.setPropertyValue("PropByteA", val2);i++;
  689. } catch (PropertyVetoException e)
  690. {
  691. r[i++]= true;
  692. }
  693. r[i++]= cl.bytePropA == val1.byteValue();
  694. li.bVeto= false;
  695. li.reset();
  696. li2.reset();
  697. li3.reset();
  698. cl.removeVetoableChangeListener("PropByteA",li);
  699. cl.setPropertyValue("PropByteA", val1);
  700. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0
  701. && li2.nChangeCalled == 0 && li2.nVetoCalled == 1
  702. && li3.nChangeCalled == 0 && li3.nVetoCalled == 1;
  703. cl.removeVetoableChangeListener("PropByteA", li2);
  704. li.reset();
  705. li2.reset();
  706. li3.reset();
  707. cl.setPropertyValue("PropByteA", val1);
  708. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0
  709. && li2.nChangeCalled == 0 && li2.nVetoCalled == 0
  710. && li3.nChangeCalled == 0 && li3.nVetoCalled == 1;
  711. cl.removeVetoableChangeListener("", li3);
  712. li.reset();
  713. li2.reset();
  714. li3.reset();
  715. cl.setPropertyValue("PropByteA", val2);
  716. r[i++]= li.nChangeCalled == 0 && li.nVetoCalled == 0
  717. && li2.nChangeCalled == 0 && li2.nVetoCalled == 0
  718. && li3.nChangeCalled == 0 && li3.nVetoCalled == 0;
  719. cl.addVetoableChangeListener("PropByteA", li);
  720. cl.addVetoableChangeListener("PropByteA", li2);
  721. cl.addVetoableChangeListener("", li3);
  722. cl.dispose();
  723. li.reset();
  724. li2.reset();
  725. li3.reset();
  726. try {
  727. cl.setPropertyValue("PropByteA", val2);
  728. }catch (DisposedException e)
  729. {
  730. r[i++]= true;
  731. }
  732. }catch (Exception e)
  733. {
  734. i++;
  735. }
  736. boolean bOk= true;
  737. for (int c= 0; c < i; c++)
  738. bOk= bOk && r[c];
  739. if (bOk == false)
  740. System.out.println("Failed");
  741. else
  742. System.out.println("Ok");
  743. return bOk;
  744. }
  745. public boolean getPropertySetInfo()
  746. {
  747. System.out.println("PropertySet.getPropertySetInfo");
  748. boolean[] r= new boolean[50];
  749. int i= 0;
  750. TestClass cl= new TestClass();
  751. try {
  752. XPropertySetInfo info= cl.getPropertySetInfo();
  753. Property[] arProps= info.getProperties();
  754. Property[] arRegProps= cl.getRegisteredProperties();
  755. r[i++]= arProps.length == arRegProps.length;
  756. for (int j= 0; j < arProps.length; j++)
  757. {
  758. boolean bFound= false;
  759. for (int k= 0; k < arRegProps.length; k++)
  760. {
  761. if (arProps[j] == arRegProps[k])
  762. {
  763. bFound= true;
  764. break;
  765. }
  766. }
  767. if ( !bFound)
  768. r[i++]= false;
  769. }
  770. for (int j= 0; j < arRegProps.length; j++)
  771. {
  772. Property prop= info.getPropertyByName(arRegProps[j].Name);
  773. if (prop != arRegProps[j])
  774. r[i++]= false;
  775. if (! info.hasPropertyByName(arRegProps[j].Name))
  776. r[i++]= false;
  777. }
  778. }catch(java.lang.Exception e){
  779. System.out.println(e.getMessage());
  780. i++;
  781. }
  782. boolean bOk= true;
  783. for (int c= 0; c < i; c++)
  784. bOk= bOk && r[c];
  785. if (bOk == false)
  786. System.out.println("Failed");
  787. else
  788. System.out.println("Ok");
  789. return bOk;
  790. }
  791. public boolean setFastPropertyValue()
  792. {
  793. System.out.println("PropertySet.setFastPropertyValue");
  794. boolean[] r= new boolean[50];
  795. int i= 0;
  796. TestClass cl= new TestClass();
  797. try {
  798. cl.setFastPropertyValue(5, new Integer(111));
  799. r[i++]= cl.intPropA == 111;
  800. try {
  801. cl.setFastPropertyValue(-1, new Integer(1)); i++;
  802. } catch(UnknownPropertyException e)
  803. {
  804. r[i++]= true;
  805. }
  806. }catch(java.lang.Exception e){
  807. System.out.println(e.getMessage());
  808. i++;
  809. }
  810. boolean bOk= true;
  811. for (int c= 0; c < i; c++)
  812. bOk= bOk && r[c];
  813. if (bOk == false)
  814. System.out.println("Failed");
  815. else
  816. System.out.println("Ok");
  817. return bOk;
  818. }
  819. public boolean getFastPropertyValue()
  820. {
  821. System.out.println("PropertySet.setFastPropertyValue");
  822. boolean[] r= new boolean[50];
  823. int i= 0;
  824. TestClass cl= new TestClass();
  825. try {
  826. cl.setFastPropertyValue(5, new Integer(111));
  827. Integer aInt= (Integer) cl.getFastPropertyValue(5);
  828. r[i++]= aInt.intValue() == 111;
  829. }catch(java.lang.Exception e){
  830. System.out.println(e.getMessage());
  831. i++;
  832. }
  833. boolean bOk= true;
  834. for (int c= 0; c < i; c++)
  835. bOk= bOk && r[c];
  836. if (bOk == false)
  837. System.out.println("Failed");
  838. else
  839. System.out.println("Ok");
  840. return bOk;
  841. }
  842. public boolean setPropertyValues()
  843. {
  844. System.out.println("PropertySet.setPropertyValues");
  845. boolean[] r= new boolean[50];
  846. int i= 0;
  847. TestClass cl= new TestClass();
  848. try {
  849. cl.setPropertyValues(new String[0], new Object[0]);
  850. String[] arNames= new String[] {"PropCharA","PropIntClass","PropObjectA"};
  851. Character aChar= new Character('A');
  852. Integer aInt= new Integer(111);
  853. Byte aByte= new Byte((byte)11);
  854. Object[] values= new Object[]{aChar, aInt, aByte};
  855. cl.setPropertyValues(arNames, values);
  856. r[i++]= cl.charPropA == 'A' && cl.intClassProp.intValue() == 111 && ((Byte)cl.objectPropA).byteValue() == 11;
  857. arNames= new String[] {"blabla","PropIntClass","PropObjectA"};
  858. cl.resetPropertyMembers();
  859. cl.setPropertyValues(arNames, values);
  860. r[i++]= cl.intClassProp.intValue() == 111 && ((Byte)cl.objectPropA).byteValue() == 11;
  861. }catch(java.lang.Exception e){
  862. System.out.println(e.getMessage());
  863. i++;
  864. }
  865. boolean bOk= true;
  866. for (int c= 0; c < i; c++)
  867. bOk= bOk && r[c];
  868. if (bOk == false)
  869. System.out.println("Failed");
  870. else
  871. System.out.println("Ok");
  872. return bOk;
  873. }
  874. public boolean getPropertyValues()
  875. {
  876. System.out.println("PropertySet.getPropertyValues");
  877. boolean[] r= new boolean[50];
  878. int i= 0;
  879. TestClass cl= new TestClass();
  880. try {
  881. cl.charPropA= 'A';
  882. cl.intClassProp= new Integer(111);
  883. cl.objectPropA= new Byte((byte)11);
  884. Object[] values= cl.getPropertyValues(new String[] {"PropCharA","PropIntClass","PropObjectA"});
  885. r[i++]= ((Character) values[0]).charValue() == 'A' && ((Integer) values[1]).intValue() == 111
  886. && ((Byte) values[2]).byteValue() == 11;
  887. }catch(java.lang.Exception e){
  888. System.out.println(e.getMessage());
  889. i++;
  890. }
  891. boolean bOk= true;
  892. for (int c= 0; c < i; c++)
  893. bOk= bOk && r[c];
  894. if (bOk == false)
  895. System.out.println("Failed");
  896. else
  897. System.out.println("Ok");
  898. return bOk;
  899. }
  900. // Currently the listeners are always notified if one of properties has changed.
  901. // The property names in the first argument are ignored.
  902. public boolean addPropertiesChangeListener()
  903. {
  904. System.out.println("PropertySet.addPropertiesChangeListener\n" +
  905. "PropertySet.removePropertiesChangeListener\n" +
  906. "notification of such listeners");
  907. boolean[] r= new boolean[50];
  908. int i= 0;
  909. TestClass cl= new TestClass();
  910. try {
  911. Listener li1= new Listener();
  912. Listener li2= new Listener();
  913. cl.addPropertiesChangeListener(new String[]{"PropCharA"}, li1);
  914. cl.setPropertyValue("PropCharA", new Character('B'));
  915. r[i++]= li1.nPropertiesChange == 0;
  916. cl.propCharA.Attributes= PropertyAttribute.BOUND;
  917. cl.setPropertyValue("PropCharA", new Character('C'));
  918. r[i++]= li1.nPropertiesChange == 1;
  919. PropertyChangeEvent evt= li1.arEvt[0];
  920. r[i++]= evt.PropertyName.equals("PropCharA") && ((Character)evt.OldValue).charValue() == 'B'
  921. && ((Character) evt.NewValue).charValue() == 'C';
  922. li1.reset();
  923. cl.removePropertiesChangeListener(li1);
  924. cl.setPropertyValue("PropCharA", new Character('F'));
  925. r[i++]= li1.nPropertiesChange == 0;
  926. }catch(java.lang.Exception e){
  927. System.out.println(e.getMessage());
  928. i++;
  929. }
  930. boolean bOk= true;
  931. for (int c= 0; c < i; c++)
  932. bOk= bOk && r[c];
  933. if (bOk == false)
  934. System.out.println("Failed");
  935. else
  936. System.out.println("Ok");
  937. return bOk;
  938. }
  939. public boolean firePropertiesChangeEvent()
  940. {
  941. System.out.println("PropertySet.firePropertiesChangeEvent");
  942. boolean[] r= new boolean[50];
  943. int i= 0;
  944. TestClass cl= new TestClass();
  945. try {
  946. Listener li1= new Listener();
  947. cl.intClassProp= new Integer(111);
  948. cl.charPropA= 'A';
  949. cl.firePropertiesChangeEvent(new String[]{"PropCharA","PropIntClass"}, li1);
  950. r[i++]= li1.nPropertiesChange == 1;
  951. PropertyChangeEvent[] arEvt= li1.arEvt;
  952. r[i++]= arEvt[0].PropertyName.equals("PropCharA")
  953. && ((Character) arEvt[0].OldValue).charValue() == 'A'
  954. && ((Character) arEvt[0].NewValue).charValue() == 'A';
  955. r[i++]= arEvt[1].PropertyName.equals("PropIntClass")
  956. && ((Integer) arEvt[1].OldValue).intValue() == 111
  957. && ((Integer) arEvt[1].NewValue).intValue() == 111;
  958. }catch(java.lang.Exception e){
  959. System.out.println(e.getMessage());
  960. i++;
  961. }
  962. boolean bOk= true;
  963. for (int c= 0; c < i; c++)
  964. bOk= bOk && r[c];
  965. if (bOk == false)
  966. System.out.println("Failed");
  967. else
  968. System.out.println("Ok");
  969. return bOk;
  970. }
  971. public boolean registerProperty1()
  972. {
  973. TestClass2 cl= new TestClass2();
  974. return cl.test_registerProperty1();
  975. }
  976. public boolean registerProperty2()
  977. {
  978. TestClass2 cl= new TestClass2();
  979. return cl.test_registerProperty2();
  980. }
  981. public static boolean test()
  982. {
  983. PropertySet_Test test= new PropertySet_Test();
  984. boolean r[]= new boolean[50];
  985. int i= 0;
  986. r[i++]= test.convertPropertyValue();
  987. r[i++]= test.setPropertyValueNoBroadcast();
  988. r[i++]= test.setPropertyValue();
  989. r[i++]= test.addPropertyChangeListener();
  990. r[i++]= test.getPropertySetInfo();
  991. r[i++]= test.setFastPropertyValue();
  992. r[i++]= test.getFastPropertyValue();
  993. r[i++]= test.setPropertyValues();
  994. r[i++]= test.getPropertyValues();
  995. r[i++]= test.addPropertiesChangeListener();
  996. r[i++]= test.firePropertiesChangeEvent();
  997. r[i++]= test.registerProperty1();
  998. r[i++]= test.registerProperty2();
  999. boolean bOk= true;
  1000. for (int c= 0; c < i; c++)
  1001. bOk= bOk && r[c];
  1002. if (bOk == false)
  1003. System.out.println("Errors occurred!");
  1004. else
  1005. System.out.println("No errors.");
  1006. return bOk;
  1007. }
  1008. public static void main(String[] args)
  1009. {
  1010. test();
  1011. }
  1012. }
  1013. class TestClass extends PropertySet
  1014. {
  1015. public Property propBoolA= new Property("PropBoolA", 1, new Type(Boolean.TYPE), (short)0);
  1016. public boolean boolPropA;
  1017. public Property propCharA= new Property("PropCharA", 2, new Type(Character.TYPE), (short) 0);
  1018. public char charPropA;
  1019. public Property propByteA= new Property("PropByteA", 3, new Type(Byte.TYPE), (short) 0);
  1020. public byte bytePropA;
  1021. public Property propShortA= new Property("PropShortA", 4, new Type(Short.TYPE), (short) 0);
  1022. public short shortPropA;
  1023. public Property propIntA= new Property("PropIntA", 5, new Type(Integer.TYPE), (short) 0);
  1024. public int intPropA;
  1025. public Property propLongA= new Property("PropLongA", 6, new Type(Long.TYPE), (short) 0);
  1026. public long longPropA;
  1027. public Property propFloatA= new Property("PropFloatA", 7, new Type(Float.TYPE), (short) 0);
  1028. public float floatPropA;
  1029. public Property propDoubleA= new Property("PropDoubleA", 8, new Type(Double.TYPE), (short) 0);
  1030. public double doublePropA;
  1031. public Property propStringA= new Property("PropStringA", 9, new Type(String.class), (short) 0);
  1032. public String stringPropA;
  1033. public Property propArrayByteA= new Property("PropArrayByteA", 10, new Type(byte[].class), (short) 0);
  1034. public byte[] arBytePropA;
  1035. public Property propTypeA= new Property("PropTypeA", 11, new Type(Type.class), (short) 0);
  1036. public Type typePropA;
  1037. public Property propObjectA= new Property("PropObjectA",12, new Type(Object.class), (short) 0);
  1038. public Object objectPropA;
  1039. public Property propAnyA= new Property("PropAnyA", 13, new Type(Any.class), (short) 0);
  1040. public Any anyPropA;
  1041. public Property propXInterfaceA= new Property("PropXInterfaceA", 13, new Type(Any.class), (short) 0);
  1042. public XInterface xInterfacePropA;
  1043. public Property propXWeakA= new Property("PropXWeakA", 13, new Type(Any.class), (short) 0);
  1044. public XWeak xWeakPropA;
  1045. public Property propEnum =
  1046. new Property("PropEnum", 14, new Type("com.sun.star.beans.PropertyState", TypeClass.ENUM), (short)0);
  1047. public com.sun.star.beans.PropertyState enumPropertyState = com.sun.star.beans.PropertyState.DEFAULT_VALUE;
  1048. // Test private, protected, package access, Anys as arguments and members, members whith a value
  1049. public Property propBoolB= new Property("PropBoolB", 101, new Type(Boolean.TYPE), (short) 0);
  1050. protected boolean boolPropB;
  1051. public Property propBoolC= new Property("PropBoolC", 201, new Type(Boolean.TYPE), (short) 0);
  1052. boolean boolPropC;
  1053. public Property propBoolD= new Property("PropBoolD", 301, new Type(Boolean.TYPE), (short) 0);
  1054. private boolean boolPropD;
  1055. public Property propBoolClass= new Property("PropBoolClass", 1001, new Type(Boolean.class), (short) 0);
  1056. public Boolean boolClassProp;
  1057. public Property propCharClass= new Property("PropCharClass", 1002, new Type(Character.class), (short) 0);
  1058. public Character charClassProp;
  1059. public Property propByteClass= new Property("PropByteClass", 1003, new Type(Byte.class), (short) 0);
  1060. public Byte byteClassProp;
  1061. public Property propShortClass= new Property("PropShortClass", 1004, new Type(Short.class), (short) 0);
  1062. public Short shortClassProp;
  1063. public Property propIntClass= new Property("PropIntClass", 1005, new Type(Integer.class), (short) 0);
  1064. public Integer intClassProp;
  1065. public Property propLongClass= new Property("PropLongClass", 1006, new Type(Long.class), (short) 0);
  1066. public Long longClassProp;
  1067. public Property propFloatClass= new Property("PropFloatClass", 1007, new Type(Float.class), (short) 0);
  1068. public Float floatClassProp;
  1069. public Property propDoubleClass= new Property("PropDoubleClass", 1008, new Type(Double.class), (short) 0);
  1070. public Double doubleClassProp;
  1071. public TestClass()
  1072. {
  1073. super();
  1074. // When adding properties then modify the getRegisteredProperties method
  1075. //registerProperty(String name, int handle, Type type, short attributes, String memberName)
  1076. registerProperty(propBoolA, "boolPropA");
  1077. registerProperty(propCharA, "charPropA");
  1078. registerProperty(propByteA, "bytePropA");
  1079. registerProperty(propShortA, "shortPropA");
  1080. registerProperty(propIntA, "intPropA");
  1081. registerProperty(propLongA, "longPropA");
  1082. registerProperty(propFloatA, "floatPropA");
  1083. registerProperty(propDoubleA, "doublePropA");
  1084. registerProperty(propStringA, "stringPropA");
  1085. registerProperty(propArrayByteA, "arBytePropA");
  1086. registerProperty(propTypeA, "typePropA");
  1087. registerProperty(propObjectA, "objectPropA");
  1088. registerProperty(propAnyA, "anyPropA");
  1089. registerProperty(propXInterfaceA, "xInterfacePropA");
  1090. registerProperty(propXWeakA, "xWeakPropA");
  1091. registerProperty(propEnum,"enumPropertyState");
  1092. registerProperty(propBoolB, "boolPropB");
  1093. registerProperty(propBoolC, "boolPropC");
  1094. registerProperty(propBoolD, "boolPropD");
  1095. registerProperty(propBoolClass, "boolClassProp");
  1096. registerProperty(propCharClass, "charClassProp");
  1097. registerProperty(propByteClass, "byteClassProp");
  1098. registerProperty(propShortClass, "shortClassProp");
  1099. registerProperty(propIntClass, "intClassProp");
  1100. registerProperty(propLongClass, "longClassProp");
  1101. registerProperty(propFloatClass, "floatClassProp");
  1102. registerProperty(propDoubleClass, "doubleClassProp");
  1103. }
  1104. /** When adding properties then modify the getRegisteredProperties method
  1105. */
  1106. public Property[] getRegisteredProperties()
  1107. {
  1108. return new Property[] {
  1109. propBoolA, propCharA, propByteA, propShortA,
  1110. propIntA, propLongA, propFloatA, propDoubleA,
  1111. propStringA, propArrayByteA, propTypeA, propObjectA,
  1112. propAnyA, propXInterfaceA, propXWeakA, propEnum, propBoolB,
  1113. propBoolC, propBoolD, propBoolClass, propCharClass,
  1114. propByteClass, propShortClass, propIntClass, propLongClass,
  1115. propFloatClass, propDoubleClass
  1116. };
  1117. }
  1118. public boolean test_convertPropertyValue()
  1119. {
  1120. boolean[] r= new boolean[150];
  1121. int i= 0;
  1122. resetPropertyMembers();
  1123. Object[] outOldVal= new Object[1];
  1124. Object[] outNewVal= new Object[1];
  1125. Object value= new Boolean(true);
  1126. try
  1127. {
  1128. r[i++]= convertPropertyValue(propBoolA, outNewVal, outOldVal, value);
  1129. r[i++]= outNewVal[0] instanceof Boolean && outNewVal[0].equals(value) && outOldVal[0].equals(new Boolean(false));
  1130. value= new Character('A');
  1131. r[i++]= convertPropertyValue(propCharA, outNewVal, outOldVal, value);
  1132. r[i++]= outNewVal[0] instanceof Character && outNewVal[0].equals(value) && outOldVal[0].equals(new Character((char)0));
  1133. charPropA= 'B';
  1134. r[i++]= convertPropertyValue(propCharA, outNewVal, outOldVal, value);
  1135. r[i++]= outNewVal[0] instanceof Character && outNewVal[0].equals(value) && outOldVal[0].equals(new Character('B'));
  1136. value= new Byte((byte) 111);
  1137. r[i++]= convertPropertyValue(propByteA, outNewVal, outOldVal, value);
  1138. r[i++]= outNewVal[0] instanceof Byte && outNewVal[0].equals(value);
  1139. value= new Short((short) 112);
  1140. r[i++]= convertPropertyValue(propShortA, outNewVal, outOldVal, value);
  1141. r[i++]= outNewVal[0] instanceof Short && outNewVal[0].equals(value);
  1142. value= new Integer( 113);
  1143. r[i++]= convertPropertyValue(propIntA, outNewVal, outOldVal, value);
  1144. r[i++]= outNewVal[0] instanceof Integer && outNewVal[0].equals(value);
  1145. value= new Long(114);
  1146. r[i++]= convertPropertyValue(propLongA, outNewVal, outOldVal, value);
  1147. r[i++]= outNewVal[0] instanceof Long && outNewVal[0].equals(value);
  1148. value= new Float(3.14);
  1149. r[i++]= convertPropertyValue(propFloatA, outNewVal, outOldVal, value);
  1150. r[i++]= outNewVal[0] instanceof Float && outNewVal[0].equals(value);
  1151. value= new Double(3.145);
  1152. r[i++]= convertPropertyValue(propDoubleA, outNewVal, outOldVal, value);
  1153. r[i++]= outNewVal[0] instanceof Double && outNewVal[0].equals(value);
  1154. value= "string";
  1155. r[i++]= convertPropertyValue(propStringA, outNewVal, outOldVal, value);
  1156. r[i++]= outNewVal[0] instanceof String && outNewVal[0].equals(value);
  1157. value= new byte[]{1,2,3};
  1158. arBytePropA= null;
  1159. r[i++]= convertPropertyValue(propArrayByteA, outNewVal, outOldVal, value);
  1160. r[i++]= outNewVal[0] instanceof byte[] && outNewVal[0].equals(value) && outOldVal[0] == null;
  1161. r[i++]= convertPropertyValue(propArrayByteA, outNewVal, outOldVal, value);
  1162. r[i++]= outOldVal[0] == null;
  1163. value= new Type(XInterface.class);
  1164. r[i++]= convertPropertyValue(propTypeA, outNewVal, outOldVal, value);
  1165. r[i++]= outNewVal[0] instanceof Type && outNewVal[0].equals(value);
  1166. value= new Object(); // TypeClass.VOID
  1167. r[i++]= convertPropertyValue(propObjectA, outNewVal, outOldVal, value);
  1168. r[i++]= outNewVal[0] instanceof Object && outNewVal[0].equals(value);
  1169. value= new Integer(111);
  1170. r[i++]= convertPropertyValue(propObjectA, outNewVal, outOldVal, value);
  1171. r[i++]= outNewVal[0] instanceof Integer && outNewVal[0].equals(value);
  1172. value= new ComponentBase();
  1173. r[i++]= convertPropertyValue(propObjectA, outNewVal, outOldVal, value);
  1174. r[i++]= outNewVal[0] instanceof Object && outNewVal[0].equals(value);
  1175. value= new Integer(111);
  1176. r[i++]= convertPropertyValue(propAnyA, outNewVal, outOldVal, value);
  1177. r[i++]= outNewVal[0] instanceof Any && ((Any)outNewVal[0]).getType().equals(new Type(Integer.class))
  1178. && ((Any)outNewVal[0]).getObject().equals(value);
  1179. XWeak oWeak= new ComponentBase();
  1180. value= oWeak;
  1181. // The returned Any must contain an XInterface
  1182. r[i++]= convertPropertyValue(propAnyA, outNewVal, outOldVal, value);
  1183. r[i++]= ((Any) outNewVal[0]).getType().equals(new Type(XInterface.class))
  1184. && ((Any) outNewVal[0]).getObject() == oWeak;
  1185. value= new ComponentBase();
  1186. r[i++]= convertPropertyValue(propXInterfaceA, outNewVal, outOldVal, value);
  1187. r[i++]= outNewVal[0] instanceof XInterface && outNewVal[0].equals(value);
  1188. r[i++]= convertPropertyValue(propXWeakA, outNewVal, outOldVal, value);
  1189. r[i++]= outNewVal[0] instanceof XWeak && outNewVal[0].equals(value);
  1190. value = com.sun.star.beans.PropertyState.DIRECT_VALUE;
  1191. r[i++]= convertPropertyValue(propEnum, outNewVal, outOldVal, value);
  1192. r[i++]= outNewVal[0] instanceof com.sun.star.uno.Enum && outNewVal[0].equals(value);
  1193. // Any arguments ------------------------------------------------------------------
  1194. value= new Any( new Type(Integer.class),new Integer(111));
  1195. r[i++]= convertPropertyValue(propIntA, outNewVal, outOldVal, value);
  1196. r[i++]= outNewVal[0] instanceof Integer && ((Integer)outNewVal[0]).equals( ((Any)value).getObject());
  1197. value= new Any(new Type(Boolean.class), new Boolean(true));
  1198. r[i++]= convertPropertyValue(propBoolA, outNewVal, outOldVal, value);
  1199. r[i++]= outNewVal[0] instanceof Boolean && ((Boolean)outNewVal[0]).equals(((Any) value).getObject());
  1200. //Character, Byte, Short, Long
  1201. // must fail
  1202. value= new Any(new Type(Object.class), new Object());
  1203. r[i++]= convertPropertyValue(propObjectA, outNewVal, outOldVal, value);
  1204. r[i++]= convertPropertyValue(propAnyA, outNewVal, outOldVal, value);
  1205. value= new Any(new Type(Integer.class), new Integer(111));
  1206. r[i++]= convertPropertyValue(propObjectA, outNewVal, outOldVal, value);
  1207. r[i++]= outNewVal[0] instanceof Integer && outNewVal[0].equals( ((Any)value).getObject());
  1208. r[i++]= convertPropertyValue(propAnyA, outNewVal, outOldVal, value);
  1209. r[i++]= outNewVal[0] instanceof Any && ((Any) outNewVal[0]).getType().equals( ((Any) value).getType())
  1210. && ((Any) outNewVal[0]).getObject().equals( ((Any) value).getObject());
  1211. value= new Any(new Type(XInterface.class), new ComponentBase());
  1212. r[i++]= convertPropertyValue(propObjectA, outNewVal, outOldVal, value);
  1213. r[i++]= outNewVal[0] instanceof XInterface && outNewVal[0] == ((Any) value).getObject();
  1214. r[i++]= convertPropertyValue(propXInterfaceA, outNewVal, outOldVal, value);
  1215. r[i++]= outNewVal[0] == ((Any) value).getObject();
  1216. value= new Any(new Type(byte[].class), new byte[]{1,2,3});
  1217. r[i++]= convertPropertyValue(propArrayByteA, outNewVal, outOldVal, value);
  1218. r[i++]= outNewVal[0] instanceof byte[];
  1219. // test private, protected, package fields
  1220. value= new Boolean(true);
  1221. r[i++]= convertPropertyValue(propBoolB, outNewVal, outOldVal, value);
  1222. r[i++]= ((Boolean)value).booleanValue() == ((Boolean) outNewVal[0]).booleanValue();
  1223. r[i++]= convertPropertyValue(propBoolC, outNewVal, outOldVal, value);
  1224. r[i++]= ((Boolean)value).booleanValue() == ((Boolean) outNewVal[0]).booleanValue();
  1225. // must fail because the the member boolPropD is private
  1226. try{
  1227. convertPropertyValue(propBoolD, outNewVal, outOldVal, value);
  1228. i++;
  1229. }catch (Exception e)
  1230. {
  1231. r[i++]= true;
  1232. }
  1233. // Properties member of type Byte,Short etc.
  1234. value= new Boolean(true);
  1235. r[i++]= convertPropertyValue(propBoolClass, outNewVal, outOldVal, value);
  1236. r[i++]= outNewVal[0] instanceof Boolean && outNewVal[0].equals(value);
  1237. value= new Character('A');
  1238. r[i++]= convertPropertyValue(propCharClass, outNewVal, outOldVal, value);
  1239. r[i++]= outNewVal[0] instanceof Character && outNewVal[0].equals(value);
  1240. value= new Byte((byte) 111);
  1241. r[i++]= convertPropertyValue(propByteClass, outNewVal, outOldVal, value);
  1242. r[i++]= outNewVal[0] instanceof Byte && outNewVal[0].equals(value);
  1243. value= new Short((short) 112);
  1244. r[i++]= convertPropertyValue(propShortClass, outNewVal, outOldVal, value);
  1245. r[i++]= outNewVal[0] instanceof Short && outNewVal[0].equals(value);
  1246. value= new Integer( 113);
  1247. r[i++]= convertPropertyValue(propIntClass, outNewVal, outOldVal, value);
  1248. r[i++]= outNewVal[0] instanceof Integer && outNewVal[0].equals(value);
  1249. value= new Long(114);
  1250. r[i++]= convertPropertyValue(propLongClass, outNewVal, outOldVal, value);
  1251. r[i++]= outNewVal[0] instanceof Long && outNewVal[0].equals(value);
  1252. value= new Float(3.14);
  1253. r[i++]= convertPropertyValue(propFloatClass, outNewVal, outOldVal, value);
  1254. r[i++]= outNewVal[0] instanceof Float && outNewVal[0].equals(value);
  1255. value= new Double(3.145);
  1256. r[i++]= convertPropertyValue(propDoubleA, outNewVal, outOldVal, value);
  1257. r[i++]= outNewVal[0] instanceof Double && outNewVal[0].equals(value);
  1258. }catch (com.sun.star.uno.Exception e)
  1259. {
  1260. i++;
  1261. }
  1262. boolean bOk= true;
  1263. for (int c= 0; c < i; c++)
  1264. bOk= bOk && r[c];
  1265. return bOk;
  1266. }
  1267. public boolean test_setPropertyValueNoBroadcast()
  1268. {
  1269. boolean[] r= new boolean[150];
  1270. int i= 0;
  1271. resetPropertyMembers();
  1272. try {
  1273. Object value= new Boolean(true);
  1274. setPropertyValueNoBroadcast(propBoolA, value);
  1275. r[i++]= boolPropA == ((Boolean) value).booleanValue();
  1276. value= new Character('A');
  1277. setPropertyValueNoBroadcast(propCharA, value);
  1278. r[i++]= charPropA == ((Character) value).charValue();
  1279. value= new Byte((byte) 111);
  1280. setPropertyValueNoBroadcast(propByteA, value);
  1281. r[i++]= bytePropA == ((Byte)value).byteValue();
  1282. value= new Short((short) 112);
  1283. setPropertyValueNoBroadcast(propShortA, value);
  1284. r[i++]= shortPropA == ((Short) value).shortValue();
  1285. value= new Integer( 113);
  1286. setPropertyValueNoBroadcast(propIntA, value);
  1287. r[i++]= intPropA == ((Integer) value).intValue();
  1288. value= new Long(114);
  1289. setPropertyValueNoBroadcast(propLongA, value);
  1290. r[i++]= longPropA == ((Long) value).longValue();
  1291. value= new Float(3.14);
  1292. setPropertyValueNoBroadcast(propFloatA, value);
  1293. r[i++]= floatPropA == ((Float) value).floatValue();
  1294. value= new Double(3.145);
  1295. setPropertyValueNoBroadcast(propDoubleA, value);
  1296. r[i++]= doublePropA == ((Double) value).doubleValue();
  1297. value= "string";
  1298. setPropertyValueNoBroadcast(propStringA, value);
  1299. r[i++]= stringPropA.equals(value);
  1300. value= new byte[]{1,2,3};
  1301. setPropertyValueNoBroadcast(propArrayByteA, value);
  1302. r[i++]= arBytePropA.equals(value);
  1303. value= new Type(XInterface.class);
  1304. setPropertyValueNoBroadcast(propTypeA, value);
  1305. r[i++]= typePropA.equals(value);
  1306. value= new Integer(111);
  1307. setPropertyValueNoBroadcast(propObjectA, value);
  1308. r[i++]= objectPropA.equals(value);
  1309. value= (XInterface) new ComponentBase();
  1310. setPropertyValueNoBroadcast(propObjectA, value);
  1311. r[i++]= objectPropA.equals(value);
  1312. value= new Any( new Type(Integer.TYPE), new Integer(111));
  1313. setPropertyValueNoBroadcast(propAnyA, value);
  1314. r[i++]= util.anyEquals(anyPropA, value);
  1315. value= new ComponentBase();
  1316. setPropertyValueNoBroadcast(propXInterfaceA, value);
  1317. r[i++]= xInterfacePropA instanceof XInterface && xInterfacePropA.equals(value);
  1318. setPropertyValueNoBroadcast(propXWeakA, value);
  1319. r[i++]= xInterfacePropA instanceof XWeak && xInterfacePropA.equals(value);
  1320. value = com.sun.star.beans.PropertyState.AMBIGUOUS_VALUE;
  1321. setPropertyValueNoBroadcast(propEnum, value);
  1322. r[i++]= enumPropertyState == value;
  1323. value= new Boolean(true);
  1324. setPropertyValueNoBroadcast(propBoolB, value);
  1325. r[i++]= boolPropB == ((Boolean) value).booleanValue();
  1326. setPropertyValueNoBroadcast(propBoolC, value);
  1327. r[i++]= boolPropC == ((Boolean) value).booleanValue();
  1328. // must fail because the the member boolPropD is private
  1329. try{
  1330. setPropertyValueNoBroadcast(propBoolD, value);
  1331. }catch(com.sun.star.lang.WrappedTargetException e)
  1332. {
  1333. r[i++]= true;
  1334. }
  1335. }catch (java.lang.Exception e)
  1336. {
  1337. i++;
  1338. }
  1339. boolean bOk= true;
  1340. for (int c= 0; c < i; c++)
  1341. bOk= bOk && r[c];
  1342. return bOk;
  1343. }
  1344. void resetPropertyMembers()
  1345. {
  1346. boolPropA= false;
  1347. charPropA= (char) 0;
  1348. bytePropA= 0;
  1349. shortPropA= 0;
  1350. intPropA= 0;
  1351. longPropA= 0;
  1352. floatPropA= 0;
  1353. doublePropA= 0.;
  1354. stringPropA= null;
  1355. arBytePropA= null;
  1356. typePropA= null;
  1357. objectPropA= null;
  1358. anyPropA= null;
  1359. xInterfacePropA= null;
  1360. xWeakPropA= null;
  1361. enumPropertyState = com.sun.star.beans.PropertyState.DEFAULT_VALUE;
  1362. boolPropB= false;
  1363. boolPropC= false;
  1364. boolPropD= false;
  1365. boolClassProp= null;
  1366. charClassProp= null;
  1367. byteClassProp= null;
  1368. shortClassProp= null;
  1369. intClassProp= null;
  1370. longClassProp= null;
  1371. floatClassProp= null;
  1372. doubleClassProp= null;
  1373. }
  1374. }
  1375. class TestClass2 extends PropertySet
  1376. {
  1377. public char charA;
  1378. protected char charB;
  1379. char charC;
  1380. int intMemberA;
  1381. public Character charClassA;
  1382. protected Character charClassB;
  1383. Character charClassC;
  1384. boolean test_registerProperty1()
  1385. {
  1386. System.out.println("registerProperty Test 1");
  1387. boolean r[]= new boolean[50];
  1388. int i= 0;
  1389. registerProperty("PropChar", new Type(char.class), (short) 0, "PropChar");
  1390. registerProperty("PropInt", new Type(int.class), (short) 0, "PropInt");
  1391. registerProperty("PropString", new Type(String.class), (short) 0, "PropString");
  1392. XPropertySetInfo info= getPropertySetInfo();
  1393. Property[] props= info.getProperties();
  1394. for (int j= 0; j < props.length; j++)
  1395. {
  1396. Property aProp= props[j];
  1397. if (aProp.Name.equals("PropChar") && aProp.Type.equals(new Type(char.class)) &&
  1398. aProp.Attributes == 0)
  1399. r[i++]= true;
  1400. else if (aProp.Name.equals("PropInt") && aProp.Type.equals(new Type(int.class)) &&
  1401. aProp.Attributes == 0)
  1402. r[i++]= true;
  1403. else if (aProp.Name.equals("PropString") && aProp.Type.equals(new Type(String.class)) &&
  1404. aProp.Attributes == 0)
  1405. r[i++]= true;
  1406. else
  1407. r[i++]= false;
  1408. }
  1409. boolean bOk= true;
  1410. for (int c= 0; c < i; c++)
  1411. bOk= bOk && r[c];
  1412. if (bOk == false)
  1413. System.out.println("Failed");
  1414. else
  1415. System.out.println("Ok");
  1416. return bOk;
  1417. }
  1418. boolean test_registerProperty2()
  1419. {
  1420. System.out.println("registerProperty Test 2");
  1421. boolean r[]= new boolean[50];
  1422. int i= 0;
  1423. registerProperty("charA", "charA", (short) 0);
  1424. registerProperty("charB", "charB", (short) 0);
  1425. registerProperty("charC", "charC", (short) 0);
  1426. registerProperty("charClassB", "charClassB", PropertyAttribute.MAYBEVOID);
  1427. registerProperty("IntProp", "intMemberA", (short) 0);
  1428. XPropertySetInfo info= getPropertySetInfo();
  1429. Property[] props= info.getProperties();
  1430. for (int j= 0; j < props.length; j++)
  1431. {
  1432. Property aProp= props[j];
  1433. if (aProp.Name.equals("charA") && aProp.Type.equals(new Type(char.class)) &&
  1434. aProp.Attributes == 0)
  1435. r[i++]= true;
  1436. else if (aProp.Name.equals("charB") && aProp.Type.equals(new Type(char.class)) &&
  1437. aProp.Attributes == 0)
  1438. r[i++]= true;
  1439. else if (aProp.Name.equals("charC") && aProp.Type.equals(new Type(char.class)) &&
  1440. aProp.Attributes == 0)
  1441. r[i++]= true;
  1442. else if (aProp.Name.equals("charClassB") && aProp.Type.equals(new Type(char.class)) &&
  1443. aProp.Attributes == PropertyAttribute.MAYBEVOID)
  1444. r[i++]= true;
  1445. else if (aProp.Name.equals("IntProp") && aProp.Type.equals(new Type(int.class)) &&
  1446. aProp.Attributes == 0)
  1447. r[i++]= true;
  1448. else
  1449. r[i++]= false;
  1450. }
  1451. Object ret;
  1452. Object val= new Character('A');
  1453. try{
  1454. setPropertyValue("charA", val);
  1455. ret= getPropertyValue("charA");
  1456. r[i++]= val.equals(ret);
  1457. setPropertyValue("charClassB",val);
  1458. ret= getPropertyValue("charClassB");
  1459. r[i++]= val.equals(ret);
  1460. val= new Integer(111);
  1461. setPropertyValue("IntProp",val);
  1462. ret= getPropertyValue("IntProp");
  1463. r[i++]= val.equals(ret);
  1464. }
  1465. catch(Exception e)
  1466. {
  1467. r[i++]=false;
  1468. }
  1469. boolean bOk= true;
  1470. for (int c= 0; c < i; c++)
  1471. bOk= bOk && r[c];
  1472. if (bOk == false)
  1473. System.out.println("Failed");
  1474. else
  1475. System.out.println("Ok");
  1476. return bOk;
  1477. }
  1478. }
  1479. class util
  1480. {
  1481. // An Object is considered an Any with TypeClass.VOID and no value.
  1482. static boolean anyEquals(Object val1, Object val2)
  1483. {
  1484. Object obj1= null;
  1485. Object obj2= null;
  1486. Type t1= null;
  1487. Type t2= null;
  1488. if (val1 instanceof Any)
  1489. {
  1490. obj1= ((Any) val1).getObject();
  1491. t1= ((Any) val1).getType();
  1492. }
  1493. else
  1494. obj1= val1;
  1495. if (val2 instanceof Any)
  1496. {
  1497. obj2= ((Any) val2).getObject();
  1498. t2= ((Any) val2).getType();
  1499. }
  1500. else
  1501. obj2= val2;
  1502. if (obj1 != null && obj1.equals(obj2))
  1503. return true;
  1504. else if ((obj1 == null && obj2 == null) && t1 != null && t1.equals(t2))
  1505. return true;
  1506. return false;
  1507. }
  1508. // returns true if obj is an any that contains a void or interface type and the
  1509. // object is null
  1510. static boolean isVoidAny(Object obj)
  1511. {
  1512. boolean ret= false;
  1513. if( obj != null && obj instanceof Any)
  1514. {
  1515. Any a= (Any) obj;
  1516. if( a.getType().getTypeClass().equals( TypeClass.INTERFACE)
  1517. && a.getObject() == null) {
  1518. ret= true;
  1519. }
  1520. else if( a.getType().equals( new Type(void.class)) && a.getObject() == null) {
  1521. ret= true;
  1522. }
  1523. }
  1524. return ret;
  1525. }
  1526. }
  1527. class Listener implements XPropertyChangeListener, XVetoableChangeListener,
  1528. XPropertiesChangeListener
  1529. {
  1530. int nChangeCalled;
  1531. int nPropertiesChange;
  1532. int nVetoCalled;
  1533. int nDisposingCalled;
  1534. boolean bVeto= false;
  1535. PropertyChangeEvent evt;
  1536. PropertyChangeEvent[] arEvt;
  1537. // XPropertyChangeListener
  1538. public void propertyChange(PropertyChangeEvent evt )
  1539. {
  1540. nChangeCalled++;
  1541. this.evt= evt;
  1542. }
  1543. //VetoableChangeListener
  1544. public void vetoableChange(PropertyChangeEvent evt ) throws PropertyVetoException
  1545. {
  1546. nVetoCalled++;
  1547. this.evt= evt;
  1548. if (bVeto)
  1549. throw new PropertyVetoException();
  1550. }
  1551. public void disposing( /*IN*/EventObject Source )
  1552. {
  1553. nDisposingCalled++;
  1554. }
  1555. public void reset()
  1556. {
  1557. nChangeCalled= 0;
  1558. nPropertiesChange= 0;
  1559. nVetoCalled= 0;
  1560. nDisposingCalled= 0;
  1561. evt= null;
  1562. arEvt= null;
  1563. bVeto= false;
  1564. }
  1565. // XPropertiesChangeListener
  1566. public void propertiesChange(PropertyChangeEvent[] propertyChangeEvent)
  1567. {
  1568. nPropertiesChange++;
  1569. arEvt= propertyChangeEvent;
  1570. }
  1571. }