Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
  
  package base.jee.api.cassandra;
  
 import base.Command;
 
 
 import static base.text.StringHelper.chomp;
 
 public class BulkLoadLocations extends Command {
 
 	private CassandraAPI api;
 	private InputStream locations;
 
 	public BulkLoadLocations(CassandraAPI apiInputStream locationsInputStream ipLocationsthrows PermissionException {
 
 		if(api == null) {
 			throw new IllegalArgumentException("Invalid parameter: api");
 		}
 
 		this. = api;
 		this. = locations;
 		this. = ipLocations;
 	}
 
 	public BulkLoadLocations() {
 	}
 
 	protected void execute() throws IOException {
 		String line;
 
 		PreparedStatement t = s.prepare("insert into location (id, country, city, latitude, longitude) values(?,?,?,?,?)");
 		while((line = in.readLine()) != null) {
 			String[] parts = line.split(",", 10);
 			if(parts.length == 9) {
 				if(parts[0].matches("^[0-9].*")) {
 					Long id = lchomp(parts[0]);
 					String country = qchomp(parts[1]);
 					String city = qchomp(parts[3]);
 					Double latitude = dchomp(parts[5]);
 					Double longitude = dchomp(parts[6]);
 					if(id != null && longitude != null) {
 						s.execute(t.bind(idcountrycitylatitudelongitude));
 						continue;
 					}
 				}
 			}
 			..println("skip>> " + line);
 		}
 		in.close();
 
 		int subnet = -1;
 		t = s.prepare("insert into ip_location (part, start, end, location) values(?,?,?,?)");
 		while((line = in.readLine()) != null) {
 			String[] parts = line.split(",", 4);
 			if(parts.length == 3) {
 				if(parts[0].matches("^\"?[0-9].*")) {
 					int part = (int)(lchomp(parts[0])/256/256/256);
 					if(part != subnet) {
 						subnet = part;
 						..println("Loading subnet: " + subnet);
 					}
 					Long start = lchomp(parts[0]);
 					Long end = lchomp(parts[1]);
 					Long location = lchomp(parts[2]);
 					if(start != null && location != null) {
 						s.execute(t.bind(partstartendlocation));
 						continue;
 					}
 				}
 			}
 			..println("skip>> " + line);
 		}
 		in.close();
 	}
 
 	public String getJsonParameters() {
 		return "{" +
 				"\"locations\":\"...\"," +
 				"\"ip_locations\":\"...\"" +
 				"}";
	}
	public static String qchomp(String s) {
		String i = s;
		if(s.startsWith("\"") && s.endsWith("\"")) {
			return s.substring(1, s.length()-1).replaceAll("\\\\\"""\"");
else {
			return s;
		}
	}
	public static Long lchomp(String l) {
		try {
			return Long.parseLong(qchomp(chomp(l)));
catch(Exception e) {
			..println("Failed parsing " + l + " as long");
		}
		return null;
	}
	public static Double dchomp(String d) {
		try {
			return Double.parseDouble(qchomp(chomp(d)));
catch(Exception e) {
		}
		return null;
	}
New to GrepCode? Check out our FAQ X