moar neo4j fixes
[disclosr.git] / admin / neo4jimporter / src / main / java / StAXSample.java
blob:a/admin/neo4jimporter/src/main/java/StAXSample.java -> blob:b/admin/neo4jimporter/src/main/java/StAXSample.java
--- a/admin/neo4jimporter/src/main/java/StAXSample.java
+++ b/admin/neo4jimporter/src/main/java/StAXSample.java
@@ -77,21 +77,13 @@
 
 
                 //iterate as long as there are more events on the input stream
+                Map<String, Object> previousAgency = new HashMap<String, Object>();
                 while (r.hasNext()) {
                     XMLEvent e = r.nextEvent();
-                    Map<String, Object> previousAgency = new HashMap<String, Object>();
+
                     if (e.isStartElement()) {
                         if (hasStartTagName(e, "AGENCIES")) {
                             System.out.println("Agencies file loaded... ");
-                        } else if (hasStartTagName(e, "TITLE")) {
-                            System.out.println("TITLE is: " + getCharacters(r));
-                            previousAgency.put("title", getCharacters(r));
-                        } else if (hasStartTagName(e, "END_DATE_QUAL")) {
-                            System.out.println("END_DATE_QUAL is: " + getCharacters(r));
-                            previousAgency.put("end_date_qual", getCharacters(r));
-                            // save agency
-                            getAgency(previousAgency);
-                            previousAgency = new HashMap<String, Object>();
                         } else if (hasStartTagName(e, "AGENCY_LINK")) {
                             processAgencyLink(r);
                         } else if (hasStartTagName(e, "AGENCY_LOCATION")) {
@@ -100,6 +92,23 @@
                             processAgencyFunction(r);
                         } else if (hasStartTagName(e, "AGENCY_STATUS")) {
                             processAgencyStatus(r);
+                        } else if (hasStartTagName(e, "AGENCY_NO")) {
+                            previousAgency.put("agency_no", getCharacters(r));
+                        } else if (hasStartTagName(e, "TITLE")) {
+                            previousAgency.put("name", getCharacters(r));
+                        } else if (hasStartTagName(e, "START_DATE")) {
+                            previousAgency.put("start_date", getCharacters(r));
+                        } else if (hasStartTagName(e, "START_DATE_QUAL")) {
+                            previousAgency.put("start_date_qual", getCharacters(r));
+                        } else if (hasStartTagName(e, "ALTERNATIVE_TITLE")) {
+                            previousAgency.put("alternative_title", getCharacters(r));
+                        } else if (hasStartTagName(e, "END_DATE")) {
+                            previousAgency.put("end_date", getCharacters(r));
+                        } else if (hasStartTagName(e, "END_DATE_QUAL")) {
+                            previousAgency.put("end_date_qual", getCharacters(r));
+                            // save agency
+                            getAgency(previousAgency);
+                            previousAgency = new HashMap<String, Object>();
                         } else {
                             System.out.println("Unhandled tag: " + getStartTagName(e) + " content:" + getCharacters(r));
                         }
@@ -144,7 +153,7 @@
     private long getLocation(String locationName) {
         if (locationIDs.get(locationName) == null) {
             HashMap properties = new HashMap< String,Object > ();
-            properties.put("location_name", locationName);
+            properties.put("name", locationName);
             long locationID = inserter.createNode(properties, locationLabel);
             locationIDs.put(locationName, locationID);
             return locationID;
@@ -155,7 +164,7 @@
     private long getFunction(String functionName) {
         if (functionIDs.get(functionName) == null) {
             HashMap properties = new HashMap< String,Object > ();
-            properties.put("function_name", functionName);
+            properties.put("name", functionName);
             long functionID = inserter.createNode(properties, functionLabel);
             functionIDs.put(functionName, functionID);
             return functionID;
@@ -166,7 +175,7 @@
     private long getStatus(String statusName) {
         if (statusIDs.get(statusName) == null) {
             HashMap properties = new HashMap< String,Object > ();
-            properties.put("status_name", statusName);
+            properties.put("name", statusName);
             long statusID = inserter.createNode(properties, statusLabel);
             statusIDs.put(statusName, statusID);
             return statusID;
@@ -217,9 +226,15 @@
                     Map<String, Object> relProperties = new HashMap<String, Object>();
                     relProperties.put("link_type", link_type);
                     relProperties.put("start_date", start_date);
-                    relProperties.put("start_date_qual", start_date_qual);
-                    relProperties.put("end_date", end_date);
-                    relProperties.put("end_date_qual", end_date_qual);
+                    if (start_date_qual != null && !start_date_qual.equals("(null)")) {
+                        relProperties.put("start_date_qual", start_date_qual);
+                    }
+                    if (end_date != null && !end_date.equals("(null)")) {
+                        relProperties.put("end_date", end_date);
+                    }
+                    if (end_date_qual != null && !end_date_qual.equals("(null)")) {
+                        relProperties.put("end_date_qual", end_date_qual);
+                    }
                     inserter.createRelationship(agencyFromID, agencyToID,
                             DynamicRelationshipType.withName("IS_LINKED_TO"), relProperties);
 
@@ -333,10 +348,16 @@
                     agencyProperties.put("agency_no",agency);
                     agencyID = getAgency(agencyProperties);
                     Map<String, Object> relProperties = new HashMap<String, Object>();
-                                        relProperties.put("start_date", start_date);
-                    relProperties.put("start_date_qual", start_date_qual);
-                    relProperties.put("end_date", end_date);
-                    relProperties.put("end_date_qual", end_date_qual);
+                    relProperties.put("start_date", start_date);
+                    if (start_date_qual != null && !start_date_qual.equals("(null)")) {
+                        relProperties.put("start_date_qual", start_date_qual);
+                    }
+                    if (end_date != null && !end_date.equals("(null)")) {
+                        relProperties.put("end_date", end_date);
+                    }
+                    if (end_date_qual != null && !end_date_qual.equals("(null)")) {
+                        relProperties.put("end_date_qual", end_date_qual);
+                    }
                     inserter.createRelationship(agencyID, functionID,
                             DynamicRelationshipType.withName("HAS_FUNCTION"), relProperties);
 
@@ -356,7 +377,7 @@
     }
 
     private boolean hasStartTagName(XMLEvent e, String name) {
-        return e.asStartElement().getName().getLocalPart().equals(name);
+        return e.asStartElement().getName().getLocalPart().toLowerCase().equals(name.toLowerCase());
     }
 
     private String getStartTagName(XMLEvent e) {
@@ -364,7 +385,7 @@
     }
 
     private boolean hasEndTagName(XMLEvent e, String name) {
-        return e.asEndElement().getName().getLocalPart().equals(name);
+        return e.asEndElement().getName().getLocalPart().toLowerCase().equals(name.toLowerCase());
     }
 
     public void setFilename(String filename) {