Ignore:
Timestamp:
2015-03-27T09:22:05+01:00 (10 years ago)
Author:
malcolmh
Message:

[SeaChart] update

Location:
applications/editors/josm/plugins/seachart/src/s57
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/seachart/src/s57/S57dat.java

    r30894 r31063  
    1111
    1212import java.io.UnsupportedEncodingException;
    13 import java.util.ArrayList;
    14 import java.util.Arrays;
    15 import java.util.EnumMap;
     13import java.util.*;
    1614
    1715public class S57dat {
  • applications/editors/josm/plugins/seachart/src/s57/S57dec.java

    r30894 r31063  
    2222                byte[] leader = new byte[24];
    2323                boolean ddr = false;
    24                 int length;
    25                 int fields;
     24                int length = 0;
     25                int fields = 0;;
    2626                int mapfl, mapfp, mapts, entry;
    2727                String tag;
     
    3939               
    4040                while (in.read(leader) == 24) {
     41                        try {
    4142                        length = Integer.parseInt(new String(leader, 0, 5)) - 24;
    4243                        ddr = (leader[6] == 'L');
    4344                        fields = Integer.parseInt(new String(leader, 12, 5)) - 24;
     45                        } catch (Exception e) {
     46                                System.err.println("Invalid file format - Encrypted/compressed ENC file?");
     47                                System.exit(-1);
     48                        }
    4449                        mapfl = leader[20] - '0';
    4550                        mapfp = leader[21] - '0';
  • applications/editors/josm/plugins/seachart/src/s57/S57map.java

    r31044 r31063  
    524524                                        }
    525525                                        if (osm.att != Att.UNKATT) {
    526                                                 atts.put(osm.att, new AttVal<>(osm.att, osm.conv, osm.val));
     526                                                atts.put(osm.att, new AttVal<>(osm.conv, osm.val));
    527527                                        }
    528528                                } else {
     
    536536                                        objs.put(0, atts);
    537537                                        if (osm.att != Att.UNKATT) {
    538                                                 atts.put(osm.att, new AttVal<>(osm.att, osm.conv, osm.val));
     538                                                atts.put(osm.att, new AttVal<>(osm.conv, osm.val));
    539539                                        }
    540540                                        index.put(++xref, base);
  • applications/editors/josm/plugins/seachart/src/s57/S57val.java

    r31027 r31063  
    3535       
    3636        public static class AttVal<V> {
    37                 public Att att;
     37//              public Att att;
    3838                public Conv conv;
    3939                public V val;
    40                 AttVal(Att a, Conv c, V v) {
    41                         att = a; conv = c; val = v;
     40//              AttVal(Att a, Conv c, V v) {
     41//                      att = a; conv = c; val = v;
     42//              }
     43                AttVal(Conv c, V v) {
     44                        conv = c; val = v;
    4245                }
    4346        }
     
    11291132                case A:
    11301133                case S:
    1131                         return new AttVal<String>(att, conv, val);
     1134                        return new AttVal<String>(conv, val);
    11321135                case E:
    11331136                        ArrayList<Enum<?>> list = new ArrayList<Enum<?>>();
    11341137                        list.add(s57Enum(val, att));
    1135                         return new AttVal<ArrayList<?>>(att, Conv.E, list);
     1138                        return new AttVal<ArrayList<?>>(Conv.E, list);
    11361139                case L:
    11371140                        list = new ArrayList<Enum<?>>();
     
    11391142                                list.add(s57Enum(item, att));
    11401143                        }
    1141                         return new AttVal<ArrayList<?>>(att, Conv.L, list);
     1144                        return new AttVal<ArrayList<?>>(Conv.L, list);
    11421145                case I:
    11431146                        try {
    1144                                 return new AttVal<Long>(att, Conv.I, Long.parseLong(val));
     1147                                return new AttVal<Long>(Conv.I, Long.parseLong(val));
    11451148                        } catch (Exception e) {
    11461149                                break;
     
    11481151                case F:
    11491152                        try {
    1150                                 return new AttVal<Double>(att, Conv.F, Double.parseDouble(val));
     1153                                return new AttVal<Double>(Conv.F, Double.parseDouble(val));
    11511154                        } catch (Exception e) {
    11521155                                break;
     
    11651168        }
    11661169
    1167        
    1168         public static String stringValue(AttVal<?> attval) {    // Convert SCM value object to OSM attribute value string
     1170        public static String stringValue(AttVal<?> attval, Att att) {   // Convert SCM value object to OSM attribute value string
    11691171                if (attval != null) {
    11701172                        switch (attval.conv) {
     
    11731175                                return (String) attval.val;
    11741176                        case E:
    1175                                 EnumMap<?, ?> map = keys.get(attval.att).map;
     1177                                EnumMap<?, ?> map = keys.get(att).map;
    11761178                                return ((S57enum) map.get(((ArrayList<?>) attval.val).get(0))).val;
    11771179                        case L:
    11781180                                String str = "";
    1179                                 map = keys.get(attval.att).map;
     1181                                map = keys.get(att).map;
    11801182                                for (Object item : (ArrayList<?>) attval.val) {
    11811183                                        if (!str.isEmpty())
     
    12111213                case A:
    12121214                case S:
    1213                         return new AttVal<String>(att, Conv.S, val);
     1215                        return new AttVal<String>(Conv.S, val);
    12141216                case E:
    12151217                        ArrayList<Enum<?>> list = new ArrayList<Enum<?>>();
    12161218                        list.add(osmEnum(val, att));
    1217                         return new AttVal<ArrayList<?>>(att, Conv.E, list);
     1219                        return new AttVal<ArrayList<?>>(Conv.E, list);
    12181220                case L:
    12191221                        list = new ArrayList<Enum<?>>();
     
    12211223                                list.add(osmEnum(item, att));
    12221224                        }
    1223                         return new AttVal<ArrayList<?>>(att, Conv.L, list);
     1225                        return new AttVal<ArrayList<?>>(Conv.L, list);
    12241226                case I:
    12251227                        try {
    1226                                 return new AttVal<Long>(att, Conv.I, Long.parseLong(val));
     1228                                return new AttVal<Long>(Conv.I, Long.parseLong(val));
    12271229                        } catch (Exception e) {
    12281230                                break;
     
    12301232                case F:
    12311233                        try {
    1232                                 return new AttVal<Double>(att, Conv.F, Double.parseDouble(val));
     1234                                return new AttVal<Double>(Conv.F, Double.parseDouble(val));
    12331235                        } catch (Exception e) {
    12341236                                break;
    12351237                        }
    12361238                }
    1237                 return new AttVal<Object>(att, keys.get(att).conv, null);
     1239                return new AttVal<Object>(keys.get(att).conv, null);
    12381240        }
    12391241       
Note: See TracChangeset for help on using the changeset viewer.