// Path: src/main/java/org/openstreetmap/osmaxil/Application.java
// @Component("OsmaxilApp")
// public class Application {
// 
// 	@Value("${osmaxil.flow}")
// 	public String flow;
// 	
// 	public static final String NAME = "Osmaxil";
// 
// 	private static ClassPathXmlApplicationContext applicationContext;
// 
// 	static private final Logger LOGGER = Logger.getLogger(Application.class);
// 
// 	static protected final Logger LOGGER_FOR_STATS = Logger.getLogger("LoggerForStats");
// 
// 	public static void main(String[] args) {
// 		applicationContext = new ClassPathXmlApplicationContext("spring.xml");
// 		Application app = (Application) applicationContext.getBean("OsmaxilApp");
// 		LOGGER.info("=== Starting Osmaxil ===");
// 		long startTime = System.currentTimeMillis();
// 		try {
// 			app.run();
// 		} catch (Exception e) {
// 			LOGGER.error(e);
// 		}
// 		LOGGER_FOR_STATS.info("Job has been executed in " + (System.currentTimeMillis() - startTime) / 1000 + " seconds");
// 		LOGGER.info("=== Osmaxil has finished its job ===");
// 		applicationContext.close();
// 	}
// 	
// 	public void run() throws Exception {
// 		__AbstractImportFlow<?, ?> flow = (__AbstractImportFlow<?, ?>) applicationContext.getBean(this.flow);
// 		flow.load();
// 		flow.process();
// 		flow.synchronize();
// 		flow.displayLoadingStatistics();
// 		flow.displayProcessingStatistics();
// 	}
// }
// 
// Path: src/main/java/org/openstreetmap/osmaxil/model/ElevationImport.java
// public class ElevationImport extends AbstractImport {
// 
// 	// private Coordinates coordinates;
// 
// 	public float x, y, z;
// 
// 	public ElevationImport(float x, float y, float z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 		this.setId(Math.round(z));
// 	}
// 
// 	@Override
// 	public String getValueByTagName(String tagName) {
// 		return "Sorry, there is no tag for that type of import";
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Elevation import with x=" + x + " y=" + y + " z=" + z;
// 	}
// 
// }


import java.util.List;
import org.apache.log4j.Logger;
import org.openstreetmap.osmaxil.Application;
import org.openstreetmap.osmaxil.model.ElevationImport;

package org.openstreetmap.osmaxil.dao;



public interface ElevationDataSource {

	public enum Type {
		DB, FILE
	};

	public enum Use {
		DTM, DSM
	};

	static public final Logger LOGGER = Logger.getLogger(Application.class);

	abstract void init(String source, int srid);

	abstract public int getSrid();


// Path: src/main/java/org/openstreetmap/osmaxil/Application.java
// @Component("OsmaxilApp")
// public class Application {
// 
// 	@Value("${osmaxil.flow}")
// 	public String flow;
// 	
// 	public static final String NAME = "Osmaxil";
// 
// 	private static ClassPathXmlApplicationContext applicationContext;
// 
// 	static private final Logger LOGGER = Logger.getLogger(Application.class);
// 
// 	static protected final Logger LOGGER_FOR_STATS = Logger.getLogger("LoggerForStats");
// 
// 	public static void main(String[] args) {
// 		applicationContext = new ClassPathXmlApplicationContext("spring.xml");
// 		Application app = (Application) applicationContext.getBean("OsmaxilApp");
// 		LOGGER.info("=== Starting Osmaxil ===");
// 		long startTime = System.currentTimeMillis();
// 		try {
// 			app.run();
// 		} catch (Exception e) {
// 			LOGGER.error(e);
// 		}
// 		LOGGER_FOR_STATS.info("Job has been executed in " + (System.currentTimeMillis() - startTime) / 1000 + " seconds");
// 		LOGGER.info("=== Osmaxil has finished its job ===");
// 		applicationContext.close();
// 	}
// 	
// 	public void run() throws Exception {
// 		__AbstractImportFlow<?, ?> flow = (__AbstractImportFlow<?, ?>) applicationContext.getBean(this.flow);
// 		flow.load();
// 		flow.process();
// 		flow.synchronize();
// 		flow.displayLoadingStatistics();
// 		flow.displayProcessingStatistics();
// 	}
// }
// 
// Path: src/main/java/org/openstreetmap/osmaxil/model/ElevationImport.java
// public class ElevationImport extends AbstractImport {
// 
// 	// private Coordinates coordinates;
// 
// 	public float x, y, z;
// 
// 	public ElevationImport(float x, float y, float z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 		this.setId(Math.round(z));
// 	}
// 
// 	@Override
// 	public String getValueByTagName(String tagName) {
// 		return "Sorry, there is no tag for that type of import";
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Elevation import with x=" + x + " y=" + y + " z=" + z;
// 	}
// 
// }


// Path: src/main/java/org/openstreetmap/osmaxil/dao/ElevationDataSource.java
import java.util.List;
import org.apache.log4j.Logger;
import org.openstreetmap.osmaxil.Application;
import org.openstreetmap.osmaxil.model.ElevationImport;

package org.openstreetmap.osmaxil.dao;



public interface ElevationDataSource {

	public enum Type {
		DB, FILE
	};

	public enum Use {
		DTM, DSM
	};

	static public final Logger LOGGER = Logger.getLogger(Application.class);

	abstract void init(String source, int srid);

	abstract public int getSrid();


	abstract public ElevationImport findElevationByCoordinates(float x, float y, float valueScale, int srid);
