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);

http://dive4elements.wald.intevation.org