changeset 19:9c4937b290c6

new: coordinates books
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 02 Jun 2015 16:44:02 +0200
parents 881e7591f3e4
children 996f8f1b69db
files src/main/java/de/mpiwg/gazetteer/db/DBBook.java src/main/java/de/mpiwg/gazetteer/db/DBCoordinatesBook.java src/main/java/de/mpiwg/gazetteer/rest/GetSectionMetadata.java src/main/java/de/mpiwg/gazetteer/utils/DBService.java
diffstat 4 files changed, 119 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/gazetteer/db/DBBook.java	Tue Jun 02 15:09:54 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/db/DBBook.java	Tue Jun 02 16:44:02 2015 +0200
@@ -2,6 +2,7 @@
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.Collection;
 
 public class DBBook implements Comparable<DBBook>{
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/mpiwg/gazetteer/db/DBCoordinatesBook.java	Tue Jun 02 16:44:02 2015 +0200
@@ -0,0 +1,58 @@
+package de.mpiwg.gazetteer.db;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Collection;
+
+public class DBCoordinatesBook {
+
+	private Integer id;
+	private String books_id;
+	private String place_name;
+	private String x;
+	private String y;
+	
+	
+	public DBCoordinatesBook(ResultSet rs) throws SQLException{
+		this.id = rs.getInt("id");
+		this.books_id = rs.getString("books_id");
+		this.place_name = rs.getString("place_name");
+		this.x = rs.getString("x");
+		this.y = rs.getString("y");
+		
+	}
+	
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public String getBooks_id() {
+		return books_id;
+	}
+	public void setBooks_id(String books_id) {
+		this.books_id = books_id;
+	}
+	public String getPlace_name() {
+		return place_name;
+	}
+	public void setPlace_name(String place_name) {
+		this.place_name = place_name;
+	}
+	public String getX() {
+		return x;
+	}
+	public void setX(String x) {
+		this.x = x;
+	}
+	public String getY() {
+		return y;
+	}
+	public void setY(String y) {
+		this.y = y;
+	}
+	
+
+
+}
--- a/src/main/java/de/mpiwg/gazetteer/rest/GetSectionMetadata.java	Tue Jun 02 15:09:54 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/rest/GetSectionMetadata.java	Tue Jun 02 16:44:02 2015 +0200
@@ -8,6 +8,7 @@
 import org.json.JSONObject;
 
 import de.mpiwg.gazetteer.db.DBBook;
+import de.mpiwg.gazetteer.db.DBCoordinatesBook;
 import de.mpiwg.gazetteer.db.DBSection;
 import de.mpiwg.gazetteer.utils.DBService;
 
@@ -45,19 +46,26 @@
 				bookJson.put("line", book.getLine());
 				bookJson.put("period", book.getPeriod());
 				bookJson.put("volume", book.getVolume());
-				
 				bookJson.put("level1", book.getLevel1());
 				bookJson.put("level2", book.getLevel2());
 				bookJson.put("admin_type", book.getAdmin_type());
-				bookJson.put("in_jibengujiku", book.getIn_jibengujiku());
-				
-				
+				bookJson.put("in_jibengujiku", book.getIn_jibengujiku());	
 				bookJson.put("dynasty", book.getDynasty());
 				bookJson.put("start_year", book.getStart_year());
 				bookJson.put("end_year", book.getEnd_year());
 				
+				sectionJson.put("book", bookJson);
 				
-				sectionJson.put("book", bookJson);
+
+				DBCoordinatesBook coor_book = DBService.getInstance().getCoordinatesBook(section.getBookId());
+				
+				JSONObject coordinates_books = new JSONObject();
+				coordinates_books.put("place_name", coor_book.getPlace_name());
+				coordinates_books.put("x", coor_book.getX());
+				coordinates_books.put("y", coor_book.getY());
+				
+				sectionJson.put("coordinates_books", coordinates_books);
+				
 				
 				
 				json.put("section", sectionJson);
--- a/src/main/java/de/mpiwg/gazetteer/utils/DBService.java	Tue Jun 02 15:09:54 2015 +0200
+++ b/src/main/java/de/mpiwg/gazetteer/utils/DBService.java	Tue Jun 02 16:44:02 2015 +0200
@@ -20,6 +20,7 @@
 import de.mpiwg.gazetteer.bo.LGBranch;
 import de.mpiwg.gazetteer.bo.LGFile;
 import de.mpiwg.gazetteer.db.DBBook;
+import de.mpiwg.gazetteer.db.DBCoordinatesBook;
 import de.mpiwg.gazetteer.db.DBSection;
 import de.mpiwg.gazetteer.db.DBSectionVersion;
 
@@ -43,7 +44,10 @@
 	}
 	
 	private Map<String, DBBook> bookMap;
+	
 	private List<String> dynastyList;
+
+	private Map<String, DBCoordinatesBook> coordinatesBookMap;
 	
 	public List<String> getDynastyList() throws SQLException{
 		if(this.dynastyList == null){
@@ -90,6 +94,49 @@
 		return new ArrayList<DBBook>(getBookMap().values());
 	}
 	
+	
+	public DBCoordinatesBook getCoordinatesBook(String bookId) {
+		return getCoordinatesBookMap().get(bookId);
+	}
+	
+	private Map<String, DBCoordinatesBook> getCoordinatesBookMap() {
+		if (coordinatesBookMap == null) {
+			try {
+				this.loadCoordinatesBookMap();	
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return this.coordinatesBookMap;
+	}
+
+	private void loadCoordinatesBookMap() throws SQLException{
+		Long start = System.currentTimeMillis();
+		Connection conn = null;
+		Statement stmt = null;
+		this.coordinatesBookMap = new HashMap<String, DBCoordinatesBook>();
+		
+		try {
+			String query = "SELECT * FROM coordinates_books";				
+			logger.debug(query);
+			conn = getNewConnection();
+			stmt   = conn.createStatement();
+			ResultSet rs = stmt.executeQuery(query);
+			
+			while(rs.next()){
+				DBCoordinatesBook book = new DBCoordinatesBook(rs);		
+				this.coordinatesBookMap.put(book.getBooks_id(), book);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}finally{
+			conn.close();
+		}
+		
+		long end = System.currentTimeMillis();
+		logger.debug("Time execution loading Coordinates Book Map [ms]: " + (end - start));
+	}
+
 	public DBBook getBook(String id){
 		return getBookMap().get(id);
 	}