Project

General

Profile

Download (27.7 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.io.File;
12
import java.io.IOException;
13
import java.util.ArrayList;
14
import java.util.HashSet;
15
import java.util.List;
16
import java.util.Map;
17
import java.util.Set;
18

    
19
import org.apache.commons.lang.StringUtils;
20
import org.apache.log4j.Logger;
21

    
22
import eu.etaxonomy.cdm.api.application.CdmApplicationUtils;
23
import fr_jussieu_snv_lis.base.BaseObject;
24
import fr_jussieu_snv_lis.base.BaseObjectResource;
25
import fr_jussieu_snv_lis.base.Group;
26
import fr_jussieu_snv_lis.base.IBase;
27
import fr_jussieu_snv_lis.base.Individual;
28
import fr_jussieu_snv_lis.base.IndividualGroupNode;
29
import fr_jussieu_snv_lis.base.IndividualGroupTree;
30
import fr_jussieu_snv_lis.base.IndividualNode;
31
import fr_jussieu_snv_lis.base.IndividualTree;
32
import fr_jussieu_snv_lis.base.Variable;
33
import fr_jussieu_snv_lis.base.XPResource;
34

    
35
/**
36
 * @author a.mueller
37
 * @date 12.04.2011
38
 *
39
 */
40
public class BaseCdm implements IBase {
41
	private static final Logger logger = Logger.getLogger(BaseCdm.class);
42
	private CdmXperBaseControler baseControler;
43
	
44
	//temporary store
45
	private List<Variable> cdmVariables; // A set of Variable
46
	private List<Individual> cdmIndividuals;
47
	private IndividualTree cdmIndividualTree;
48
	
49
	//FIXME mapping for groups not yet decided
50
	private List<Group> groups = new ArrayList<Group>();
51

    
52

    
53
	protected void setBaseControler(CdmXperBaseControler cdmXperBaseControler) {
54
		this.baseControler = cdmXperBaseControler; 
55
	}
56

    
57
	protected CdmXperBaseControler getBaseControler() {
58
		return baseControler;
59
	}
60
	
61
	private CdmXperAdapter getAdapter(){
62
		return getBaseControler().getAdapter();
63
	}
64
	
65
//******************* IBase *****************************************************/	
66
	
67
	
68
	/* (non-Javadoc)
69
	 * @see fr_jussieu_snv_lis.base.IBase#getGroups()
70
	 */
71
	@Override
72
	public List<Group> getGroups() {
73
		logger.warn("getGroups Not yet implemented (groups not yet implemented)");
74
		return groups;
75
	}
76

    
77
	/* (non-Javadoc)
78
	 * @see fr_jussieu_snv_lis.base.IBase#getGroupAt(int)
79
	 */
80
	@Override
81
	public Group getGroupAt(int i) {
82
		logger.warn("getGroupAt Not yet implemented (groups not yet implemented)");
83
		return null;
84
	}
85

    
86
	/* (non-Javadoc)
87
	 * @see fr_jussieu_snv_lis.base.IBase#setGroups(java.util.List)
88
	 */
89
	@Override
90
	public void setGroups(List<Group> n) {
91
		logger.warn("setGroups Not yet implemented");
92
	}
93

    
94
	/* (non-Javadoc)
95
	 * @see fr_jussieu_snv_lis.base.IBase#addGroup(fr_jussieu_snv_lis.base.Group)
96
	 */
97
	@Override
98
	public boolean addGroup(Group obj) {
99
		logger.warn("addGroup Not yet implemented");
100
		return false;
101
	}
102

    
103
	/* (non-Javadoc)
104
	 * @see fr_jussieu_snv_lis.base.IBase#addGroupAt(int, fr_jussieu_snv_lis.base.Group)
105
	 */
106
	@Override
107
	public void addGroupAt(int i, Group group) {
108
		logger.warn("addGroupAt Not yet implemented");
109

    
110
	}
111

    
112
	/* (non-Javadoc)
113
	 * @see fr_jussieu_snv_lis.base.IBase#deleteGroup(fr_jussieu_snv_lis.base.Group)
114
	 */
115
	@Override
116
	public boolean deleteGroup(Group group) {
117
		logger.warn("deleteGroup Not yet implemented");
118
		return false;
119
	}
120

    
121
	/* (non-Javadoc)
122
	 * @see fr_jussieu_snv_lis.base.IBase#getVariables()
123
	 */
124
	@Override
125
	public List<Variable> getVariables() {
126
		if (cdmVariables == null){
127
			cdmVariables = new ArrayList<Variable>();
128
			getBaseControler().loadFeatures();
129
		}
130
		return cdmVariables;
131
	}
132

    
133
	/* (non-Javadoc)
134
	 * @see fr_jussieu_snv_lis.base.IBase#getVariableAt(int)
135
	 */
136
	@Override
137
	public Variable getVariableAt(int i) {
138
		try {
139
			return getVariables().get(i);
140
		} catch (IndexOutOfBoundsException ioobe) {
141
			return null;
142
		}
143
	}
144

    
145
	/* (non-Javadoc)
146
	 * @see fr_jussieu_snv_lis.base.IBase#setVariables(java.util.List)
147
	 */
148
	@Override
149
	public void setVariables(List<Variable> al) {
150
		logger.warn("setVariables Not yet implemented");
151

    
152
	}
153

    
154
	/* (non-Javadoc)
155
	 * @see fr_jussieu_snv_lis.base.IBase#deleteVariable(fr_jussieu_snv_lis.base.Variable)
156
	 */
157
	@Override
158
	public boolean deleteVariable(Variable variable) {
159
		logger.warn("deleteVariable should be handled by controler");
160
		if (getVariables().remove(variable)) {
161
			BaseObject.checkIndex(getVariables());
162
			return true;
163
		}
164
		return false;
165
	}
166

    
167
	/* (non-Javadoc)
168
	 * @see fr_jussieu_snv_lis.base.IBase#addVariable(fr_jussieu_snv_lis.base.Variable)
169
	 */
170
	@Override
171
	public boolean addVariable(Variable variable) {
172
		getVariables();
173
		if (!getVariables().contains(variable)) {
174
			if (getVariables().add(variable)) {
175
				// int i = variables.lastIndexOf(variable);
176
				// ((BaseObject) variable).setIndex("" + (i + 1)); // index ++
177
				BaseObject.checkIndex(getVariables());
178
				return true;
179
			}
180

    
181
			return false;
182
		}
183

    
184
		return false;
185
	}
186

    
187
	/* (non-Javadoc)
188
	 * @see fr_jussieu_snv_lis.base.IBase#addVariableAt(fr_jussieu_snv_lis.base.Variable, int)
189
	 */
190
	@Override
191
	public void addVariableAt(Variable variable, int i) {
192
		logger.warn("addVariableAt Not yet implemented");
193

    
194
	}
195

    
196
	/* (non-Javadoc)
197
	 * @see fr_jussieu_snv_lis.base.IBase#addIndividual(fr_jussieu_snv_lis.base.Individual)
198
	 */
199
	@Override
200
	public boolean addIndividual(Individual individual) {
201
		if (!this.getIndividuals().contains(individual)) {
202
			if (this.getIndividuals().add(individual)) {
203
				// int index = individuals.lastIndexOf(obj);
204
				// ((BaseObject) obj).setIndex("" + (index + 1));
205
				BaseObject.checkIndex(this.getIndividuals());
206
				return true;
207
			}
208

    
209
			return false;
210
		}
211
		return false;
212
	}
213

    
214
	/* (non-Javadoc)
215
	 * @see fr_jussieu_snv_lis.base.IBase#addIndividualAt(int, fr_jussieu_snv_lis.base.Individual)
216
	 */
217
	@Override
218
	public boolean addIndividualAt(int i, Individual ind) {
219
		logger.warn("addIndividualAt Not yet implemented");
220
		return false;
221
	}
222

    
223
	/* (non-Javadoc)
224
	 * @see fr_jussieu_snv_lis.base.IBase#deleteIndividual(fr_jussieu_snv_lis.base.Individual)
225
	 */
226
	@Override
227
	public boolean deleteIndividual(Individual obj) {
228
		logger.warn("deleteIndividual Not yet implemented");
229
		return false;
230
	}
231

    
232
	/* (non-Javadoc)
233
	 * @see fr_jussieu_snv_lis.base.IBase#getIndividuals()
234
	 */
235
	@Override
236
	public List<Individual> getIndividuals() {
237
		if (cdmIndividuals == null){
238
			cdmIndividuals = new ArrayList<Individual>();
239
			getAdapter().loadTaxa();
240
		}
241
		return cdmIndividuals;
242
	}
243

    
244
	/* (non-Javadoc)
245
	 * @see fr_jussieu_snv_lis.base.IBase#getIndividualAt(int)
246
	 */
247
	@Override
248
	public Individual getIndividualAt(int i) {
249
		return this.cdmIndividuals.get(i);
250
	}
251

    
252
	/* (non-Javadoc)
253
	 * @see fr_jussieu_snv_lis.base.IBase#setIndividualList(java.util.List)
254
	 */
255
	@Override
256
	public void setIndividualList(List<Individual> n) {
257
		logger.warn("setIndividualList Not yet implemented");
258

    
259
	}
260

    
261
	/* (non-Javadoc)
262
	 * @see fr_jussieu_snv_lis.base.IBase#getAuthors()
263
	 */
264
	@Override
265
	public Set<String> getAuthors() {
266
		logger.warn("getAuthors Not yet implemented");
267
		return null;
268
	}
269

    
270
	/* (non-Javadoc)
271
	 * @see fr_jussieu_snv_lis.base.IBase#getAuthorAt(int)
272
	 */
273
	@Override
274
	public String getAuthorAt(int i) {
275
		logger.warn("getAuthorAt Not yet implemented");
276
		return null;
277
	}
278

    
279
	/* (non-Javadoc)
280
	 * @see fr_jussieu_snv_lis.base.IBase#setAuthors(java.lang.Object[])
281
	 */
282
	@Override
283
	public void setAuthors(Object[] list) {
284
		logger.warn("setAuthors Not yet implemented");
285

    
286
	}
287

    
288
	/* (non-Javadoc)
289
	 * @see fr_jussieu_snv_lis.base.IBase#addAuthor(java.lang.String)
290
	 */
291
	@Override
292
	public boolean addAuthor(String s) {
293
		logger.warn("addAuthor Not yet implemented");
294
		return false;
295
	}
296

    
297
	/* (non-Javadoc)
298
	 * @see fr_jussieu_snv_lis.base.IBase#deleteAuthor(java.lang.String)
299
	 */
300
	@Override
301
	public boolean deleteAuthor(String s) {
302
		logger.warn("deleteAuthor Not yet implemented");
303
		return false;
304
	}
305

    
306
	/* (non-Javadoc)
307
	 * @see fr_jussieu_snv_lis.base.IBase#getName()
308
	 */
309
	@Override
310
	public String getName() {
311
		String result = this.getAdapter().getWorkingSet().getLabel();
312
		result = StringUtils.isBlank(result)? "<no title>": result;
313
		return result;
314
	}
315

    
316
	/* (non-Javadoc)
317
	 * @see fr_jussieu_snv_lis.base.IBase#setName(java.lang.String)
318
	 */
319
	@Override
320
	public void setName(String n) {
321
		logger.warn("setName Not yet implemented");
322

    
323
	}
324

    
325
	/* (non-Javadoc)
326
	 * @see fr_jussieu_snv_lis.base.IBase#getPathName()
327
	 */
328
	@Override
329
	public String getPathName() {
330
		File directory;
331
		try {
332
			directory = CdmApplicationUtils.getWritableResourceDir();
333
		} catch (IOException e) {
334
			String message = "Application directory could not be found.";
335
			throw new RuntimeException(message);
336
		}
337
		String result = directory.getAbsolutePath() + File.separator + "xper" + File.separator;
338
		logger.info("pathname is " + result);
339
		return result;
340
	}
341

    
342
	/* (non-Javadoc)
343
	 * @see fr_jussieu_snv_lis.base.IBase#setPathName(java.lang.String)
344
	 */
345
	@Override
346
	public void setPathName(String n) {
347
		logger.warn("setPathName Not yet implemented");
348
	}
349

    
350
	/* (non-Javadoc)
351
	 * @see fr_jussieu_snv_lis.base.IBase#getShortname()
352
	 */
353
	@Override
354
	public String getShortname() {
355
		logger.warn("getShortname Not yet implemented");
356
		return "";
357
	}
358

    
359
	/* (non-Javadoc)
360
	 * @see fr_jussieu_snv_lis.base.IBase#setShortname(java.lang.String)
361
	 */
362
	@Override
363
	public void setShortname(String string) {
364
		logger.warn("setShortname Not yet implemented");
365

    
366
	}
367

    
368
	/* (non-Javadoc)
369
	 * @see fr_jussieu_snv_lis.base.IBase#getDescription()
370
	 */
371
	@Override
372
	public String getDescription() {
373
		logger.warn("getDescription Not yet implemented");
374
		return "";
375
	}
376

    
377
	/* (non-Javadoc)
378
	 * @see fr_jussieu_snv_lis.base.IBase#setDescription(java.lang.String)
379
	 */
380
	@Override
381
	public void setDescription(String string) {
382
		logger.warn("setDescription Not yet implemented");
383

    
384
	}
385

    
386
	/* (non-Javadoc)
387
	 * @see fr_jussieu_snv_lis.base.IBase#setLastEdition(java.lang.String)
388
	 */
389
	@Override
390
	public void setLastEdition(String s) {
391
		logger.warn("setLastEdition Not yet implemented");
392

    
393
	}
394

    
395
	/* (non-Javadoc)
396
	 * @see fr_jussieu_snv_lis.base.IBase#getLastEdition()
397
	 */
398
	@Override
399
	public String getLastEdition() {
400
		logger.warn("getLastEdition Not yet implemented");
401
		return "";
402
	}
403

    
404
	/* (non-Javadoc)
405
	 * @see fr_jussieu_snv_lis.base.IBase#setFirstEdition(java.lang.String)
406
	 */
407
	@Override
408
	public void setFirstEdition(String s) {
409
		logger.warn("setFirstEdition Not yet implemented");
410

    
411
	}
412

    
413
	/* (non-Javadoc)
414
	 * @see fr_jussieu_snv_lis.base.IBase#getFirstEdition()
415
	 */
416
	@Override
417
	public String getFirstEdition() {
418
		logger.warn("getFirstEdition Not yet implemented");
419
		return "";
420
	}
421

    
422
	/***** Base management operations *****/
423
	/* (non-Javadoc)
424
	 * @see fr_jussieu_snv_lis.base.IBase#getNbVariables()
425
	 */
426
	@Override
427
	public int getNbVariables() {
428
		return getVariables().size();
429
	}
430

    
431
	/* (non-Javadoc)
432
	 * @see fr_jussieu_snv_lis.base.IBase#setNbVariables(int)
433
	 */
434
	@Override
435
	public void setNbVariables(int n) {
436
		logger.warn("setNbVariables Not yet implemented");
437

    
438
	}
439

    
440
	/* (non-Javadoc)
441
	 * @see fr_jussieu_snv_lis.base.IBase#getNbIndividuals()
442
	 */
443
	@Override
444
	public int getNbIndividuals() {
445
		return this.cdmIndividuals.size();
446
	}
447

    
448
	/* (non-Javadoc)
449
	 * @see fr_jussieu_snv_lis.base.IBase#setNbIndividuals(int)
450
	 */
451
	@Override
452
	public void setNbIndividuals(int n) {
453
		logger.warn("setNbIndividuals Not yet implemented");
454
	}
455

    
456
	/* (non-Javadoc)
457
	 * @see fr_jussieu_snv_lis.base.IBase#getNbModes()
458
	 */
459
	@Override
460
	public int getNbModes() {
461
		logger.warn("getNbModes Not yet implemented");
462
		return 0;
463
	}
464

    
465
	/* (non-Javadoc)
466
	 * @see fr_jussieu_snv_lis.base.IBase#getNbGroups()
467
	 */
468
	@Override
469
	public int getNbGroups() {
470
		logger.info("getNbGroups Not yet implemented (groups not yet implemented)");
471
		return groups.size();
472
	}
473

    
474
	/* (non-Javadoc)
475
	 * @see fr_jussieu_snv_lis.base.IBase#setNbGroups(int)
476
	 */
477
	@Override
478
	public void setNbGroups(int n) {
479
		logger.warn("setNbGroups Not yet implemented");
480

    
481
	}
482

    
483
	/* (non-Javadoc)
484
	 * @see fr_jussieu_snv_lis.base.IBase#getNbAuthors()
485
	 */
486
	@Override
487
	public int getNbAuthors() {
488
		logger.warn("getNbAuthors Not yet implemented");
489
		return 0;
490
	}
491

    
492
	/* (non-Javadoc)
493
	 * @see fr_jussieu_snv_lis.base.IBase#hasGroups()
494
	 */
495
	@Override
496
	public boolean hasGroups() {
497
		logger.warn("hasGroups Not yet implemented (groups not yet implemented)");
498
		return ! groups.isEmpty();
499
	}
500

    
501
	/* (non-Javadoc)
502
	 * @see fr_jussieu_snv_lis.base.IBase#hasAuthors()
503
	 */
504
	@Override
505
	public boolean hasAuthors() {
506
		//TODO
507
		return false;
508
	}
509

    
510
	/* (non-Javadoc)
511
	 * @see fr_jussieu_snv_lis.base.IBase#hasVariables()
512
	 */
513
	@Override
514
	public boolean hasVariables() {
515
		logger.warn("hasVariables Not yet implemented");
516
		return false;
517
	}
518

    
519
	/* (non-Javadoc)
520
	 * @see fr_jussieu_snv_lis.base.IBase#hasIndividuals()
521
	 */
522
	@Override
523
	public boolean hasIndividuals() {
524
		logger.warn("hasIndividuals Not yet implemented");
525
		return false;
526
	}
527

    
528
	/* (non-Javadoc)
529
	 * @see fr_jussieu_snv_lis.base.IBase#isIllustrated()
530
	 */
531
	@Override
532
	public boolean isIllustrated() {
533
		logger.warn("isIllustrated Not yet implemented");
534
		return false;
535
	}
536

    
537
	/* (non-Javadoc)
538
	 * @see fr_jussieu_snv_lis.base.IBase#isIllustrated(fr_jussieu_snv_lis.base.BaseObject[])
539
	 */
540
	@Override
541
	public boolean isIllustrated(BaseObject[] bo) {
542
		logger.warn("isIllustrated Not yet implemented");
543
		return false;
544
	}
545

    
546
	/* (non-Javadoc)
547
	 * @see fr_jussieu_snv_lis.base.IBase#getIllustratedBo(fr_jussieu_snv_lis.base.XPResource)
548
	 */
549
	@Override
550
	public List<BaseObject> getIllustratedBo(XPResource xpr) {
551
		logger.warn("getIllustratedBo Not yet implemented");
552
		return null;
553
	}
554

    
555
	/* (non-Javadoc)
556
	 * @see fr_jussieu_snv_lis.base.IBase#getAllResources()
557
	 */
558
	@Override
559
	public List<BaseObjectResource> getAllResources() {
560
		logger.warn("getAllResources Not yet implemented");
561
		return null;
562
	}
563

    
564
	/* (non-Javadoc)
565
	 * @see fr_jussieu_snv_lis.base.IBase#getAllResources(java.lang.String)
566
	 */
567
	@Override
568
	public HashSet<Object> getAllResources(String str) {
569
		logger.warn("getAllResources Not yet implemented");
570
		return null;
571
	}
572

    
573
	/* (non-Javadoc)
574
	 * @see fr_jussieu_snv_lis.base.IBase#containsBaseObject(fr_jussieu_snv_lis.base.BaseObject)
575
	 */
576
	@Override
577
	public boolean containsBaseObject(BaseObject bo) {
578
		logger.warn("containsBaseObject Not yet implemented");
579
		return false;
580
	}
581

    
582
	/* (non-Javadoc)
583
	 * @see fr_jussieu_snv_lis.base.IBase#getVariablesWithoutGroup()
584
	 */
585
	@Override
586
	public List<Variable> getVariablesWithoutGroup() {
587
		logger.warn("getVariablesWithoutGroup Not yet implemented");
588
		return null;
589
	}
590

    
591
	/* (non-Javadoc)
592
	 * @see fr_jussieu_snv_lis.base.IBase#compareTo(java.lang.Object)
593
	 */
594
	@Override
595
	public int compareTo(Object arg0) {
596
		logger.warn("compareTo Not yet implemented");
597
		return 0;
598
	}
599

    
600
	/* (non-Javadoc)
601
	 * @see fr_jussieu_snv_lis.base.IBase#free()
602
	 */
603
	@Override
604
	public void free() {
605
		logger.warn("free Not yet implemented");
606

    
607
	}
608

    
609
	/* (non-Javadoc)
610
	 * @see fr_jussieu_snv_lis.base.IBase#isComplete()
611
	 */
612
	@Override
613
	public boolean isComplete() {
614
		logger.warn("isComplete Not yet implemented");
615
		return false;
616
	}
617

    
618
	/* (non-Javadoc)
619
	 * @see fr_jussieu_snv_lis.base.IBase#getCompletePercentage()
620
	 */
621
	@Override
622
	public float getCompletePercentage() {
623
		logger.warn("getCompletePercentage Not yet implemented");
624
		return 0;
625
	}
626

    
627
	/* (non-Javadoc)
628
	 * @see fr_jussieu_snv_lis.base.IBase#toTabFile()
629
	 */
630
	@Override
631
	public String toTabFile() {
632
		logger.warn("toTabFile Not yet implemented");
633
		return null;
634
	}
635

    
636
	/* (non-Javadoc)
637
	 * @see fr_jussieu_snv_lis.base.IBase#toHtml()
638
	 */
639
	@Override
640
	public String toHtml() {
641
		logger.warn("toHtml Not yet implemented");
642
		return null;
643
	}
644

    
645
	/* (non-Javadoc)
646
	 * @see fr_jussieu_snv_lis.base.IBase#getResource()
647
	 */
648
	@Override
649
	public BaseObjectResource getResource() {
650
		logger.warn("getResource Not yet implemented");
651
		return null;
652
	}
653

    
654
	/* (non-Javadoc)
655
	 * @see fr_jussieu_snv_lis.base.IBase#setResource(fr_jussieu_snv_lis.base.BaseObjectResource)
656
	 */
657
	@Override
658
	public void setResource(BaseObjectResource b) {
659
		logger.warn("setResource Not yet implemented");
660

    
661
	}
662

    
663
	/* (non-Javadoc)
664
	 * @see fr_jussieu_snv_lis.base.IBase#removeResource()
665
	 */
666
	@Override
667
	public void removeResource() {
668
		logger.warn("removeResource Not yet implemented");
669

    
670
	}
671

    
672
	/* (non-Javadoc)
673
	 * @see fr_jussieu_snv_lis.base.IBase#hasAnIllustration()
674
	 */
675
	@Override
676
	public boolean hasAnIllustration() {
677
		logger.warn("hasAnIllustration Not yet implemented");
678
		return false;
679
	}
680

    
681
	/* (non-Javadoc)
682
	 * @see fr_jussieu_snv_lis.base.IBase#getLanguage()
683
	 */
684
	@Override
685
	public String getLanguage() {
686
		logger.warn("getLanguage Not yet implemented");
687
		return "";
688
	}
689

    
690
	/* (non-Javadoc)
691
	 * @see fr_jussieu_snv_lis.base.IBase#setLanguage(java.lang.String)
692
	 */
693
	@Override
694
	public void setLanguage(String language) {
695
		logger.warn("setLanguage Not yet implemented");
696

    
697
	}
698

    
699
	/* (non-Javadoc)
700
	 * @see fr_jussieu_snv_lis.base.IBase#setLinks(java.lang.Object[])
701
	 */
702
	@Override
703
	public void setLinks(Object[] objects) {
704
		logger.warn("setLinks Not yet implemented");
705

    
706
	}
707

    
708
	/* (non-Javadoc)
709
	 * @see fr_jussieu_snv_lis.base.IBase#getLinks()
710
	 */
711
	@Override
712
	public Set<String> getLinks() {
713
		logger.warn("getLinks Not yet implemented. Returns empty list");
714
		return new HashSet<String>();
715
	}
716

    
717
	/* (non-Javadoc)
718
	 * @see fr_jussieu_snv_lis.base.IBase#addLinks(java.lang.String)
719
	 */
720
	@Override
721
	public boolean addLinks(String link) {
722
		logger.warn("addLinks Not yet implemented");
723
		return false;
724
	}
725

    
726
	/* (non-Javadoc)
727
	 * @see fr_jussieu_snv_lis.base.IBase#removeLinks(java.lang.String)
728
	 */
729
	@Override
730
	public boolean removeLinks(String link) {
731
		logger.warn("removeLinks Not yet implemented");
732
		return false;
733
	}
734

    
735
	/* (non-Javadoc)
736
	 * @see fr_jussieu_snv_lis.base.IBase#getLicense()
737
	 */
738
	@Override
739
	public String getLicense() {
740
		logger.warn("getLicense Not yet implemented");
741
		return "";
742
	}
743

    
744
	/* (non-Javadoc)
745
	 * @see fr_jussieu_snv_lis.base.IBase#setLicense(java.lang.String)
746
	 */
747
	@Override
748
	public void setLicense(String license) {
749
		logger.warn("setLicense Not yet implemented");
750

    
751
	}
752

    
753
	/* (non-Javadoc)
754
	 * @see fr_jussieu_snv_lis.base.IBase#getNbLinks()
755
	 */
756
	@Override
757
	public int getNbLinks() {
758
		logger.warn("getNbLinks Not yet implemented");
759
		return 0;
760
	}
761

    
762
	/* (non-Javadoc)
763
	 * @see fr_jussieu_snv_lis.base.IBase#getUnknownData()
764
	 */
765
	@Override
766
	public Map<Individual, Variable> getUnknownData() {
767
		logger.warn("getUnknownData Not yet implemented");
768
		return null;
769
	}
770

    
771
	/* (non-Javadoc)
772
	 * @see fr_jussieu_snv_lis.base.IBase#getEmptyData()
773
	 */
774
	@Override
775
	public Map<Individual, Variable> getEmptyData() {
776
		logger.warn("getEmptyData Not yet implemented");
777
		return null;
778
	}
779

    
780
	/* (non-Javadoc)
781
	 * @see fr_jussieu_snv_lis.base.IBase#getHelp()
782
	 */
783
	@Override
784
	public String getHelp() {
785
		logger.warn("getHelp Not yet implemented");
786
		return "";
787
	}
788

    
789
	/* (non-Javadoc)
790
	 * @see fr_jussieu_snv_lis.base.IBase#setHelp(java.lang.String)
791
	 */
792
	@Override
793
	public void setHelp(String help) {
794
		logger.warn("setHelp Not yet implemented");
795

    
796
	}
797

    
798
	/* (non-Javadoc)
799
	 * @see fr_jussieu_snv_lis.base.IBase#isPresentNumVariable()
800
	 */
801
	@Override
802
	public boolean isPresentNumVariable() {
803
		logger.warn("isPresentNumVariable Not yet implemented");
804
		return false;
805
	}
806

    
807
	/* (non-Javadoc)
808
	 * @see fr_jussieu_snv_lis.base.IBase#addResource(fr_jussieu_snv_lis.base.BaseObject, fr_jussieu_snv_lis.base.BaseObjectResource)
809
	 */
810
	@Override
811
	public boolean addResource(BaseObject bo, BaseObjectResource rsc) {
812
		logger.warn("addResource(bo, rsc) Not yet implemented");
813
		return false;
814
	}
815

    
816
	@Override
817
	public int getNbIndividualNodes() {
818
		//preliminary until classification is implemented in a better way for CDM
819
		return this.cdmIndividualTree.getIndividualNodes().size();
820
	}
821

    
822
	@Override
823
	public IndividualNode getIndividualNodeAt(int i) {
824
		//preliminary until classification is implemented in a better way for CDM
825
		return this.cdmIndividualTree.getIndividualNodes().get(i);
826
	}
827

    
828
	@Override
829
	public boolean addIndividualNode(IndividualNode node) {
830
		logger.warn ("addIndividualNode not yet implemented (added Xper 2.3)");
831
		throw new RuntimeException("Individual Node can't be added in CDM version of Xper. Editing taxonomy is not allowed.");
832
	}
833

    
834
	@Override
835
	public IndividualTree getIndividualtree() {
836
		//preliminary until classification is implemented in a better way for CDM
837
		return this.cdmIndividualTree;
838
	}
839

    
840
	@Override
841
	public void setIndividualTree(IndividualTree individualTree) {
842
		//preliminary until classification is implemented in a better way for CDM
843
		this.cdmIndividualTree = individualTree;
844
	}
845

    
846
	@Override
847
	public int getNbIndividualNodes(IndividualNode idNode) {
848
		//preliminary until classification is implemented in a better way for CDM
849
		return this.cdmIndividualTree.getNbIndividualNodes(idNode);
850
	}
851

    
852
	@Override
853
	public boolean deleteIndividualNode(IndividualNode individualNode) {
854
		throw new RuntimeException("Individual node can't be deleted in CDM version of Xper. Editing taxonomy is not allowed.");
855
	}
856

    
857
	@Override
858
	public boolean moveIndividualNode(IndividualNode nodeToMove, IndividualNode nodeTarget) {
859
		throw new RuntimeException("Individual node can't be moved in CDM version of Xper. Editing taxonomy is not allowed.");
860
	}
861

    
862
	@Override
863
	public boolean moveIndividualNodeInIndividualTreeRoot(List<IndividualNode> nodesDaughters) {
864
		throw new RuntimeException("Individual node can't be moved in CDM version of Xper. Editing taxonomy is not allowed.");
865
	}
866

    
867
	@Override
868
	public boolean moveIndividualNodeInIndividualTreeRoot(IndividualNode targerNode) {
869
		throw new RuntimeException("Individual node can't be moved in CDM version of Xper. Editing taxonomy is not allowed.");
870
	}
871

    
872
	@Override
873
	public boolean checkIndNodeByName(String keyNode) {
874
		logger.warn ("checkIndNodeByName not yet implemented (added Xper 2.3)");
875
		return false;
876
	}
877

    
878
	@Override
879
	public IndividualNode getIndNodeByName(String refTaxonHierarchyNodeTaxoNameIND) {
880
		logger.warn ("getIndNodeByName not yet implemented (added Xper 2.3)");
881
		return null;
882
	}
883

    
884
	@Override
885
	public boolean checkIfIndividualNodeIsInTree(Individual individual) {
886
		logger.warn ("checkIfIndividualNodeIsInTree not yet implemented (added Xper 2.3)");
887
		return false;
888
	}
889

    
890
	@Override
891
	public IndividualNode getIndividualNodeByLeaf(Individual individual) {
892
		logger.warn ("getIndividualNodeByLeaf not yet implemented (added Xper 2.3)");
893
		return null;
894
	}
895

    
896
	@Override
897
	public void setIndividualtreeLabel(String string) {
898
		logger.warn("setIndividualtreeLabel not yet implemented (added Xper 2.3)");
899
	}
900

    
901
	@Override
902
	public void setIndividualtreeHierarchyType(String string) {
903
		logger.warn ("setIndividualtreeHierarchyType not yet implemented (added Xper 2.3)");
904
		
905
	}
906

    
907
	@Override
908
	public List<IndividualTree> getListIndividualTree() {
909
		logger.warn ("getListIndividualTree not yet implemented (added Xper 2.3)");
910
		return null;
911
	}
912

    
913
	@Override
914
	public void setListIndividualTree(List<IndividualTree> listOfTree) {
915
		logger.warn ("setListIndividualTree not yet implemented (added Xper 2.3)");
916
		
917
	}
918

    
919
	@Override
920
	public IndividualGroupNode getIndividualNodeInTreeGroupAt(int i) {
921
		logger.warn ("getIndividualNodeInTreeGroupAt not yet implemented (added Xper 2.3)");
922
		return null;
923
	}
924

    
925
	@Override
926
	public int getNbIndividualNodesGroupInTree() {
927
		logger.warn ("getNbIndividualNodesGroupInTree not yet implemented (added Xper 2.3)");
928
		return 0;
929
	}
930

    
931
	@Override
932
	public IndividualGroupTree getIndividualGroupTree() {
933
		logger.warn ("getIndividualGroupTree not yet implemented (added Xper 2.3)");
934
		return null;
935
	}
936

    
937
	@Override
938
	public boolean addIndividualGroupNode(IndividualGroupNode targetNode,IndividualGroupNode node2add) {
939
		logger.warn ("addIndividualGroupNode not yet implemented (added Xper 2.3)");
940
		return false;
941
	}
942

    
943
	@Override
944
	public boolean addIndGroup(Group newGroup) {
945
		logger.warn ("addIndGroup not yet implemented (added Xper 2.3)");
946
		return false;
947
	}
948

    
949
	@Override
950
	public boolean deleteIndividualGroupNode(Individual ind) {
951
		logger.warn ("deleteIndividualGroupNode not yet implemented (added Xper 2.3)");
952
		return false;
953
	}
954

    
955
	@Override
956
	public boolean deleteIndividualGroupNode(Group group) {
957
		logger.warn ("deleteIndividualGroupNode not yet implemented (added Xper 2.3)");
958
		return false;
959
	}
960

    
961
	@Override
962
	public boolean deleteIndividualGroupNode(IndividualGroupNode node2Delete) {
963
		logger.warn ("deleteIndividualGroupNode not yet implemented (added Xper 2.3)");
964
		return false;
965
	}
966

    
967
	@Override
968
	public int getNbIndividualGroups() {
969
		logger.warn ("getNbIndividualGroups not yet implemented (added Xper 2.3)");
970
		return 0;
971
	}
972

    
973
	@Override
974
	public List<Group> getIndividualGroups() {
975
		logger.warn ("getIndividualGroups not yet implemented (added Xper 2.3)");
976
		return null;
977
	}
978

    
979
	@Override
980
	public Group getIndividualGroupAt(int i) {
981
		logger.warn ("getIndividualGroupAt not yet implemented (added Xper 2.3)");
982
		return null;
983
	}
984

    
985
	@Override
986
	public boolean addDuplicateIndividualGroupNode(IndividualGroupNode targetNode, IndividualGroupNode node2copy) {
987
		logger.warn ("addDuplicateIndividualGroupNode not yet implemented (added Xper 2.3)");
988
		return false;
989
	}
990

    
991
	@Override
992
	public boolean removeIndividualGroupNode(IndividualGroupNode mother, IndividualGroupNode node2del) {
993
		logger.warn ("removeIndividualGroupNode not yet implemented (added Xper 2.3)");
994
		return false;
995
	}
996

    
997
	@Override
998
	public IndividualGroupNode addIndividualGroupNode(Group group) {
999
		logger.warn ("addIndividualGroupNode not yet implemented (added Xper 2.3)");
1000
		return null;
1001
	}
1002

    
1003
	@Override
1004
	public boolean moveIndividualGroupNode(String idTargetNode, IndividualGroupNode node2move) {
1005
		logger.warn ("moveIndividualGroupNode not yet implemented (added Xper 2.3)");
1006
		return false;
1007
	}
1008

    
1009
	@Override
1010
	public IndividualGroupNode getIndividualNodeByGroupId(String idGroupParent) {
1011
		logger.warn ("getIndividualNodeByGroupId not yet implemented (added Xper 2.3)");
1012
		return null;
1013
	}
1014

    
1015
	@Override
1016
	public void sortIndGrpList() {
1017
		logger.warn ("sortIndGrpList not yet implemented (added Xper 2.3)");
1018
		
1019
	}
1020

    
1021
	@Override
1022
	public boolean hasIndividualGroup(Individual ind) {
1023
		logger.warn ("hasIndividualGroup not yet implemented (added Xper 2.3)");
1024
		return false;
1025
	}
1026

    
1027
	@Override
1028
	public List<IndividualGroupNode> getIndividualGroupNodeByLeaf(Individual ind) {
1029
		logger.warn ("getIndividualGroupNodeByLeaf not yet implemented (added Xper 2.3)");
1030
		return null;
1031
	}
1032

    
1033
	@Override
1034
	public void setIndividualGroupTree(IndividualGroupTree individualGroupTree) {
1035
		logger.warn ("setIndividualGroupTree not yet implemented (added Xper 2.3)");
1036
		
1037
	}
1038

    
1039
	@Override
1040
	public void setListIndividualGroupTree(List<IndividualGroupTree> listOfIndividualGroupTree) {
1041
		logger.warn ("setListIndividualGroupTree not yet implemented (added Xper 2.3)");
1042
		
1043
	}
1044

    
1045
	@Override
1046
	public List<IndividualGroupTree> getListIndividualGroupTree() {
1047
		logger.warn ("getListIndividualGroupTree not yet implemented (added Xper 2.3)");
1048
		return null;
1049
	}
1050

    
1051
	@Override
1052
	public void sortIndividualTree() {
1053
		logger.info("sortIndividualTree not implemented for BaseCdm. Probably not needed (added since Xper 2.3)");
1054
	}
1055

    
1056
	@Override
1057
	public void sortIndividualGroupTree() {
1058
		logger.info("sortIndividualGroupTree not implemented for BaseCdm. Probably not needed (added since Xper 2.3)");
1059
	}
1060

    
1061
	@Override
1062
	public void checkTreeIndex() {
1063
		logger.info("checkTreeIndex not implemented for BaseCdm. Probably not needed (added since Xper 2.3)");
1064
	}
1065
	
1066
	
1067
}
(1-1/3)