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 @ 45014

History | View | Annotate | Download (19.3 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.expressionevaluator.Expression;
14
import org.gvsig.fmap.dal.feature.DataProfile;
15
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
16
import org.gvsig.fmap.dal.feature.FeatureAttributeEmulator;
17
import org.gvsig.fmap.dal.feature.FeatureAttributeGetter;
18
import org.gvsig.fmap.dal.feature.FeatureStore;
19
import org.gvsig.fmap.dal.feature.FeatureType;
20
import org.gvsig.fmap.dal.feature.ForeingKey;
21
import org.gvsig.fmap.geom.Geometry;
22
import org.gvsig.fmap.geom.type.GeometryType;
23
import org.gvsig.timesupport.Interval;
24
import org.gvsig.tools.dataTypes.Coercion;
25
import org.gvsig.tools.dataTypes.CoercionException;
26
import org.gvsig.tools.dataTypes.DataType;
27
import org.gvsig.tools.dataTypes.DataTypeUtils;
28
import org.gvsig.tools.dynobject.DynField;
29
import org.gvsig.tools.dynobject.DynField_v2;
30
import org.gvsig.tools.dynobject.DynMethod;
31
import org.gvsig.tools.dynobject.DynObject;
32
import org.gvsig.tools.dynobject.DynObjectValueItem;
33
import org.gvsig.tools.dynobject.DynStruct;
34
import org.gvsig.tools.dynobject.Tags;
35
import org.gvsig.tools.dynobject.exception.DynFieldIsNotAContainerException;
36
import org.gvsig.tools.dynobject.exception.DynFieldValidateException;
37
import org.gvsig.tools.evaluator.Evaluator;
38
import org.gvsig.tools.dataTypes.CoercionContext;
39
import org.gvsig.tools.persistence.PersistentState;
40
import org.gvsig.tools.persistence.exception.PersistenceException;
41

    
42

    
43
public class DynFieldFacadeOfAFeatureAttributeDescriptor implements FeatureAttributeDescriptor {
44

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
726
    @Override
727
    public Expression getAvailableValuesExpression() {
728
        return null;
729
    }
730

    
731
    @Override
732
    public FeatureAttributeDescriptor setAvailableValuesExpression(String expression) {
733
        return this;
734
    }
735

    
736
    @Override
737
    public FeatureAttributeDescriptor setAvailableValuesExpression(Expression expression) {
738
        return this;
739
    }
740

    
741
}