Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.swing / org.gvsig.fmap.dal.swing.impl / src / main / java / org / gvsig / fmap / dal / swing / impl / featuretable / table / DynFieldFacadeOfAFeatureAttributeDescriptor.java @ 44947

History | View | Annotate | Download (18.9 KB)

1

    
2
package org.gvsig.fmap.dal.swing.impl.featuretable.table;
3

    
4
import java.math.BigDecimal;
5
import java.math.MathContext;
6
import java.text.DateFormat;
7
import java.util.List;
8
import java.util.Locale;
9
import java.util.Objects;
10
import org.apache.commons.lang3.ArrayUtils;
11
import org.apache.commons.lang3.StringUtils;
12
import org.cresques.cts.IProjection;
13
import org.gvsig.fmap.dal.feature.DataProfile;
14
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
15
import org.gvsig.fmap.dal.feature.FeatureAttributeEmulator;
16
import org.gvsig.fmap.dal.feature.FeatureAttributeGetter;
17
import org.gvsig.fmap.dal.feature.FeatureStore;
18
import org.gvsig.fmap.dal.feature.FeatureType;
19
import org.gvsig.fmap.dal.feature.ForeingKey;
20
import org.gvsig.fmap.geom.Geometry;
21
import org.gvsig.fmap.geom.type.GeometryType;
22
import org.gvsig.timesupport.Interval;
23
import org.gvsig.tools.dataTypes.Coercion;
24
import org.gvsig.tools.dataTypes.CoercionException;
25
import org.gvsig.tools.dataTypes.DataType;
26
import org.gvsig.tools.dataTypes.DataTypeUtils;
27
import org.gvsig.tools.dynobject.DynField;
28
import org.gvsig.tools.dynobject.DynField_v2;
29
import org.gvsig.tools.dynobject.DynMethod;
30
import org.gvsig.tools.dynobject.DynObject;
31
import org.gvsig.tools.dynobject.DynObjectValueItem;
32
import org.gvsig.tools.dynobject.DynStruct;
33
import org.gvsig.tools.dynobject.Tags;
34
import org.gvsig.tools.dynobject.exception.DynFieldIsNotAContainerException;
35
import org.gvsig.tools.dynobject.exception.DynFieldValidateException;
36
import org.gvsig.tools.evaluator.Evaluator;
37
import org.gvsig.tools.dataTypes.CoercionContext;
38
import org.gvsig.tools.persistence.PersistentState;
39
import org.gvsig.tools.persistence.exception.PersistenceException;
40

    
41

    
42
public class DynFieldFacadeOfAFeatureAttributeDescriptor implements FeatureAttributeDescriptor {
43

    
44
    private DynField field;
45
    private CoercionContext coerceContext;
46
  
47
    public DynFieldFacadeOfAFeatureAttributeDescriptor(DynField field) {
48
        this.field = field;
49
    }
50
    
51
    @Override
52
    public FeatureAttributeDescriptor getCopy() {
53
        try {
54
            return (FeatureAttributeDescriptor) field.clone();
55
        } catch (CloneNotSupportedException ex) {
56
            throw new RuntimeException(ex);
57
        }
58
    }
59

    
60
    @Override
61
    public MathContext getMathContext() {
62
      return MathContext.UNLIMITED;
63
    }
64

    
65
    @Override
66
    public String getDataTypeName() {
67
        return field.getDataType().getName();
68
    }
69

    
70
    @Override
71
    public int getSize() {
72
        return 1;
73
    }
74

    
75
    @Override
76
    public int getPrecision() {
77
        return 0;
78
    }
79

    
80
    @Override
81
    public int getScale() {
82
        return 0;
83
    }
84

    
85
    @Override
86
    public Coercion getCoercion() {
87
      return this.field.getDataType().getCoercion();
88
    }
89

    
90
    @Override
91
    public CoercionContext getCoercionContext() {
92
      if( this.coerceContext==null ) {
93
        if( this.getDataType().isNumeric() ) {
94
          if( this.getSize()==0 ) {
95
            this.coerceContext = DataTypeUtils.coerceContextDefaultDecimal();
96
          } else {
97
            this.coerceContext = DataTypeUtils.coerceContextDecimal(
98
                    null, 
99
                    this.getSize(), 
100
                    this.getPrecision(),
101
                    BigDecimal.ROUND_HALF_UP
102
            );
103
          }
104
        } else {
105
            this.coerceContext = DataTypeUtils.coerceContextDefaultLocale();
106
        }
107
      }
108
      return this.coerceContext;
109
    }
110

    
111
    @Override
112
    public Class getObjectClass() {
113
        return this.getDataType().getDefaultClass();
114
    }
115

    
116
    @Override
117
    public int getMinimumOccurrences() {
118
        return 0;
119
    }
120

    
121
    @Override
122
    public int getMaximumOccurrences() {
123
        return 0;
124
    }
125

    
126
    @Override
127
    public boolean isPrimaryKey() {
128
        return false;
129
    }
130

    
131
    @Override
132
    public boolean allowNull() {
133
        return true;
134
    }
135

    
136
    @Override
137
    public Evaluator getEvaluator() {
138
        return null;
139
    }
140

    
141
    @Override
142
    public IProjection getSRS() {
143
        return null;
144
    }
145

    
146
    @Override
147
    public int getGeometryType() {
148
        return Geometry.TYPES.GEOMETRY;
149
    }
150

    
151
    @Override
152
    public int getGeometrySubType() {
153
        return Geometry.SUBTYPES.UNKNOWN;
154
    }
155

    
156
    @Override
157
    public GeometryType getGeomType() {
158
        return null;
159
    }
160

    
161
    @Override
162
    public DateFormat getDateFormat() {
163
        return null;
164
    }
165

    
166
    @Override
167
    public int getIndex() {
168
        return -1;
169
    }
170

    
171
    @Override
172
    public Object getAdditionalInfo(String infoName) {
173
        return null;
174
    }
175

    
176
    @Override
177
    public boolean isAutomatic() {
178
        return false;
179
    }
180

    
181
    @Override
182
    public boolean isTime() {
183
        return false;
184
    }
185

    
186
    @Override
187
    public boolean isIndexed() {
188
        return false;
189
    }
190

    
191
    @Override
192
    public boolean allowIndexDuplicateds() {
193
        return false;
194
    }
195

    
196
    @Override
197
    public boolean isIndexAscending() {
198
        return false;
199
    }
200

    
201
    @Override
202
    public FeatureAttributeGetter getFeatureAttributeGetter() {
203
        return null;
204
    }
205

    
206
    @Override
207
    public void setFeatureAttributeGetter(FeatureAttributeGetter featureAttributeGetter) {
208
    }
209

    
210
    @Override
211
    public FeatureAttributeEmulator getFeatureAttributeEmulator() {
212
        return null;
213
    }
214

    
215
    @Override
216
    public String getName() {
217
        return this.field.getName();
218
    }
219

    
220
    @Override
221
    public int getType() {
222
        return this.field.getDataType().getType();
223
    }
224

    
225
    @Override
226
    public DataType getDataType() {
227
        return this.field.getDataType();
228
    }
229

    
230
    @Override
231
    public Object getDefaultValueCoerced() {
232
        try {
233
            return this.getDataType().coerce(this.getDefaultValue());
234
        } catch (CoercionException ex) {
235
            return null;
236
        }
237
    }
238
    
239
    @Override
240
    public String getSubtype() {
241
        return null;
242
    }
243

    
244
    @Override
245
    public String getDescription() {
246
        return this.field.getDescription();
247
    }
248

    
249
    @Override
250
    public Object getDefaultValue() {
251
        return this.field.getDefaultValue();
252
    }
253

    
254
    @Override
255
    public String getGroup() {
256
        return this.field.getGroup();
257
    }
258

    
259
    @Override
260
    public int getOder() {
261
        return this.field.getOder();
262
    }
263

    
264
    @Override
265
    public boolean isMandatory() {
266
        return this.field.isMandatory();
267
    }
268

    
269
    @Override
270
    public boolean isPersistent() {
271
        return this.field.isPersistent();
272
    }
273

    
274
    @Override
275
    public boolean isHidden() {
276
        return this.field.isHidden();
277
    }
278

    
279
    @Override
280
    public boolean isReadOnly() {
281
        return this.field.isReadOnly();
282
    }
283

    
284
    @Override
285
    public boolean isContainer() {
286
        return this.field.isContainer();
287
    }
288

    
289
    @Override
290
    public DynObjectValueItem[] getAvailableValues() {
291
        return this.field.getAvailableValues();
292
    }
293

    
294
    @Override
295
    public boolean hasConstantAvailableValues() {
296
        DynObjectValueItem[] values = this.field.getAvailableValues();
297
        return ! ArrayUtils.isEmpty(values);
298
    }
299

    
300
    @Override
301
    public Object getMinValue() {
302
        return this.field.getMinValue();
303
    }
304

    
305
    @Override
306
    public Object getMaxValue() {
307
        return this.field.getMaxValue();
308
    }
309

    
310
    @Override
311
    public Class getClassOfValue() {
312
        return this.field.getClassOfValue();
313
    }
314

    
315
    @Override
316
    public Class getClassOfItems() {
317
        return this.field.getClassOfItems();
318
    }
319

    
320
    @Override
321
    public DynField setDescription(String description) {
322
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
323
    }
324

    
325
    @Override
326
    public DynField setType(int type) {
327
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
328
    }
329

    
330
    @Override
331
    public DynField setType(DataType type) {
332
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
333
    }
334

    
335
    @Override
336
    public DynField setSubtype(String subtype) {
337
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
338
    }
339

    
340
    @Override
341
    public DynField setDefaultFieldValue(Object defaultValue) {
342
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
343
    }
344

    
345
    @Override
346
    public DynField setGroup(String groupName) {
347
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
348
    }
349

    
350
    @Override
351
    public DynField setOrder(int order) {
352
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
353
    }
354

    
355
    @Override
356
    public DynField setMandatory(boolean mandatory) {
357
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
358
    }
359

    
360
    @Override
361
    public DynField setHidden(boolean hidden) {
362
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
363
    }
364

    
365
    @Override
366
    public DynField setPersistent(boolean persistent) {
367
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
368
    }
369

    
370
    @Override
371
    public DynField setAvailableValues(DynObjectValueItem[] values) {
372
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
373
    }
374

    
375
    @Override
376
    public DynField setAvailableValues(List values) {
377
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
378
    }
379

    
380
    @Override
381
    public DynField setMinValue(Object minValue) {
382
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
383
    }
384

    
385
    @Override
386
    public DynField setMaxValue(Object maxValue) {
387
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
388
    }
389

    
390
    @Override
391
    public DynField setClassOfValue(Class theClass) throws DynFieldIsNotAContainerException {
392
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
393
    }
394

    
395
    @Override
396
    public DynField setClassOfItems(Class theClass) throws DynFieldIsNotAContainerException {
397
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
398
    }
399

    
400
    @Override
401
    public DynField setReadOnly(boolean isReadOnly) {
402
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
403
    }
404

    
405
    @Override
406
    public DynField getElementsType() {
407
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
408
    }
409

    
410
    @Override
411
    public DynField setElementsType(int type) throws DynFieldIsNotAContainerException {
412
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
413
    }
414

    
415
    @Override
416
    public DynField setElementsType(DynStruct type) throws DynFieldIsNotAContainerException {
417
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
418
    }
419

    
420
    @Override
421
    public void validate(Object value) throws DynFieldValidateException {
422
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
423
    }
424

    
425
    @Override
426
    public Object coerce(Object value) throws CoercionException {
427
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
428
    }
429

    
430
    @Override
431
    public int getTheTypeOfAvailableValues() {
432
        return this.field.getTheTypeOfAvailableValues();
433
    }
434

    
435
    @Override
436
    public DynField setDefaultDynValue(Object defaultValue) {
437
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
438
    }
439

    
440
    @Override
441
    public DynField setTheTypeOfAvailableValues(int type) {
442
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
443
    }
444

    
445
    @Override
446
    public Object clone() throws CloneNotSupportedException {
447
        DynFieldFacadeOfAFeatureAttributeDescriptor other = (DynFieldFacadeOfAFeatureAttributeDescriptor) super.clone(); 
448
        other.field = (DynField) other.field.clone();
449
        return other;
450
    }
451

    
452
    @Override
453
    public boolean isComputed() {
454
        if( field instanceof DynField_v2 ) {
455
            return ((DynField_v2)field).isCalculated();
456
        }
457
        return false;
458
    }
459

    
460
    @Override
461
    public FeatureStore getStore() {
462
        return null;
463
    }
464

    
465
    @Override
466
    public FeatureType getFeatureType() {
467
        return null;
468
    }
469

    
470
    @Override
471
    public Interval getInterval() {
472
        return null;
473
    }
474

    
475
    @Override
476
    public String getDataProfileName() {
477
        return null;
478
    }
479

    
480
    @Override
481
    public String[] getRequiredFieldNames() {
482
        return null;
483
    }
484

    
485
    @Override
486
    public DynField setClassOfValue(DynStruct dynStrct) {
487
        ((DynField_v2)this.field).setClassOfValue(dynStrct);
488
        return this;
489
    }
490

    
491
    @Override
492
    public DynField setClassOfValue(String theClassNameOfValue) {
493
        ((DynField_v2)this.field).setClassOfValue(theClassNameOfValue);
494
        return this;
495
    }
496

    
497
    @Override
498
    public String getClassNameOfValue() {
499
        return ((DynField_v2)this.field).getClassNameOfValue();
500
    }
501

    
502
    @Override
503
    public DynStruct getDynClassOfValue() {
504
        return ((DynField_v2)this.field).getDynClassOfValue();
505
    }
506

    
507
    @Override
508
    public DynField setTypeOfItems(int type) {
509
        ((DynField_v2)this.field).setTypeOfItems(type);
510
        return this;
511
    }
512

    
513
    @Override
514
    public int getTypeOfItems() {
515
        return ((DynField_v2)this.field).getTypeOfItems();
516
    }
517

    
518
    @Override
519
    public DynField setClassOfItems(DynStruct dynStrct) {
520
        ((DynField_v2)this.field).setClassOfItems(dynStrct);
521
        return this;
522
    }
523

    
524
    @Override
525
    public DynField setClassOfItems(String theClassNameOfValue) {
526
        ((DynField_v2)this.field).setClassOfItems(theClassNameOfValue);
527
        return this;
528
    }
529

    
530
    @Override
531
    public String getClassNameOfItems() {
532
        return ((DynField_v2)this.field).getClassNameOfItems();
533
    }
534

    
535
    @Override
536
    public DynStruct getDynClassOfItems() {
537
        return ((DynField_v2)this.field).getDynClassOfItems();
538
    }
539

    
540
    @Override
541
    public Tags getTags() {
542
        return ((DynField_v2)this.field).getTags();
543
    }
544

    
545
    @Override
546
    public DynField setRelationType(int relationType) {
547
        ((DynField_v2)this.field).setRelationType(relationType);
548
        return this;
549
    }
550

    
551
    @Override
552
    public int getRelationType() {
553
        return ((DynField_v2)this.field).getRelationType();
554
    }
555

    
556
    @Override
557
    public DynField setAvailableValues(DynMethod computeAvailableValues) {
558
        ((DynField_v2)this.field).setAvailableValues(computeAvailableValues);
559
        return this;
560
    }
561

    
562
    @Override
563
    public DynMethod getAvailableValuesMethod() {
564
        return ((DynField_v2)this.field).getAvailableValuesMethod();
565
    }
566

    
567
    @Override
568
    public DynObjectValueItem[] getAvailableValues(DynObject self) {
569
        return ((DynField_v2)this.field).getAvailableValues(self);
570
    }
571

    
572
    @Override
573
    public boolean isAvailableValuesCalculated() {
574
        return ((DynField_v2)this.field).isAvailableValuesCalculated();
575
    }
576

    
577
    @Override
578
    public DynField setCalculateMethod(DynMethod computeValue) {
579
        ((DynField_v2)this.field).setCalculateMethod(computeValue);
580
        return this;
581
    }
582

    
583
    @Override
584
    public DynMethod getCalculateMethod() {
585
        return ((DynField_v2)this.field).getCalculateMethod();
586
    }
587

    
588
    @Override
589
    public boolean isCalculated() {
590
        return ((DynField_v2)this.field).isCalculated();
591
    }
592

    
593
    @Override
594
    public Object getCalculatedValue(DynObject self) {
595
        return ((DynField_v2)this.field).getCalculatedValue(self);
596
    }
597

    
598
    @Override
599
    public void copyFrom(DynField other) {
600
        ((DynField_v2)this.field).copyFrom(other);
601
    }
602

    
603
    @Override
604
    public DynField setValidateElements(boolean validate) {
605
        ((DynField_v2)this.field).setValidateElements(validate);
606
        return this;
607
    }
608

    
609
    @Override
610
    public boolean getValidateElements() {
611
        return ((DynField_v2)this.field).getValidateElements();
612
    }
613

    
614
    @Override
615
    public String getLabel() {
616
        return ((DynField_v2)this.field).getLabel();
617
    }
618

    
619
    @Override
620
    public DynField setLabel(String label) {
621
        ((DynField_v2)this.field).setLabel(label);
622
        return this;
623
    }
624

    
625
    @Override
626
    public void recentUsed() {
627
    }
628

    
629
    @Override
630
    public boolean isForeingKey() {
631
        return false;
632
    }
633

    
634
    @Override
635
    public ForeingKey getForeingKey() {
636
        return null;
637
    }
638

    
639
    @Override
640
    public String getShortLabel() {
641
        return ((DynField_v2)field).getShortLabel();
642
    }
643

    
644
    @Override
645
    public DynField setShortLabel(String shortLabel) {
646
        ((DynField_v2)field).setShortLabel(shortLabel);
647
        return this;
648
    }
649

    
650
    @Override
651
    public String getLocalizedShortLabel() {
652
        return ((DynField_v2)field).getLocalizedShortLabel();
653
    }
654

    
655
    @Override
656
    public String getLocalizedLabel() {
657
        return ((DynField_v2)field).getLocalizedLabel();
658
    }
659

    
660
    @Override
661
    public String getLabelOfValue(Object value) {
662
        return Objects.toString(value, "");
663
    }
664

    
665
    @Override
666
    public DataProfile getDataProfile() {
667
        return null;
668
    }
669

    
670
    @Override
671
    public boolean hasOnlyMetadataChanges(FeatureAttributeDescriptor other) {
672
        return false;
673
    }
674

    
675
    @Override
676
    public boolean hasLabel() {
677
        return StringUtils.isNotBlank(((DynField_v2) this.field).getLabel());
678
    }
679

    
680
    @Override
681
    public boolean hasShortLabel() {
682
        return StringUtils.isNotBlank(((DynField_v2) this.field).getShortLabel());
683
    }
684

    
685
    @Override
686
    public boolean hasDescription() {
687
        return StringUtils.isNotBlank(this.field.getDescription());
688
    }
689

    
690
    @Override
691
    public FeatureAttributeDescriptor getValue() {
692
        return this;
693
    }
694

    
695
  @Override
696
  public int getRoundMode() {
697
    return BigDecimal.ROUND_HALF_UP;
698
  }
699

    
700
  @Override
701
  public Locale getLocale() {
702
    return Locale.ENGLISH;
703
  }
704

    
705
  @Override
706
  public Object get(String name) {
707
    return null;
708
  }
709

    
710
    @Override
711
    public void saveToState(PersistentState state) throws PersistenceException {
712
        
713
    }
714

    
715
    @Override
716
    public void loadFromState(PersistentState state) throws PersistenceException {
717
        
718
    }
719

    
720
  @Override
721
  public int getDisplaySize() {
722
    return 0;
723
  }
724

    
725
}