/[schmitzm]/trunk/src/skrueger/geotools/AttributeMetadataMap.java
ViewVC logotype

Annotation of /trunk/src/skrueger/geotools/AttributeMetadataMap.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 533 - (hide annotations)
Thu Nov 19 17:27:01 2009 UTC (15 years, 3 months ago) by alfonx
Original Path: branches/1.0-gt2-2.6/src/skrueger/geotools/AttributeMetadataMap.java
File MIME type: text/plain
File size: 2880 byte(s)
* XMapPane now prints erros nicely
1 alfonx 420 package skrueger.geotools;
2    
3 alfonx 464 import java.util.ArrayList;
4 alfonx 533 import java.util.Collections;
5 alfonx 464 import java.util.List;
6 alfonx 420 import java.util.TreeMap;
7    
8 alfonx 518 import org.apache.log4j.Logger;
9 alfonx 464 import org.geotools.feature.NameImpl;
10     import org.opengis.feature.type.Name;
11 alfonx 420
12 alfonx 533 import cern.colt.Arrays;
13    
14 alfonx 464 import skrueger.AttributeMetadata;
15 alfonx 518 import skrueger.i8n.I8NUtil;
16 alfonx 533 import skrueger.i8n.Translation;
17 alfonx 464
18 alfonx 420 /**
19 alfonx 464 * An extension of TreeMap, that is copyable in the sense of the {@link Copyable} interface
20 alfonx 420 */
21 alfonx 464 public class AttributeMetadataMap extends TreeMap<Name, AttributeMetadata>
22 alfonx 420 implements Copyable<AttributeMetadataMap> {
23 alfonx 518 static private final Logger LOGGER = Logger.getLogger(AttributeMetadataMap.class);
24 alfonx 533 private List<String> langs;
25 alfonx 518
26 alfonx 533 public AttributeMetadataMap(List<String> defLanguages) {
27     langs = defLanguages;
28     }
29 alfonx 518
30 alfonx 533 @Deprecated
31     public AttributeMetadataMap() {
32     langs = new ArrayList<String>();
33     langs.add(Translation.getActiveLang());
34     }
35    
36    
37     public AttributeMetadataMap(String[] strings) {
38     langs = new ArrayList<String>(java.util.Arrays.asList(strings));
39     }
40    
41 alfonx 464 /**
42     * @Deprecated use get(Name name) or get(String localName)
43     */
44     @Deprecated
45     public AttributeMetadata get(Object key) {
46 alfonx 518 LOGGER.warn("PLEASE DONT USE get(Object) any MORE!");
47     LOGGER.warn("PLEASE DONT USE get(Object) any MORE!");
48     LOGGER.warn("PLEASE DONT USE get(Object) any MORE!");
49 alfonx 464 return super.get(key);
50 alfonx 420 }
51 alfonx 518
52 alfonx 464 public AttributeMetadata get(Name name) {
53     final AttributeMetadata attributeMetadata = super.get(name);
54 alfonx 474 if (attributeMetadata == null && name != null && !name.getLocalPart().trim().isEmpty()) {
55 alfonx 533 put(name,new AttributeMetadata(name, langs));
56 alfonx 464 return super.get(name);
57     }
58     return attributeMetadata;
59     }
60    
61     public AttributeMetadata get(String localName) {
62     return this.get(new NameImpl(localName));
63     }
64    
65 alfonx 420 @Override
66     public AttributeMetadataMap copyTo(AttributeMetadataMap amdMap) {
67    
68     amdMap.clear();
69    
70 alfonx 464 for (Name key : keySet()) {
71     AttributeMetadata attributeMetaData = get(key);
72 alfonx 420 amdMap.put(key, attributeMetaData.copy());
73     }
74     return amdMap;
75     }
76    
77     @Override
78     public AttributeMetadataMap copy() {
79 alfonx 533 AttributeMetadataMap copy = new AttributeMetadataMap(langs);
80 alfonx 420 return copyTo(copy);
81     }
82 alfonx 464
83     public List<AttributeMetadata> sortedValues() {
84     ArrayList<AttributeMetadata> list = new ArrayList<AttributeMetadata>();
85     list.addAll(values());
86     return list;
87     }
88 alfonx 518
89     /**
90     * @return a number between 0 (bad) and 1 (good) that is calculated from the amount of translation available in the visible attributes
91     */
92     public double getQuality(List<String> languages) {
93     int allVisible = 0;
94     double colQmSum = 0.;
95     for (final AttributeMetadata oneCol : values()) {
96    
97     if (oneCol.isVisible()) {
98     allVisible++;
99     colQmSum += oneCol.getQuality(languages);
100     }
101     }
102    
103     if (allVisible > 0)
104     return colQmSum / allVisible;
105     else
106     return 1.;
107    
108     }
109 alfonx 533
110     public List<String> getLanguages() {
111     return langs;
112     }
113 alfonx 420 }

Properties

Name Value
svn:eol-style native
svn:keywords Id URL
svn:mime-type text/plain

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26