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 :

http://dive4elements.wald.intevation.org