Mercurial > dive4elements > river
comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java @ 4779:18908a3cbb3a
ImportRiver: Use callback (refactoring), resolving TODOs.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Tue, 08 Jan 2013 11:59:01 +0100 |
parents | a70de5298248 |
children | e77b461fa360 |
comparison
equal
deleted
inserted
replaced
4778:a70de5298248 | 4779:18908a3cbb3a |
---|---|
959 File riverDir = wstFile | 959 File riverDir = wstFile |
960 .getParentFile() // Basisdaten | 960 .getParentFile() // Basisdaten |
961 .getParentFile() // Hydrologie | 961 .getParentFile() // Hydrologie |
962 .getParentFile(); // <river> | 962 .getParentFile(); // <river> |
963 | 963 |
964 // TODO this can probably be further merged with implementation for PRF parser. | 964 ImportRiverCrossSectionParserCallback w80Callback = |
965 parser.parseW80s(riverDir, new CrossSectionParser.Callback() { | 965 new ImportRiverCrossSectionParserCallback("w80"); |
966 | 966 parser.parseW80s(riverDir, w80Callback); |
967 Set<HashedFile> w80s = new HashSet<HashedFile>(); | |
968 | |
969 @Override | |
970 public boolean accept(File file) { | |
971 HashedFile hf = new HashedFile(file); | |
972 boolean success = w80s.add(hf); | |
973 if (!success) { | |
974 log.warn("W80 file '" + file + "' seems to be a duplicate."); | |
975 } | |
976 return success; | |
977 } | |
978 | |
979 @Override | |
980 public void parsed(CrossSectionParser parser) { | |
981 log.debug("callback from W80 parser"); | |
982 | |
983 addCrossSections(parser); | |
984 } | |
985 }); | |
986 } | 967 } |
987 | 968 |
988 public void parseDA50s() { | 969 public void parseDA50s() { |
989 if (Config.INSTANCE.skipDA50s()) { | 970 if (Config.INSTANCE.skipDA50s()) { |
990 log.info("skip parsing DA50s"); | 971 log.info("skip parsing DA50s"); |
1006 File riverDir = wstFile | 987 File riverDir = wstFile |
1007 .getParentFile() // Basisdaten | 988 .getParentFile() // Basisdaten |
1008 .getParentFile() // Hydrologie | 989 .getParentFile() // Hydrologie |
1009 .getParentFile(); // <river> | 990 .getParentFile(); // <river> |
1010 | 991 |
1011 // TODO this can probably be further merged with implementation for PRF parser. | 992 ImportRiverCrossSectionParserCallback da66Callback = |
1012 parser.parseDA66s(riverDir, new CrossSectionParser.Callback() { | 993 new ImportRiverCrossSectionParserCallback("da66"); |
1013 | 994 parser.parseDA66s(riverDir, da66Callback); |
1014 Set<HashedFile> da66s = new HashSet<HashedFile>(); | |
1015 | |
1016 @Override | |
1017 public boolean accept(File file) { | |
1018 HashedFile hf = new HashedFile(file); | |
1019 boolean success = da66s.add(hf); | |
1020 if (!success) { | |
1021 log.warn("DA66 file '" + file + "' seems to be a duplicate."); | |
1022 } | |
1023 return success; | |
1024 } | |
1025 | |
1026 @Override | |
1027 public void parsed(CrossSectionParser parser) { | |
1028 log.debug("callback from DA66 parser"); | |
1029 | |
1030 addCrossSections(parser); | |
1031 } | |
1032 }); | |
1033 } | 995 } |
1034 | 996 |
1035 /** Create a PRFParser and let it parse the prf files found. */ | 997 /** Create a PRFParser and let it parse the prf files found. */ |
1036 public void parsePRFs() { | 998 public void parsePRFs() { |
1037 if (Config.INSTANCE.skipPRFs()) { | 999 if (Config.INSTANCE.skipPRFs()) { |
1044 File riverDir = wstFile | 1006 File riverDir = wstFile |
1045 .getParentFile() // Basisdaten | 1007 .getParentFile() // Basisdaten |
1046 .getParentFile() // Hydrologie | 1008 .getParentFile() // Hydrologie |
1047 .getParentFile(); // <river> | 1009 .getParentFile(); // <river> |
1048 | 1010 |
1049 parser.parsePRFs(riverDir, new PRFParser.Callback() { | 1011 ImportRiverCrossSectionParserCallback prfCallback = |
1050 | 1012 new ImportRiverCrossSectionParserCallback("prf"); |
1051 Set<HashedFile> prfs = new HashSet<HashedFile>(); | 1013 parser.parsePRFs(riverDir, prfCallback); |
1052 | |
1053 // TODO merge Callback implementation with DA66 one. | |
1054 @Override | |
1055 public boolean accept(File file) { | |
1056 HashedFile hf = new HashedFile(file); | |
1057 boolean success = prfs.add(hf); | |
1058 if (!success) { | |
1059 log.warn("PRF file '" + file + "' seems to be a duplicate."); | |
1060 } | |
1061 return success; | |
1062 } | |
1063 | |
1064 @Override | |
1065 public void parsed(CrossSectionParser parser) { | |
1066 log.debug("callback from PRF parser"); | |
1067 | |
1068 addCrossSections(parser); | |
1069 } | |
1070 }); | |
1071 } | 1014 } |
1072 | 1015 |
1073 public static Date yearToDate(int year) { | 1016 public static Date yearToDate(int year) { |
1074 Calendar cal = Calendar.getInstance(); | 1017 Calendar cal = Calendar.getInstance(); |
1075 cal.set(year, 5, 15, 12, 0, 0); | 1018 cal.set(year, 5, 15, 12, 0, 0); |