Revision 44740 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultEditableFeatureAttributeDescriptor.java
DefaultEditableFeatureAttributeDescriptor.java | ||
---|---|---|
53 | 53 |
import org.gvsig.timesupport.Interval; |
54 | 54 |
import org.gvsig.tools.ToolsLocator; |
55 | 55 |
import org.gvsig.tools.dataTypes.DataType; |
56 |
import org.gvsig.tools.dynobject.DynField; |
|
56 | 57 |
import org.gvsig.tools.evaluator.Evaluator; |
57 | 58 |
|
58 | 59 |
public class DefaultEditableFeatureAttributeDescriptor extends |
... | ... | |
578 | 579 |
case "srs": |
579 | 580 |
this.setSRS(DataTypeUtils.toProjection(value, null)); |
580 | 581 |
break; |
582 |
case "relation": |
|
583 |
this.setRelationType(toRelation(value)); |
|
584 |
break; |
|
581 | 585 |
default: |
582 | 586 |
throw new IllegalArgumentException("Name attribute '"+name+"' not valid."); |
583 | 587 |
} |
584 | 588 |
return this; |
585 | 589 |
} |
586 | 590 |
|
587 |
|
|
591 |
private int toRelation(Object value) { |
|
592 |
if (value == null) { |
|
593 |
return DynField.RELATION_TYPE_NONE; |
|
594 |
} |
|
595 |
Integer x = DataTypeUtils.toInteger(value, null); |
|
596 |
if (x != null) { |
|
597 |
return x; |
|
598 |
} |
|
599 |
try { |
|
600 |
String s = value.toString().toUpperCase(); |
|
601 |
switch (s) { |
|
602 |
case "NONE": |
|
603 |
default: |
|
604 |
return DynField.RELATION_TYPE_NONE; |
|
605 |
case "IDENTITY": |
|
606 |
return DynField.RELATION_TYPE_IDENTITY; |
|
607 |
case "COLLABORATION": |
|
608 |
return DynField.RELATION_TYPE_COLLABORATION; |
|
609 |
case "COMPOSITION": |
|
610 |
return DynField.RELATION_TYPE_COMPOSITION; |
|
611 |
case "AGGREGATE": |
|
612 |
return DynField.RELATION_TYPE_AGGREGATE; |
|
613 |
} |
|
614 |
} catch(Exception ex) { |
|
615 |
return DynField.RELATION_TYPE_NONE; |
|
616 |
} |
|
617 |
} |
|
588 | 618 |
} |
Also available in: Unified diff