Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java @ 5022:a9243df307b1 mapgenfix
Move all classes of mapfile generation to de.intevation.flys.mapserver package.
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Tue, 19 Feb 2013 13:41:20 +0100 |
parents | 63617e142dfe |
children | 1da61095040c |
comparison
equal
deleted
inserted
replaced
5009:7c8ce0a95a64 | 5022:a9243df307b1 |
---|---|
9 import de.intevation.artifacts.Artifact; | 9 import de.intevation.artifacts.Artifact; |
10 import de.intevation.artifacts.CallContext; | 10 import de.intevation.artifacts.CallContext; |
11 import de.intevation.artifacts.CallMeta; | 11 import de.intevation.artifacts.CallMeta; |
12 import de.intevation.artifacts.GlobalContext; | 12 import de.intevation.artifacts.GlobalContext; |
13 import de.intevation.artifacts.common.utils.FileTools; | 13 import de.intevation.artifacts.common.utils.FileTools; |
14 import de.intevation.flys.artifacts.FLYSArtifact; | |
14 import de.intevation.flys.artifacts.access.RangeAccess; | 15 import de.intevation.flys.artifacts.access.RangeAccess; |
15 import de.intevation.flys.artifacts.FLYSArtifact; | |
16 import de.intevation.flys.artifacts.context.FLYSContext; | 16 import de.intevation.flys.artifacts.context.FLYSContext; |
17 import de.intevation.flys.artifacts.model.CalculationMessage; | 17 import de.intevation.flys.artifacts.model.CalculationMessage; |
18 import de.intevation.flys.artifacts.model.CalculationResult; | 18 import de.intevation.flys.artifacts.model.CalculationResult; |
19 import de.intevation.flys.artifacts.model.FacetTypes; | 19 import de.intevation.flys.artifacts.model.FacetTypes; |
20 import de.intevation.flys.artifacts.model.WQKms; | 20 import de.intevation.flys.artifacts.model.WQKms; |
22 import de.intevation.flys.artifacts.model.map.WSPLGENCalculation; | 22 import de.intevation.flys.artifacts.model.map.WSPLGENCalculation; |
23 import de.intevation.flys.artifacts.model.map.WSPLGENJob; | 23 import de.intevation.flys.artifacts.model.map.WSPLGENJob; |
24 import de.intevation.flys.artifacts.model.map.WSPLGENReportFacet; | 24 import de.intevation.flys.artifacts.model.map.WSPLGENReportFacet; |
25 import de.intevation.flys.artifacts.resources.Resources; | 25 import de.intevation.flys.artifacts.resources.Resources; |
26 import de.intevation.flys.exports.WstWriter; | 26 import de.intevation.flys.exports.WstWriter; |
27 import de.intevation.flys.mapserver.ArtifactMapfileGenerator; | |
28 import de.intevation.flys.mapserver.MapfileGenerator; | |
27 import de.intevation.flys.model.CrossSectionTrack; | 29 import de.intevation.flys.model.CrossSectionTrack; |
28 import de.intevation.flys.model.DGM; | 30 import de.intevation.flys.model.DGM; |
29 import de.intevation.flys.model.Floodplain; | 31 import de.intevation.flys.model.Floodplain; |
30 import de.intevation.flys.model.RiverAxis; | 32 import de.intevation.flys.model.RiverAxis; |
31 import de.intevation.flys.utils.ArtifactMapfileGenerator; | |
32 import de.intevation.flys.utils.FLYSUtils; | 33 import de.intevation.flys.utils.FLYSUtils; |
34 import de.intevation.flys.utils.FileUtils; | |
33 import de.intevation.flys.utils.GeometryUtils; | 35 import de.intevation.flys.utils.GeometryUtils; |
34 import de.intevation.flys.utils.MapfileGenerator; | |
35 import de.intevation.flys.wsplgen.FacetCreator; | 36 import de.intevation.flys.wsplgen.FacetCreator; |
36 import de.intevation.flys.wsplgen.JobObserver; | 37 import de.intevation.flys.wsplgen.JobObserver; |
37 import de.intevation.flys.wsplgen.Scheduler; | 38 import de.intevation.flys.wsplgen.Scheduler; |
38 | 39 |
39 import java.io.File; | 40 import java.io.File; |
54 public class FloodMapState | 55 public class FloodMapState |
55 extends DefaultState | 56 extends DefaultState |
56 implements FacetTypes | 57 implements FacetTypes |
57 { | 58 { |
58 /** The logger that is used in this state. */ | 59 /** The logger that is used in this state. */ |
59 private static Logger logger = Logger.getLogger(FloodMapState.class); | 60 public static Logger logger = Logger.getLogger(FloodMapState.class); |
60 | 61 |
61 | 62 |
62 public static final String KEEP_ARTIFACT_DIR = | 63 public static final String KEEP_ARTIFACT_DIR = |
63 System.getProperty("flys.uesk.keep.artifactsdir", "false"); | 64 System.getProperty("flys.uesk.keep.artifactsdir", "false"); |
64 | 65 |
487 ) { | 488 ) { |
488 File archive = new File(dir, WSPLGEN_USER_ZIP); | 489 File archive = new File(dir, WSPLGEN_USER_ZIP); |
489 boolean exists = archive.exists(); | 490 boolean exists = archive.exists(); |
490 logger.debug("Zip file exists: " + exists); | 491 logger.debug("Zip file exists: " + exists); |
491 if (exists) { | 492 if (exists) { |
492 try { | 493 FileUtils.extractZipfile(archive, dir); |
493 File tmpDir = new File(dir, "usr_tmp"); | |
494 FileTools.extractArchive(archive, tmpDir); | |
495 moveFiles(tmpDir, dir); | |
496 } | |
497 catch (IOException ioe) { | |
498 logger.warn("Zip archive " + dir + "/" + WSPLGEN_USER_ZIP + " could not be extracted."); | |
499 return; | |
500 } | |
501 | 494 |
502 job.addLin(dir + "/" + WSPLGEN_USER_SHAPE); | 495 job.addLin(dir + "/" + WSPLGEN_USER_SHAPE); |
503 facetCreator.createUserShapeFacet(); | 496 facetCreator.createUserShapeFacet(); |
504 } | 497 } |
505 } | 498 } |
842 } | 835 } |
843 catch (IOException ioe) { /* do nothing */ } | 836 catch (IOException ioe) { /* do nothing */ } |
844 } | 837 } |
845 } | 838 } |
846 } | 839 } |
847 | |
848 | |
849 protected void moveFiles(File source, final File target) | |
850 throws IOException | |
851 { | |
852 if (!source.exists()) { | |
853 return; | |
854 } | |
855 if (!target.exists()) { | |
856 target.mkdir(); | |
857 } | |
858 FileTools.walkTree(source, new FileTools.FileVisitor() { | |
859 @Override | |
860 public boolean visit(File file) { | |
861 if (!file.isDirectory()) { | |
862 String name = file.getName(); | |
863 String suffix = ""; | |
864 int pos = name.lastIndexOf('.'); | |
865 if (pos > 0 && pos < name.length() - 1) { | |
866 suffix = name.substring(pos + 1); | |
867 } | |
868 else { | |
869 return true; | |
870 } | |
871 try { | |
872 FileTools.copyFile(file, new File(target, WSPLGEN_USER_FILENAME + "." + suffix)); | |
873 } | |
874 catch (IOException ioe) { | |
875 logger.warn ("Error while copying file " + file.getName()); | |
876 return true; | |
877 } | |
878 } | |
879 return true; | |
880 } | |
881 }); | |
882 | |
883 FileTools.deleteRecursive(source); | |
884 } | |
885 } | 840 } |
886 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : | 841 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |