Project

General

Profile

Download (33.5 KB) Statistics
| Branch: | Revision:
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
* 
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.io.xper;
10

    
11
import java.util.List;
12
import java.util.UUID;
13

    
14
import org.apache.log4j.Logger;
15

    
16
import eu.etaxonomy.cdm.model.description.Feature;
17
import eu.etaxonomy.cdm.model.description.FeatureTree;
18
import eu.etaxonomy.cdm.model.description.WorkingSet;
19
import fr_jussieu_snv_lis.XPApp;
20
import fr_jussieu_snv_lis.base.Base;
21
import fr_jussieu_snv_lis.base.ControlerBase;
22
import fr_jussieu_snv_lis.base.Group;
23
import fr_jussieu_snv_lis.base.IBase;
24
import fr_jussieu_snv_lis.base.IControlerBase;
25
import fr_jussieu_snv_lis.base.Individual;
26
import fr_jussieu_snv_lis.base.Mode;
27
import fr_jussieu_snv_lis.base.Variable;
28
import fr_jussieu_snv_lis.utils.Utils;
29

    
30
/**
31
 * @author a.mueller
32
 * @date 12.04.2011
33
 *
34
 */
35
public class CdmXperBaseControler extends ControlerBase implements IControlerBase {
36
	private static final Logger logger = Logger.getLogger(CdmXperBaseControler.class);
37
	
38
//	private IBase base;
39
	private CdmXperAdapter cdmXperAdapter;
40

    
41
	public CdmXperBaseControler(BaseCdm base, CdmXperAdapter cdmXperAdapter) {
42
		super(base);
43
		this.cdmXperAdapter = cdmXperAdapter;
44
//		this.base = base;
45
		base.setBaseControler(this);
46
	}
47
	
48

    
49
	protected CdmXperAdapter getAdapter() {
50
		return cdmXperAdapter;
51
	}
52
	
53

    
54
	private WorkingSet getWorkingSet() {
55
		return cdmXperAdapter.getWorkingSet();
56
	}
57
	
58
	private FeatureTree getFeatureTree() {
59
		return getWorkingSet().getDescriptiveSystem();
60
	}
61
	
62

    
63
	public void loadFeatures() {
64
		this.cdmXperAdapter.loadFeatures();
65
	}
66
	
67
//*********************** IControlerBase ********************************************/	
68

    
69
	/* (non-Javadoc)
70
	 * @see fr_jussieu_snv_lis.base.IControlerBase#createBase(java.lang.String, java.lang.String)
71
	 */
72
	@Override
73
	public void createBase(String path, String name) throws Exception {
74
		//TODO
75
		throw new RuntimeException("A new base can not be created in an external base controler");
76
	}
77

    
78
	/* (non-Javadoc)
79
	 * @see fr_jussieu_snv_lis.base.IControlerBase#createBase(java.lang.String)
80
	 */
81
	@Override
82
	public void createBase(String name) throws Exception {
83
		//TODO
84
		throw new RuntimeException("A new base can not be opened in an external base controler");
85
	}
86

    
87
	/* (non-Javadoc)
88
	 * @see fr_jussieu_snv_lis.base.IControlerBase#setBase(fr_jussieu_snv_lis.base.Base)
89
	 */
90
	@Override
91
	public void setBase(Base b) {
92
		logger.warn("Base is newly defined. This may lead to errors as controler base is a CdmXperBaseControler");
93
		this.base = b;
94
	}
95

    
96
	/* (non-Javadoc)
97
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getBase()
98
	 */
99
	@Override
100
	public IBase getBase() {
101
		return base;
102
	}
103

    
104
	/* (non-Javadoc)
105
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getBaseName()
106
	 */
107
	@Override
108
	public String getBaseName() {
109
		return base.getName();
110
	}
111

    
112
	/* (non-Javadoc)
113
	 * @see fr_jussieu_snv_lis.base.IControlerBase#closeBase()
114
	 */
115
	@Override
116
	public void closeBase() {
117
		logger.warn("closeBase Not yet implemented");
118
	}
119

    
120
	/* (non-Javadoc)
121
	 * @see fr_jussieu_snv_lis.base.IControlerBase#createNewGroup(java.lang.String)
122
	 */
123
	@Override
124
	public Group createNewGroup(String name) {
125
		logger.warn("createNewGroup Not yet implemented");
126
		return null;
127
	}
128

    
129
	/* (non-Javadoc)
130
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroup(fr_jussieu_snv_lis.base.Group)
131
	 */
132
	@Override
133
	public boolean addGroup(Group group) {
134
		logger.warn("addGroup Not yet implemented");
135
		return false;
136
	}
137

    
138
	/* (non-Javadoc)
139
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroupToBase(fr_jussieu_snv_lis.base.Group, fr_jussieu_snv_lis.base.IBase)
140
	 */
141
	@Override
142
	public boolean addGroupToBase(Group group, IBase b) {
143
		logger.warn("addGroupToBase Not yet implemented");
144
		return false;
145
	}
146

    
147
	/* (non-Javadoc)
148
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroupAndVariablesToBase(fr_jussieu_snv_lis.base.Group, fr_jussieu_snv_lis.base.IBase)
149
	 */
150
	@Override
151
	public boolean addGroupAndVariablesToBase(Group group, IBase b) {
152
		logger.warn("addGroupAndVariablesToBase Not yet implemented");
153
		return false;
154
	}
155

    
156
	/* (non-Javadoc)
157
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroupAt(int, fr_jussieu_snv_lis.base.Group)
158
	 */
159
	@Override
160
	public void addGroupAt(int i, Group g) {
161
		logger.warn("addGroupAt Not yet implemented");
162

    
163
	}
164

    
165
	/* (non-Javadoc)
166
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroupToBaseAt(fr_jussieu_snv_lis.base.Group, fr_jussieu_snv_lis.base.IBase, int)
167
	 */
168
	@Override
169
	public void addGroupToBaseAt(Group g, IBase b, int i) {
170
		logger.warn("addGroupToBaseAt Not yet implemented");
171

    
172
	}
173

    
174
	/* (non-Javadoc)
175
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteGroupFromBase(fr_jussieu_snv_lis.base.Group, fr_jussieu_snv_lis.base.IBase)
176
	 */
177
	@Override
178
	public void deleteGroupFromBase(Group g, IBase b) {
179
		logger.warn("deleteGroupFromBase Not yet implemented");
180

    
181
	}
182

    
183
	/* (non-Javadoc)
184
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteGroups(java.lang.Object[])
185
	 */
186
	@Override
187
	public void deleteGroups(Object[] tab) {
188
		logger.warn("deleteGroups Not yet implemented");
189

    
190
	}
191

    
192
	/* (non-Javadoc)
193
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteGroup(fr_jussieu_snv_lis.base.Group)
194
	 */
195
	@Override
196
	public void deleteGroup(Group g) {
197
		logger.warn("deleteGroup Not yet implemented");
198

    
199
	}
200

    
201
	/* (non-Javadoc)
202
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteGroupFromVariable(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Group)
203
	 */
204
	@Override
205
	public void deleteGroupFromVariable(Variable v, Group g) {
206
		logger.warn("deleteGroupFromVariable Not yet implemented");
207

    
208
	}
209

    
210
	/* (non-Javadoc)
211
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteGroupFromVariables(java.lang.Object[], fr_jussieu_snv_lis.base.Group)
212
	 */
213
	@Override
214
	public void deleteGroupFromVariables(Object[] tab, Group g) {
215
		logger.warn("deleteGroupFromVariables Not yet implemented");
216

    
217
	}
218

    
219
	/* (non-Javadoc)
220
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteAllGroups(fr_jussieu_snv_lis.base.IBase)
221
	 */
222
	@Override
223
	public void deleteAllGroups(IBase b) {
224
		logger.warn("deleteAllGroups Not yet implemented");
225

    
226
	}
227

    
228
	/* (non-Javadoc)
229
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getGroupsNoBelongingToVariable(fr_jussieu_snv_lis.base.Variable)
230
	 */
231
	@Override
232
	public List<Group> getGroupsNoBelongingToVariable(Variable v) {
233
		logger.warn("getGroupsNoBelongingToVariable Not yet implemented");
234
		return null;
235
	}
236

    
237
	/* (non-Javadoc)
238
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getGroupsNoBelongingToVariables(java.lang.Object[])
239
	 */
240
	@Override
241
	public List<Group> getGroupsNoBelongingToVariables(Variable[] tab) {
242
		logger.warn("getGroupsNoBelongingToVariables Not yet implemented");
243
		return null;
244
	}
245

    
246
	/* (non-Javadoc)
247
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getGroupsBelongingToVariable(fr_jussieu_snv_lis.base.Variable)
248
	 */
249
	@Override
250
	public List<Group> getGroupsBelongingToVariable(Variable v) {
251
		logger.warn("getGroupsBelongingToVariable Not yet implemented");
252
		return null;
253
	}
254

    
255
	/* (non-Javadoc)
256
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getGroupsBelongingToVariables(java.lang.Object[])
257
	 */
258
	@Override
259
	public List<Group> getGroupsBelongingToVariables(Variable[] tab) {
260
		logger.warn("getGroupsBelongingToVariables Not yet implemented");
261
		return null;
262
	}
263

    
264
	/* (non-Javadoc)
265
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getAllGroups()
266
	 */
267
	@Override
268
	public List<Group> getAllGroups() {
269
		return base.getGroups();
270
	}
271

    
272
	/* (non-Javadoc)
273
	 * @see fr_jussieu_snv_lis.base.IControlerBase#findGroupByName(java.lang.String)
274
	 */
275
	@Override
276
	public Group findGroupByName(String n) {
277
		logger.warn("findGroupByName Not yet implemented");
278
		return null;
279
	}
280

    
281
	/* (non-Javadoc)
282
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistanceGroup()
283
	 */
284
	@Override
285
	public boolean checkExistanceGroup() {
286
		logger.warn("checkExistanceGroup Not yet implemented");
287
		return false;
288
	}
289

    
290
	/* (non-Javadoc)
291
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroupToVariableAt(fr_jussieu_snv_lis.base.Group, fr_jussieu_snv_lis.base.Variable, int)
292
	 */
293
	@Override
294
	public void addGroupToVariableAt(Group g, Variable v, int i) {
295
		logger.warn("addGroupToVariableAt Not yet implemented");
296

    
297
	}
298

    
299
	/* (non-Javadoc)
300
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroupToVariable(fr_jussieu_snv_lis.base.Group, fr_jussieu_snv_lis.base.Variable)
301
	 */
302
	@Override
303
	public void addGroupToVariable(Group g, Variable v) {
304
		logger.warn("addGroupToVariable Not yet implemented");
305

    
306
	}
307

    
308
	/* (non-Javadoc)
309
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addGroupToVariables(fr_jussieu_snv_lis.base.Group, java.lang.Object[])
310
	 */
311
	@Override
312
	public void addGroupToVariables(Group g, Object[] al) {
313
		logger.warn("addGroupToVariables Not yet implemented");
314

    
315
	}
316

    
317
	/* (non-Javadoc)
318
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addVariableToGroups(fr_jussieu_snv_lis.base.Variable, java.util.List)
319
	 */
320
	@Override
321
	public void addVariableToGroups(Variable v, List<Group> al) {
322
		logger.warn("addVariableToGroups Not yet implemented");
323

    
324
	}
325

    
326
	/* (non-Javadoc)
327
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistanceGroup(java.lang.String)
328
	 */
329
	@Override
330
	public boolean checkExistanceGroup(String s) {
331
		logger.warn("checkExistanceGroup Not yet implemented");
332
		return false;
333
	}
334

    
335
	/* (non-Javadoc)
336
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistanceGroup(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Group)
337
	 */
338
	@Override
339
	public boolean checkExistanceGroup(Variable var, Group g) {
340
		logger.warn("checkExistanceGroup Not yet implemented");
341
		return false;
342
	}
343

    
344
	/* (non-Javadoc)
345
	 * @see fr_jussieu_snv_lis.base.IControlerBase#findModeByName(java.lang.String, fr_jussieu_snv_lis.base.Variable)
346
	 */
347
	@Override
348
	public Mode findModeByName(String str, Variable var) {
349
		logger.warn("findModeByName Not yet implemented");
350
		return null;
351
	}
352

    
353
	/* (non-Javadoc)
354
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addModeToVariable(fr_jussieu_snv_lis.base.Mode, fr_jussieu_snv_lis.base.Variable)
355
	 */
356
	@Override
357
	public boolean addModeToVariable(Mode m, Variable v) {
358
		return super.addModeToVariable(m, v);
359
	}
360

    
361
	/* (non-Javadoc)
362
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addModeToVariableAt(fr_jussieu_snv_lis.base.Mode, fr_jussieu_snv_lis.base.Variable, int)
363
	 */
364
	@Override
365
	public void addModeToVariableAt(Mode m, Variable v, int i) {
366
		logger.warn("addModeToVariableAt Not yet implemented");
367

    
368
	}
369

    
370
	/* (non-Javadoc)
371
	 * @see fr_jussieu_snv_lis.base.IControlerBase#moveUpModeFromVariable(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Mode)
372
	 */
373
	@Override
374
	public void moveUpModeFromVariable(Variable v, Mode m) {
375
		logger.warn("moveUpModeFromVariable Not yet implemented");
376

    
377
	}
378

    
379
	/* (non-Javadoc)
380
	 * @see fr_jussieu_snv_lis.base.IControlerBase#moveDownModeFromVariable(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Mode)
381
	 */
382
	@Override
383
	public void moveDownModeFromVariable(Variable v, Mode m) {
384
		logger.warn("moveDownModeFromVariable Not yet implemented");
385

    
386
	}
387

    
388
	/* (non-Javadoc)
389
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteModeFromVariable(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Mode)
390
	 */
391
	@Override
392
	public void deleteModeFromVariable(Variable v, Mode m) {
393
		logger.warn("deleteModeFromVariable Not yet implemented");
394

    
395
	}
396

    
397
	/* (non-Javadoc)
398
	 * @see fr_jussieu_snv_lis.base.IControlerBase#fusionModeFromvariable(fr_jussieu_snv_lis.base.Variable, java.lang.Object[])
399
	 */
400
	@Override
401
	public Mode fusionModeFromvariable(Variable var, Object[] tab) {
402
		logger.warn("fusionModeFromvariable Not yet implemented");
403
		return null;
404
	}
405

    
406
	/* (non-Javadoc)
407
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistanceMode(fr_jussieu_snv_lis.base.Variable, java.lang.String)
408
	 */
409
	@Override
410
	public boolean checkExistanceMode(Variable v, String s) {
411
		logger.warn("checkExistanceMode only implemented as super");
412
		return super.checkExistanceMode(v, s);
413
	}
414

    
415
	/* (non-Javadoc)
416
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistanceMode(fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.Variable, java.lang.String)
417
	 */
418
	@Override
419
	public boolean checkExistanceMode(Individual ind, Variable var, String s) {
420
		logger.warn("checkExistanceMode Not yet implemented");
421
		return false;
422
	}
423

    
424
	/* (non-Javadoc)
425
	 * @see fr_jussieu_snv_lis.base.IControlerBase#matchModes(fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.Variable, java.util.List, int)
426
	 */
427
	@Override
428
	public boolean matchModes(Individual ind, Variable var, List<Mode> modes, int operator) {
429
		logger.warn("matchModes Not yet implemented");
430
		return false;
431
	}
432

    
433
	/* (non-Javadoc)
434
	 * @see fr_jussieu_snv_lis.base.IControlerBase#matchNumValue(fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.Variable, java.lang.Double)
435
	 */
436
	@Override
437
	public boolean matchNumValue(Individual ind, Variable var, Double value) {
438
		logger.info("matchNumValue implemented by using super");
439
		return super.matchNumValue(ind, var, value);
440
	}
441

    
442
	/* (non-Javadoc)
443
	 * @see fr_jussieu_snv_lis.base.IControlerBase#createNewMode(fr_jussieu_snv_lis.base.Variable, java.lang.String)
444
	 */
445
	@Override
446
	public Mode createNewMode(Variable va, String name) {
447
		Mode newMode = new Mode(name);
448
		
449
		boolean hasChanged = addModeToVariable(newMode, va); // Add the new Mode to the list of Mode of the Variable
450

    
451
		if (hasChanged){
452
			XPApp.baseChanged = true;
453
		}
454
		Feature feature = getAdapter().getFeature(va);
455
		getAdapter().saveNewState(newMode, feature);
456
		return newMode;
457
	}
458

    
459
	/* (non-Javadoc)
460
	 * @see fr_jussieu_snv_lis.base.IControlerBase#controlModeExVariable(boolean, fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Mode)
461
	 */
462
	@Override
463
	public void controlModeExVariable(boolean selected, Variable v, Mode modeException) {
464
		logger.warn("controlModeExVariable Not yet implemented");
465

    
466
	}
467

    
468
	/* (non-Javadoc)
469
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteModeExFromVariable(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Mode)
470
	 */
471
	@Override
472
	public void deleteModeExFromVariable(Variable v, Mode m) {
473
		logger.warn("deleteModeExFromVariable Not yet implemented");
474

    
475
	}
476

    
477
	/* (non-Javadoc)
478
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistIndividual()
479
	 */
480
	@Override
481
	public boolean checkExistIndividual() {
482
		logger.warn("checkExistIndividual Not yet implemented");
483
		return false;
484
	}
485

    
486
	/* (non-Javadoc)
487
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteIndividualFromBase(fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.IBase)
488
	 */
489
	@Override
490
	public void deleteIndividualFromBase(Individual ind, IBase b) {
491
		logger.warn("deleteIndividualFromBase Not yet implemented");
492

    
493
	}
494

    
495
	/* (non-Javadoc)
496
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteIndividual(fr_jussieu_snv_lis.base.Individual)
497
	 */
498
	@Override
499
	public void deleteIndividual(Individual ind) {
500
		throw new RuntimeException("delete individual not supported by CDM version");
501

    
502
	}
503

    
504
	/* (non-Javadoc)
505
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addIndividual(fr_jussieu_snv_lis.base.Individual)
506
	 */
507
	@Override
508
	public void addIndividual(Individual ind) {
509
		super.addIndividual(ind);
510
	}
511

    
512
	/* (non-Javadoc)
513
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addIndividualToBaseAt(fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.IBase, int)
514
	 */
515
	@Override
516
	public void addIndividualToBaseAt(Individual ind, IBase b, int i) {
517
		logger.warn("addIndividualToBaseAt Not yet implemented");
518

    
519
	}
520

    
521
	/* (non-Javadoc)
522
	 * @see fr_jussieu_snv_lis.base.IControlerBase#findIndividualByName(java.lang.String)
523
	 */
524
	@Override
525
	public Individual findIndividualByName(String ind) {
526
		return super.findIndividualByName(ind);
527
	}
528

    
529
	/* (non-Javadoc)
530
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistanceOneIndividual(java.lang.String)
531
	 */
532
	@Override
533
	public boolean checkExistanceOneIndividual(String s) {
534
		logger.warn("checkExistanceOneIndividual Not yet implemented");
535
		return false;
536
	}
537

    
538
	/* (non-Javadoc)
539
	 * @see fr_jussieu_snv_lis.base.IControlerBase#createNewIndividual(java.lang.String)
540
	 */
541
	@Override
542
	public Individual createNewIndividual(String name) {
543
		logger.warn("createNewIndividual Not yet implemented");
544
		return null;
545
	}
546

    
547
	/* (non-Javadoc)
548
	 * @see fr_jussieu_snv_lis.base.IControlerBase#copyIndividual(fr_jussieu_snv_lis.base.Individual, java.lang.String)
549
	 */
550
	@Override
551
	public Individual copyIndividual(Individual indtocopy, String name) {
552
		logger.warn("copyIndividual Not yet implemented");
553
		return null;
554
	}
555

    
556
	/* (non-Javadoc)
557
	 * @see fr_jussieu_snv_lis.base.IControlerBase#copyVariable(fr_jussieu_snv_lis.base.Variable, java.lang.String)
558
	 */
559
	@Override
560
	public Variable copyVariable(Variable vartocopy, String name) {
561
		logger.warn("copyVariable Not yet implemented");
562
		return null;
563
	}
564

    
565
	/* (non-Javadoc)
566
	 * @see fr_jussieu_snv_lis.base.IControlerBase#mergeVariables(java.lang.Object[], java.lang.String)
567
	 */
568
	@Override
569
	public Variable mergeVariables(Object[] tab, String name) {
570
		logger.warn("mergeVariables Not yet implemented");
571
		return null;
572
	}
573

    
574
	/* (non-Javadoc)
575
	 * @see fr_jussieu_snv_lis.base.IControlerBase#mergeIndividuals(java.lang.Object[], java.lang.String)
576
	 */
577
	@Override
578
	public Individual mergeIndividuals(Object[] tab, String name) {
579
		logger.warn("mergeIndividuals Not yet implemented");
580
		return null;
581
	}
582

    
583
	/* (non-Javadoc)
584
	 * @see fr_jussieu_snv_lis.base.IControlerBase#controlModeIndVar(boolean, fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.Mode)
585
	 */
586
	@Override
587
	public void controlModeIndVar(boolean selected, Variable v, Individual i, Mode m) {
588
		this.cdmXperAdapter.controlModeIndVar(selected, v, i, m);
589
		super.controlModeIndVar(selected, v, i, m);
590
	}
591

    
592
	/* (non-Javadoc)
593
	 * @see fr_jussieu_snv_lis.base.IControlerBase#controlModeIndVarRec(boolean, fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Individual, fr_jussieu_snv_lis.base.Mode)
594
	 */
595
	@Override
596
	public void controlModeIndVarRec(boolean selected, Variable v, Individual i, Mode m) {
597
		logger.warn("controlModeIndVarRec Not yet implemented");
598
	}
599
	
600
	@Override
601
	public void controlNumValue(Individual ind, Variable var, Double min,
602
			Double max, Double mean, Double sd, Double umethLower,
603
			Double umethUpper, Integer nSample) {
604
		this.cdmXperAdapter.controlModeIndVar(ind, var, min, max, mean, sd, 
605
				umethLower, umethUpper, nSample);
606
		super.controlNumValue(ind, var, min, max, mean, sd, umethLower, umethUpper,
607
				nSample);
608
	}
609

    
610
	/* (non-Javadoc)
611
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkBadDescription(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Individual)
612
	 */
613
	@Override
614
	public void checkBadDescription(Variable var, Individual ind) {
615
		logger.warn("checkBadDescription Not yet implemented");
616

    
617
	}
618

    
619
	/* (non-Javadoc)
620
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkingUnknown(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Individual)
621
	 */
622
	@Override
623
	public boolean checkingUnknown(Variable var, Individual ind) {
624
		return super.checkingUnknown(var, ind);
625
	}
626

    
627
	/* (non-Javadoc)
628
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkUnknown(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Individual, boolean, boolean)
629
	 */
630
	@Override
631
	public void checkUnknown(Variable var, Individual ind, boolean value, boolean withDaughters) {
632
		this.cdmXperAdapter.checkUnknown(var, ind, value, withDaughters);
633
		super.checkUnknown(var, ind, value, withDaughters);
634
	}
635

    
636
	/* (non-Javadoc)
637
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkUnknown(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Individual[], boolean, boolean)
638
	 */
639
	@Override
640
	public void checkUnknown(Variable var, Individual[] tab, boolean b, boolean withDaughters) {
641
		super.checkUnknown(var, tab, b, withDaughters);  //super calls check unknown for each individual
642
	}
643

    
644
	/* (non-Javadoc)
645
	 * @see fr_jussieu_snv_lis.base.IControlerBase#buildIndividualsBitSetMatrix()
646
	 */
647
	@Override
648
	public void buildIndividualsBitSetMatrix() {
649
		logger.warn("buildIndividualsBitSetMatrix Not yet implemented");
650

    
651
	}
652

    
653
	/* (non-Javadoc)
654
	 * @see fr_jussieu_snv_lis.base.IControlerBase#buildIndividualsIntegerBitMatrix()
655
	 */
656
	@Override
657
	public void buildIndividualsIntegerBitMatrix() {
658
		logger.warn("buildIndividualsIntegerBitMatrix Not yet implemented");
659

    
660
	}
661

    
662
	/* (non-Javadoc)
663
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addVariable(fr_jussieu_snv_lis.base.Variable)
664
	 */
665
	@Override
666
	public boolean addVariable(Variable variable) {
667
		logger.warn("addVariable Not yet implemented");
668
		return false;
669
	}
670

    
671
	/* (non-Javadoc)
672
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addVariableToBase(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.IBase)
673
	 */
674
	@Override
675
	public void addVariableToBase(Variable variable, IBase b) {
676
		logger.warn("addVariableToBase Not yet implemented");
677

    
678
	}
679

    
680
	/* (non-Javadoc)
681
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addMother(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Variable)
682
	 */
683
	@Override
684
	public boolean addMother(Variable current, Variable mother) {
685
		logger.warn("addMother Not yet implemented");
686
		return false;
687
	}
688

    
689
	/* (non-Javadoc)
690
	 * @see fr_jussieu_snv_lis.base.IControlerBase#removeMother(fr_jussieu_snv_lis.base.Variable)
691
	 */
692
	@Override
693
	public void removeMother(Variable current) {
694
		logger.warn("removeMother Not yet implemented");
695

    
696
	}
697

    
698
	/* (non-Javadoc)
699
	 * @see fr_jussieu_snv_lis.base.IControlerBase#changeMother(fr_jussieu_snv_lis.base.Variable, fr_jussieu_snv_lis.base.Variable)
700
	 */
701
	@Override
702
	public void changeMother(Variable current, Variable newMother) {
703
		//from super
704
		super.removeMother(current);
705
		super.addMother(current, newMother);
706
		
707
		getAdapter().moveFeature(current, newMother);
708
	}
709

    
710
	/* (non-Javadoc)
711
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistVariable()
712
	 */
713
	@Override
714
	public boolean checkExistVariable() {
715
		logger.warn("checkExistVariable Not yet implemented");
716
		return false;
717
	}
718

    
719
	/* (non-Javadoc)
720
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistVariable(fr_jussieu_snv_lis.base.Variable)
721
	 */
722
	@Override
723
	public boolean checkExistVariable(Variable v) {
724
		logger.warn("checkExistVariable Not yet implemented");
725
		return false;
726
	}
727

    
728
	/* (non-Javadoc)
729
	 * @see fr_jussieu_snv_lis.base.IControlerBase#findVariableByName(java.lang.String)
730
	 */
731
	@Override
732
	public Variable findVariableByName(String str) {
733
		logger.warn("findVariableByName implemented as super");
734
		return super.findVariableByName(str);
735
	}
736
	
737
	/**
738
	 * Returns the variable with variable.uuid equal to uuid. 
739
	 * Returns <code>null</code> if no such variable exists or
740
	 * if <code>uuid == null</code>
741
	 * @param uuid
742
	 * @return
743
	 */
744
	public Variable findVariableByUuid(UUID uuid) {
745
		if (uuid == null){
746
			return null;
747
		}
748
		//TODO improve performance by storing variables also in a
749
		//hashmap
750
		for (Variable var : base.getVariables()) {
751
			if (uuid.equals(var.getUuid())) {
752
				return var;
753
			}
754
		}
755
		return null;
756
	}
757

    
758
	/* (non-Javadoc)
759
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkExistanceOneVariable(java.lang.String)
760
	 */
761
	@Override
762
	public boolean checkExistanceOneVariable(String s) {
763
		logger.info("checkExistanceOneVariable implemented as super");
764
		return super.checkExistanceOneVariable(s);
765
	}
766

    
767
	/* (non-Javadoc)
768
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkCommunModeName(fr_jussieu_snv_lis.base.Variable[])
769
	 */
770
	@Override
771
	public boolean checkCommunModeName(Variable[] tab) {
772
		logger.warn("checkCommunModeName Not yet implemented");
773
		return false;
774
	}
775

    
776
	/* (non-Javadoc)
777
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkNumericalType(fr_jussieu_snv_lis.base.Variable[])
778
	 */
779
	@Override
780
	public boolean checkNumericalType(Variable[] tab) {
781
		logger.warn("checkNumericalType Not yet implemented");
782
		return false;
783
	}
784

    
785
	/* (non-Javadoc)
786
	 * @see fr_jussieu_snv_lis.base.IControlerBase#checkStateNumber(fr_jussieu_snv_lis.base.Variable[])
787
	 */
788
	@Override
789
	public boolean checkStateNumber(Variable[] tab) {
790
		logger.warn("checkStateNumber Not yet implemented");
791
		return false;
792
	}
793

    
794
	/* (non-Javadoc)
795
	 * @see fr_jussieu_snv_lis.base.IControlerBase#createNewVariable(java.lang.String)
796
	 */
797
	@Override
798
	public Variable createNewCategoricalVariable(String name) {
799
		Variable newVariable = new Variable(name); 
800
		newVariable.setType(Utils.catType);
801
		newVariable.setUuid(UUID.randomUUID());
802

    
803
		// By default, a new Variable has two Modes
804
		//TODO Do we really need to add new modes immediately? SDD data sometimes do not have to states
805
//		Mode mode1 = new Mode(XPApp.messages.getString("mode") + " 1");
806
//		Mode mode2 = new Mode(XPApp.messages.getString("mode") + " 2");
807
//		newVariable.addMode(mode1);
808
//		newVariable.addMode(mode2);
809

    
810
		base.addVariable(newVariable); // add the new Variable to the List of Variable of the Base
811
		//TODO needed
812
		XPApp.baseChanged = true;
813

    
814
		this.cdmXperAdapter.createNewVariable(newVariable);
815
		
816
		return newVariable;
817
	}
818

    
819
	/* (non-Javadoc)
820
	 * @see fr_jussieu_snv_lis.base.IControlerBase#createNewVariableNumOrEnum(java.lang.String, java.lang.String)
821
	 */
822
	@Override
823
	public Variable createNewVariableNumOrEnum(String name, String type) {
824
		Variable newVariable = new Variable(name); 
825
		newVariable.setType(type);
826
		newVariable.setUuid(UUID.randomUUID());
827
		
828
		base.addVariable(newVariable); // add the new Variable to the List of Variable of the Base
829
		//TODO needed
830
		XPApp.baseChanged = true;
831

    
832
		this.cdmXperAdapter.createNewVariable(newVariable);
833
			
834
		return newVariable;
835
		
836
	}
837

    
838
	/* (non-Javadoc)
839
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addNewVariableAndItsModesToMatrix(fr_jussieu_snv_lis.base.Variable)
840
	 */
841
	@Override
842
	public void addNewVariableAndItsModesToMatrix(Variable newVariable) {
843
		logger.warn("addNewVariableAndItsModesToMatrix still needs to add 'unknown data' as a value for the feature");
844
		super.addNewVariableAndItsModesToMatrix(newVariable);
845
	}
846

    
847
	/* (non-Javadoc)
848
	 * @see fr_jussieu_snv_lis.base.IControlerBase#addNewVariableNumAndItsModesToMatrix(fr_jussieu_snv_lis.base.Variable)
849
	 */
850
	@Override
851
	public void addNewVariableNumAndItsModesToMatrix(Variable newVariable) {
852
		logger.warn("addNewVariableNumAndItsModesToMatrix Not yet implemented");
853
	}
854

    
855
	/* (non-Javadoc)
856
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteVariableFromMatrix(fr_jussieu_snv_lis.base.Variable)
857
	 */
858
	@Override
859
	public void deleteVariableFromMatrix(Variable variable) {
860
		logger.warn("deleteVariableFromMatrix Not yet implemented");
861
	}
862

    
863
	/* (non-Javadoc)
864
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteVariable(fr_jussieu_snv_lis.base.Variable)
865
	 */
866
	@Override
867
	public void deleteVariable(Variable va) {
868
		logger.warn("deleteVariable Not yet implemented");
869
	}
870

    
871
	/* (non-Javadoc)
872
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteVariableAndAllDaughters(fr_jussieu_snv_lis.base.Variable)
873
	 */
874
	@Override
875
	public void deleteVariableAndAllDaughters(Variable v) {
876
		logger.warn("deleteVariableAndAllDaughters Not yet implemented");
877
	}
878

    
879
	/* (non-Javadoc)
880
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteVariablesAndAllDaughters(fr_jussieu_snv_lis.base.Variable[])
881
	 */
882
	@Override
883
	public void deleteVariablesAndAllDaughters(Variable[] tab) {
884
		logger.warn("deleteVariablesAndAllDaughters Not yet implemented");
885
	}
886

    
887
	/* (non-Javadoc)
888
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteVariableWithoutDaughters(fr_jussieu_snv_lis.base.Variable)
889
	 */
890
	@Override
891
	public void deleteVariableWithoutDaughters(Variable v) {
892
		logger.warn("deleteVariableWithoutDaughters Not yet implemented");
893

    
894
	}
895

    
896
	/* (non-Javadoc)
897
	 * @see fr_jussieu_snv_lis.base.IControlerBase#deleteVariablesWithoutDaughters(fr_jussieu_snv_lis.base.Variable[])
898
	 */
899
	@Override
900
	public void deleteVariablesWithoutDaughters(Variable[] tab) {
901
		logger.warn("deleteVariablesWithoutDaughters Not yet implemented");
902
	}
903

    
904
	/* (non-Javadoc)
905
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getVariableDescendant(java.util.List, fr_jussieu_snv_lis.base.Variable)
906
	 */
907
	@Override
908
	public List<Variable> getVariableDescendant(List<Variable> listDescendant, Variable v) {
909
		logger.warn("getVariableDescendant Not yet implemented");
910
		return null;
911
	}
912

    
913
	/* (non-Javadoc)
914
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getVariableDaughters(fr_jussieu_snv_lis.base.Variable)
915
	 */
916
	@Override
917
	public List<Variable> getVariableDaughters(Variable v) {
918
		return super.getVariableDaughters(v);
919
	}
920

    
921
	/* (non-Javadoc)
922
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getVariablesWithoutMother()
923
	 */
924
	@Override
925
	public List<Variable> getVariablesWithoutMother() {
926
		return super.getVariablesWithoutMother();
927
	}
928

    
929
	/* (non-Javadoc)
930
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getVariablesWithoutMother(java.util.List)
931
	 */
932
	@Override
933
	public List<Variable> getVariablesWithoutMother(List<Variable> variables) {
934
		return super.getVariablesWithoutMother(variables);
935
	}
936

    
937
	/* (non-Javadoc)
938
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getVariablesWithoutDaughter(java.util.List)
939
	 */
940
	@Override
941
	public List<Variable> getVariablesWithoutDaughter(List<Variable> variables) {
942
		logger.warn("getVariablesWithoutDaughter Not yet implemented");
943
		return null;
944
	}
945

    
946
	/* (non-Javadoc)
947
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getListVariable()
948
	 */
949
	@Override
950
	public List<Variable> getListVariable() {
951
		List<Variable> result = base.getVariables();
952
//		List<FeatureNode> rootChildren = getFeatureTree().getRootChildren();
953
//		List<Variable> result = cdmXperAdapter.adaptFeatureListToVariableList(-1, rootChildren);
954
		return result;  //base.getVariables();
955
	}
956

    
957
	/* (non-Javadoc)
958
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getVariablesByGroup(java.util.List, fr_jussieu_snv_lis.base.Group)
959
	 */
960
	@Override
961
	public List<Variable> getVariablesByGroup(List<Variable> variables,	Group group) {
962
		logger.warn("getVariablesByGroup Not yet implemented");
963
		return null;
964
	}
965

    
966
	/* (non-Javadoc)
967
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getVariablesWithoutGroup(java.util.List)
968
	 */
969
	@Override
970
	public List<Variable> getVariablesWithoutGroup(List<Variable> variables) {
971
		logger.warn("getVariablesWithoutGroup only implemented as super");
972
		return super.getVariablesWithoutGroup(variables);
973
	}
974

    
975

    
976
	/* (non-Javadoc)
977
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getCurrentVar()
978
	 */
979
	@Override
980
	public Variable getCurrentVar() {
981
		return super.getCurrentVar();
982
	}
983

    
984
	/* (non-Javadoc)
985
	 * @see fr_jussieu_snv_lis.base.IControlerBase#setCurrentVar(fr_jussieu_snv_lis.base.Variable)
986
	 */
987
	@Override
988
	public void setCurrentVar(Variable var) {
989
		super.setCurrentVar(var);
990
	}
991

    
992
	/* (non-Javadoc)
993
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getCurrentInd()
994
	 */
995
	@Override
996
	public Individual getCurrentInd() {
997
		return super.getCurrentInd();
998
	}
999

    
1000
	/* (non-Javadoc)
1001
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getCurrentIndArray()
1002
	 */
1003
	@Override
1004
	public Individual[] getCurrentIndArray() {
1005
		return super.getCurrentIndArray();
1006
	}
1007
	
1008
	/* (non-Javadoc)
1009
	 * @see fr_jussieu_snv_lis.base.IControlerBase#setCurrentInd(fr_jussieu_snv_lis.base.Individual)
1010
	 */
1011
	@Override
1012
	public void setCurrentInd(Individual ind) {
1013
		super.setCurrentInd(ind);
1014
	}
1015

    
1016
	/* (non-Javadoc)
1017
	 * @see fr_jussieu_snv_lis.base.IControlerBase#setCurrentIndArray(fr_jussieu_snv_lis.base.Individual[])
1018
	 */
1019
	@Override
1020
	public void setCurrentIndArray(Individual[] tab) {
1021
		super.setCurrentIndArray(tab);
1022
	}
1023

    
1024
	/* (non-Javadoc)
1025
	 * @see fr_jussieu_snv_lis.base.IControlerBase#setCurrentIndArray(java.lang.Object[])
1026
	 */
1027
	@Override
1028
	public void setCurrentIndArray(Object[] tab) {
1029
		super.setCurrentIndArray(tab);
1030
	}
1031

    
1032
	
1033
	@Override
1034
	public boolean isAllowIndividualEditing() {
1035
		//editing of individuals is not allowed in CDM mode
1036
		return false;
1037
	}
1038

    
1039
	/* (non-Javadoc)
1040
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getSortedIndividuals()
1041
	 */
1042
	@Override
1043
	public List<Individual> getSortedIndividuals() {
1044
		logger.warn("getSortedIndividuals Not yet implemented");
1045
		return null;
1046
	}
1047

    
1048
	/* (non-Javadoc)
1049
	 * @see fr_jussieu_snv_lis.base.IControlerBase#getSortedGroups()
1050
	 */
1051
	@Override
1052
	public List<Group> getSortedGroups() {
1053
		logger.warn("getSortedGroups Not yet implemented");
1054
		return null;
1055
	}
1056

    
1057
	/* (non-Javadoc)
1058
	 * @see fr_jussieu_snv_lis.base.IControlerBase#moveIndividualTo(int, fr_jussieu_snv_lis.base.Individual)
1059
	 */
1060
	@Override
1061
	public void moveIndividualTo(int i, Individual ind) {
1062
		logger.warn("moveIndividualTo Not yet implemented");
1063

    
1064
	}
1065

    
1066
	/* (non-Javadoc)
1067
	 * @see fr_jussieu_snv_lis.base.IControlerBase#moveVariableTo(int, fr_jussieu_snv_lis.base.Variable)
1068
	 */
1069
	@Override
1070
	public void moveVariableTo(int i, Variable v) {
1071
		logger.warn("moveVariableTo Not yet implemented");
1072
	}
1073

    
1074
	/* (non-Javadoc)
1075
	 * @see fr_jussieu_snv_lis.base.IControlerBase#moveVariablesTo(int, java.util.List)
1076
	 */
1077
	@Override
1078
	public void moveVariablesTo(int i, List<Variable> a) {
1079
		logger.warn("moveVariablesTo Not yet implemented");
1080
	}
1081

    
1082
	/* (non-Javadoc)
1083
	 * @see fr_jussieu_snv_lis.base.IControlerBase#moveGroupTo(int, fr_jussieu_snv_lis.base.Group)
1084
	 */
1085
	@Override
1086
	public void moveGroupTo(int i, Group g) {
1087
		logger.warn("moveGroupTo Not yet implemented");
1088
	}
1089

    
1090

    
1091
}
(3-3/3)