001: /*
002: * This file is part of the GeOxygene project source files.
003: *
004: * GeOxygene aims at providing an open framework which implements OGC/ISO specifications for
005: * the development and deployment of geographic (GIS) applications. It is a open source
006: * contribution of the COGIT laboratory at the Institut Géographique National (the French
007: * National Mapping Agency).
008: *
009: * See: http://oxygene-project.sourceforge.net
010: *
011: * Copyright (C) 2005 Institut Géographique National
012: *
013: * This library is free software; you can redistribute it and/or modify it under the terms
014: * of the GNU Lesser General Public License as published by the Free Software Foundation;
015: * either version 2.1 of the License, or any later version.
016: *
017: * This library is distributed in the hope that it will be useful, but WITHOUT ANY
018: * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
019: * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
020: *
021: * You should have received a copy of the GNU Lesser General Public License along with
022: * this library (see file LICENSE if present); if not, write to the Free Software
023: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024: *
025: */
026:
027: package fr.ign.cogit.geoxygene.example.relations;
028:
029: import java.util.ArrayList;
030: import java.util.Iterator;
031: import java.util.List;
032:
033: /** Test des relations BIDIRECTIONNELLES entre les classes AAA et BBB.
034: * Ce test ne teste que le fonctionnement en Java, sans tester la persistance.
035: * Essayer aussi le test "TestRelationsBiPersistantes" :
036: * c'est le meme, avec les fonctions d'ecriture dans le SGBD.
037: *
038: * @author Thierry Badard, Arnaud Braun & Sébastien Mustière
039: * @version 1.0
040: *
041: */
042:
043: public class TestRelationsBiNonPersistantes {
044:
045: public static void main(String args[]) {
046: System.out.println("DEBUT DES TESTS");
047: test_bi11();
048: test_bi1n();
049: test_binn();
050: }
051:
052: /** Teste la relation 1-1 bi-directionnelle */
053: public static void test_bi11() {
054: System.out.println("Creation des objets AAA, BBB");
055: AAA a1 = new AAA();
056: a1.setNom("a1");
057: AAA a2 = new AAA();
058: a2.setNom("a2");
059: AAA a3 = new AAA();
060: a3.setNom("a3");
061: BBB b1 = new BBB();
062: b1.setNom("b1");
063: BBB b2 = new BBB();
064: b2.setNom("b2");
065: BBB b3 = new BBB();
066: b3.setNom("b3");
067:
068: System.out.println("");
069: System.out.println("TEST RELATION 1-1 BIDIRECTIONNELLE");
070: System.out.println("objet BBB en relation avec a1 (null) : "
071: + a1.getObjetBBB_bi11());
072: System.out.println("objet BBB en relation avec a2 (null) : "
073: + a2.getObjetBBB_bi11());
074: System.out.println("objet AAA en relation avec b1 (null) : "
075: + b1.getObjetAAA_bi11());
076: System.out.println("objet AAA en relation avec b2 (null) : "
077: + b2.getObjetAAA_bi11());
078: System.out.println("--");
079: System.out.println("instanciation sur a1 de a1 R b1 ");
080: a1.setObjetBBB_bi11(b1);
081: System.out.println("objet BBB en relation avec a1 (b1) : "
082: + a1.getObjetBBB_bi11().getNom());
083: System.out.println("objet BBB en relation avec a2 (null) : "
084: + a2.getObjetBBB_bi11());
085: System.out.println("objet AAA en relation avec b1 (a1) : "
086: + b1.getObjetAAA_bi11().getNom());
087: System.out.println("objet AAA en relation avec b2 (null) : "
088: + b2.getObjetAAA_bi11());
089: System.out.println("--");
090: System.out.println("instanciation sur a1 de a1 R b2 ");
091: a1.setObjetBBB_bi11(b2);
092: System.out.println("objet BBB en relation avec a1 (b2) : "
093: + a1.getObjetBBB_bi11().getNom());
094: System.out.println("objet BBB en relation avec a2 (null) : "
095: + a2.getObjetBBB_bi11());
096: System.out.println("objet AAA en relation avec b1 (null) : "
097: + b1.getObjetAAA_bi11());
098: System.out.println("objet AAA en relation avec b2 (a1) : "
099: + b2.getObjetAAA_bi11().getNom());
100: System.out.println("--");
101: System.out
102: .println("instanciation sur a1 de a1 R b2 (2eme fois)");
103: a1.setObjetBBB_bi11(b2);
104: System.out.println("objet BBB en relation avec a1 (b2) : "
105: + a1.getObjetBBB_bi11().getNom());
106: System.out.println("objet BBB en relation avec a2 (null) : "
107: + a2.getObjetBBB_bi11());
108: System.out.println("objet AAA en relation avec b1 (null) : "
109: + b1.getObjetAAA_bi11());
110: System.out.println("objet AAA en relation avec b2 (a1) : "
111: + b2.getObjetAAA_bi11().getNom());
112: System.out.println("--");
113: System.out.println("instanciation sur b2 de a2 R b2");
114: b2.setObjetAAA_bi11(a2);
115: System.out.println("objet BBB en relation avec a1 (null) : "
116: + a1.getObjetBBB_bi11());
117: System.out.println("objet BBB en relation avec a2 (b2) : "
118: + a2.getObjetBBB_bi11().getNom());
119: System.out.println("objet AAA en relation avec b1 (null) : "
120: + b1.getObjetAAA_bi11());
121: System.out.println("objet AAA en relation avec b2 (a2) : "
122: + b2.getObjetAAA_bi11().getNom());
123: System.out.println("--");
124: System.out.println("instanciation sur b1 de a2 R b1");
125: b1.setObjetAAA_bi11(a2);
126: System.out.println("objet BBB en relation avec a1 (null) : "
127: + a1.getObjetBBB_bi11());
128: System.out.println("objet BBB en relation avec a2 (b1) : "
129: + a2.getObjetBBB_bi11().getNom());
130: System.out.println("objet AAA en relation avec b1 (a2) : "
131: + b1.getObjetAAA_bi11().getNom());
132: System.out.println("objet AAA en relation avec b2 (null) : "
133: + b2.getObjetAAA_bi11());
134: System.out.println("--");
135: System.out.println("vidage des relations sur b1");
136: b1.setObjetAAA_bi11(null);
137: System.out.println("objet BBB en relation avec a1 (null) : "
138: + a1.getObjetBBB_bi11());
139: System.out.println("objet BBB en relation avec a2 (null) : "
140: + a2.getObjetBBB_bi11());
141: System.out.println("objet AAA en relation avec b1 (null) : "
142: + b1.getObjetAAA_bi11());
143: System.out.println("objet AAA en relation avec b2 (null) : "
144: + b2.getObjetAAA_bi11());
145:
146: }
147:
148: /** Teste la relation 1-n bi-directionnelle */
149: public static void test_bi1n() {
150: System.out.println("Creation des objets AAA, BBB");
151: AAA a1 = new AAA();
152: a1.setNom("a1");
153: AAA a2 = new AAA();
154: a2.setNom("a2");
155: AAA a3 = new AAA();
156: a3.setNom("a3");
157: BBB b1 = new BBB();
158: b1.setNom("b1");
159: BBB b2 = new BBB();
160: b2.setNom("b2");
161: BBB b3 = new BBB();
162: b3.setNom("b3");
163: List L;
164:
165: System.out.println("");
166: System.out.println("TEST RELATION 1-N BIDIRECTIONNELLE");
167: System.out.println("objet BBB en relation avec a1 (vide) : ");
168: affiche(a1.getListe_objetsBBB_bi1N());
169: System.out.println("objet BBB en relation avec a2 (vide) : ");
170: affiche(a2.getListe_objetsBBB_bi1N());
171: System.out.println("objet BBB en relation avec a3 (vide) : ");
172: affiche(a3.getListe_objetsBBB_bi1N());
173: System.out.println("objet AAA en relation avec b1 (null) : "
174: + b1.getObjetAAA_bi1N());
175: System.out.println("objet AAA en relation avec b2 (null) : "
176: + b2.getObjetAAA_bi1N());
177: System.out.println("objet AAA en relation avec b3 (null) : "
178: + b3.getObjetAAA_bi1N());
179:
180: System.out.println("--");
181: System.out
182: .println("ajout sur a1, de b1 aux objets en relation avec a1");
183: System.out
184: .println("set sur a2, de liste 'b2, b3' comme objets en relation avec a2");
185: a1.addObjetBBB_bi1N(b1);
186: L = new ArrayList();
187: L.add(b2);
188: L.add(b3);
189: a2.setListe_objetsBBB_bi1N(L);
190: System.out.println("objet BBB en relation avec a1 (b1) : ");
191: affiche(a1.getListe_objetsBBB_bi1N());
192: System.out.println("objet BBB en relation avec a2 (b2, b3) : ");
193: affiche(a2.getListe_objetsBBB_bi1N());
194: System.out.println("objet BBB en relation avec a3 (vide) : ");
195: affiche(a3.getListe_objetsBBB_bi1N());
196: System.out.println("objet AAA en relation avec b1 (a1) : "
197: + b1.getObjetAAA_bi1N().getNom());
198: System.out.println("objet AAA en relation avec b2 (a2) : "
199: + b2.getObjetAAA_bi1N().getNom());
200: System.out.println("objet AAA en relation avec b3 (a2) : "
201: + b3.getObjetAAA_bi1N().getNom());
202:
203: System.out.println("--");
204: System.out.println("set sur b2 de b2 en relation avec a1");
205: b2.setObjetAAA_bi1N(a1);
206: System.out.println("objet BBB en relation avec a1 (b1, b2) : ");
207: affiche(a1.getListe_objetsBBB_bi1N());
208: System.out.println("objet BBB en relation avec a2 (b3) : ");
209: affiche(a2.getListe_objetsBBB_bi1N());
210: System.out.println("objet BBB en relation avec a3 (vide) : ");
211: affiche(a3.getListe_objetsBBB_bi1N());
212: System.out.println("objet AAA en relation avec b1 (a1) : "
213: + b1.getObjetAAA_bi1N().getNom());
214: System.out.println("objet AAA en relation avec b2 (a1) : "
215: + b2.getObjetAAA_bi1N().getNom());
216: System.out.println("objet AAA en relation avec b3 (a2) : "
217: + b3.getObjetAAA_bi1N().getNom());
218:
219: System.out.println("--");
220: System.out.println("vidage sur a1 des objets en relation");
221: System.out.println("destruction de la relation sur b3");
222: a1.emptyListe_objetsBBB_bi1N();
223: b3.setObjetAAA_bi1N(null);
224: System.out.println("objet BBB en relation avec a1 (vide) : ");
225: affiche(a1.getListe_objetsBBB_bi1N());
226: System.out.println("objet BBB en relation avec a2 (vide) : ");
227: affiche(a2.getListe_objetsBBB_bi1N());
228: System.out.println("objet BBB en relation avec a3 (vide) : ");
229: affiche(a3.getListe_objetsBBB_bi1N());
230: System.out.println("objet AAA en relation avec b1 (null) : "
231: + b1.getObjetAAA_bi1N());
232: System.out.println("objet AAA en relation avec b2 (null) : "
233: + b2.getObjetAAA_bi1N());
234: System.out.println("objet AAA en relation avec b3 (null) : "
235: + b3.getObjetAAA_bi1N());
236:
237: System.out.println("--");
238: System.out
239: .println("set sur a2, de liste 'b2, b3' comme objets en relation avec a2");
240: System.out
241: .println("set sur b2 de la relation avec a2 (redondant)");
242: b2.setObjetAAA_bi1N(a2);
243: L = new ArrayList();
244: L.add(b2);
245: L.add(b3);
246: a2.setListe_objetsBBB_bi1N(L);
247: System.out.println("objet BBB en relation avec a1 (vide) : ");
248: affiche(a1.getListe_objetsBBB_bi1N());
249: System.out.println("objet BBB en relation avec a2 (b2, b3) : ");
250: affiche(a2.getListe_objetsBBB_bi1N());
251: System.out.println("objet BBB en relation avec a3 (vide) : ");
252: affiche(a3.getListe_objetsBBB_bi1N());
253: System.out.println("objet AAA en relation avec b1 (null) : "
254: + b1.getObjetAAA_bi1N());
255: System.out.println("objet AAA en relation avec b2 (a2) : "
256: + b2.getObjetAAA_bi1N().getNom());
257: System.out.println("objet AAA en relation avec b3 (a2) : "
258: + b3.getObjetAAA_bi1N().getNom());
259:
260: System.out.println("--");
261: System.out
262: .println("set sur a2, de liste 'b1, b3' comme objets en relation avec a2");
263: L = new ArrayList();
264: L.add(b1);
265: L.add(b3);
266: a2.setListe_objetsBBB_bi1N(L);
267: System.out.println("objet BBB en relation avec a1 (vide) : ");
268: affiche(a1.getListe_objetsBBB_bi1N());
269: System.out.println("objet BBB en relation avec a2 (b1, b3) : ");
270: affiche(a2.getListe_objetsBBB_bi1N());
271: System.out.println("objet BBB en relation avec a3 (vide) : ");
272: affiche(a3.getListe_objetsBBB_bi1N());
273: System.out.println("objet AAA en relation avec b1 (a2) : "
274: + b1.getObjetAAA_bi1N().getNom());
275: System.out.println("objet AAA en relation avec b2 (null) : "
276: + b2.getObjetAAA_bi1N());
277: System.out.println("objet AAA en relation avec b3 (a2) : "
278: + b3.getObjetAAA_bi1N().getNom());
279:
280: System.out.println("--");
281: System.out
282: .println("ajout sur a2, de liste b2 comme objets en relation avec a2");
283: a2.addObjetBBB_bi1N(b2);
284: System.out.println("objet BBB en relation avec a1 (vide) : ");
285: affiche(a1.getListe_objetsBBB_bi1N());
286: System.out
287: .println("objet BBB en relation avec a2 (b1, b3, b2) : ");
288: affiche(a2.getListe_objetsBBB_bi1N());
289: System.out.println("objet BBB en relation avec a3 (vide) : ");
290: affiche(a3.getListe_objetsBBB_bi1N());
291: System.out.println("objet AAA en relation avec b1 (a2) : "
292: + b1.getObjetAAA_bi1N().getNom());
293: System.out.println("objet AAA en relation avec b2 (a2) : "
294: + b2.getObjetAAA_bi1N().getNom());
295: System.out.println("objet AAA en relation avec b3 (a2) : "
296: + b3.getObjetAAA_bi1N().getNom());
297: }
298:
299: /** Teste la relation n-n bi-directionnelle */
300: public static void test_binn() {
301: System.out.println("Creation des objets AAA, BBB");
302: AAA a1 = new AAA();
303: a1.setNom("a1");
304: AAA a2 = new AAA();
305: a2.setNom("a2");
306: AAA a3 = new AAA();
307: a3.setNom("a3");
308: BBB b1 = new BBB();
309: b1.setNom("b1");
310: BBB b2 = new BBB();
311: b2.setNom("b2");
312: BBB b3 = new BBB();
313: b3.setNom("b3");
314: List L;
315:
316: System.out.println("TEST RELATION N-M BIDIRECTIONNELLE");
317: System.out
318: .println("set sur a1, de liste b1 b2 comme objets en relation avec a2");
319: System.out
320: .println("add sur a2, de b2 comme objets en relation avec a2");
321: System.out
322: .println("add sur a3, de b3 comme objets en relation avec a3");
323: L = new ArrayList();
324: L.add(b1);
325: L.add(b2);
326: a1.setListe_objetsBBB_biNM(L);
327: a2.addObjetBBB_biNM(b2);
328: a3.addObjetBBB_biNM(b3);
329: System.out.println("objet BBB en relation avec a1 (b1, b2) : ");
330: affiche(a1.getListe_objetsBBB_biNM());
331: System.out.println("objet BBB en relation avec a2 (b2) : ");
332: affiche(a2.getListe_objetsBBB_biNM());
333: System.out.println("objet BBB en relation avec a3 (b3) : ");
334: affiche(a3.getListe_objetsBBB_biNM());
335: System.out.println("objet AAA en relation avec b1 (a1) : ");
336: affiche(b1.getListe_objetsAAA_biNM());
337: System.out.println("objet AAA en relation avec b2 (a1, a2) : ");
338: affiche(b2.getListe_objetsAAA_biNM());
339: System.out.println("objet AAA en relation avec b3 (a3) : ");
340: affiche(b3.getListe_objetsAAA_biNM());
341:
342: System.out.println("");
343: System.out.println("-- (idem avant)");
344: System.out
345: .println("set sur a1, de liste b1 b2 comme objets en relation avec a2");
346: System.out
347: .println("add sur a2, de b2 comme objets en relation avec a2");
348: System.out
349: .println("add sur a3, de b3 comme objets en relation avec a3");
350: L = new ArrayList();
351: L.add(b1);
352: L.add(b2);
353: a1.setListe_objetsBBB_biNM(L);
354: a2.addObjetBBB_biNM(b2);
355: a3.addObjetBBB_biNM(b3);
356: System.out.println("objet BBB en relation avec a1 (b1, b2) : ");
357: affiche(a1.getListe_objetsBBB_biNM());
358: System.out.println("objet BBB en relation avec a2 (b2, b2) : ");
359: affiche(a2.getListe_objetsBBB_biNM());
360: System.out.println("objet BBB en relation avec a3 (b3, b3) : ");
361: affiche(a3.getListe_objetsBBB_biNM());
362: System.out.println("objet AAA en relation avec b1 (a1) : ");
363: affiche(b1.getListe_objetsAAA_biNM());
364: System.out
365: .println("objet AAA en relation avec b2 (a1, a2, a2) : ");
366: affiche(b2.getListe_objetsAAA_biNM());
367: System.out.println("objet AAA en relation avec b3 (a3, a3) : ");
368: affiche(b3.getListe_objetsAAA_biNM());
369:
370: System.out.println("");
371: System.out.println("-- ");
372: System.out.println("remove sur b1 de a1");
373: System.out.println("remove sur b2 de a2");
374: System.out.println("vidage de a3");
375: L = new ArrayList();
376: L.add(b1);
377: L.add(b2);
378: b1.removeObjetAAA_biNM(a1);
379: b2.removeObjetAAA_biNM(a2);
380: a3.emptyListe_objetsBBB_biNM();
381: System.out.println("objet BBB en relation avec a1 (b2) : ");
382: affiche(a1.getListe_objetsBBB_biNM());
383: System.out.println("objet BBB en relation avec a2 (b2) : ");
384: affiche(a2.getListe_objetsBBB_biNM());
385: System.out.println("objet BBB en relation avec a3 (vide) : ");
386: affiche(a3.getListe_objetsBBB_biNM());
387: System.out.println("objet AAA en relation avec b1 (vide) : ");
388: affiche(b1.getListe_objetsAAA_biNM());
389: System.out.println("objet AAA en relation avec b2 (a1, a2) : ");
390: affiche(b2.getListe_objetsAAA_biNM());
391: System.out.println("objet AAA en relation avec b3 (vide) : ");
392: affiche(b3.getListe_objetsAAA_biNM());
393: }
394:
395: public static void affiche(List L) {
396: Iterator it = L.iterator();
397: while (it.hasNext()) {
398: ClasseMere o = (ClasseMere) it.next();
399: if (o == null)
400: System.out.println(" - null");
401: else
402: System.out.println(" - " + o.getNom());
403: }
404: }
405: }
|