package kr.ac.kaist.resl.lilliput.core; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import edu.stanford.smi.protege.model.Project; import edu.stanford.smi.protege.server.RemoteProjectManager; import edu.stanford.smi.protegex.owl.model.OWLDatatypeProperty; import edu.stanford.smi.protegex.owl.model.OWLModel; import edu.stanford.smi.protegex.owl.model.OWLObjectProperty; import edu.stanford.smi.protegex.owl.model.RDFIndividual; public class DeviceInformationAdapter { RemoteProjectManager rpm ; Project p; OWLModel owlModel; //Ontology�� �ҷ��� public DeviceInformationAdapter() { // TODO Auto-generated constructor stub rpm = RemoteProjectManager.getInstance(); p = rpm.getProject("localhost:5100", "Lilliput", "1234", "CPSGraph", true); owlModel = (OWLModel)p.getKnowledgeBase(); } public void latencyTest(JSONObject obj, int number) { try { int DataCount = 0; int RelationshipCount = 0; int Room1Count =0; int Room2Count =0; int Room3Count =0; int epc1 =0; int epc2 =0; int epc3 =0; int epc4 =0; int epc5 =0; int epc6 =0; int epc7 =0; int epc8 =0; int epc9 =0; int epc10 = 0; int epc11 =0; int epc12 = 0; int epc13 = 0; int epc14 = 0; int epc15 = 0; String Room1Temp = "0"; String Room1Humid ="0"; String Room1Light = "0"; String Room2Temp = "0"; String Room2Humid = "0"; String Room2Light = "0"; String Room3Temp = "0"; String Room3Light = "0"; String Room3Humid ="0"; String curLoc = null; OWLObjectProperty isIn = owlModel.getOWLObjectProperty("isIn"); OWLObjectProperty isColocated = owlModel.getOWLObjectProperty("isColocated"); OWLObjectProperty hasSameClass = owlModel.getOWLObjectProperty("hasSameClass"); OWLDatatypeProperty humidProp = owlModel.getOWLDatatypeProperty("humidity"); OWLDatatypeProperty lightProp = owlModel.getOWLDatatypeProperty("lightlevel"); OWLDatatypeProperty tempProp = owlModel.getOWLDatatypeProperty("temperature"); //System.out.println(obj.toString(1)); //System.out.println("Number : " + number ); List<RDFIndividual> room1EPC = new ArrayList<RDFIndividual>(); List<RDFIndividual> room2EPC = new ArrayList<RDFIndividual>(); List<RDFIndividual> room3EPC = new ArrayList<RDFIndividual>(); RDFIndividual room1RDF = owlModel.getRDFIndividual("urn:epc:id:sgln:00000000001.1.1"); RDFIndividual room2RDF = owlModel.getRDFIndividual("urn:epc:id:sgln:00000000001.1.2"); RDFIndividual room3RDF = owlModel.getRDFIndividual("urn:epc:id:sgln:00000000001.1.3"); Object dummy = obj.get("reports"); //System.out.println(dummy.toString()); if( dummy instanceof JSONArray) { FileOutputStream stream = new FileOutputStream("After.txt",true); long posttime1 = System.nanoTime(); String message = number + "\t" + (double)posttime1/1000000000+ "\n"; System.out.println("After : " + message + "null report"); stream.write(message.getBytes()); stream.close(); return; } JSONObject reports = obj.getJSONObject("reports"); JSONObject report = reports.getJSONObject("report"); String reportName = report.getString("@reportName"); String locEPC = null; if( reportName.equals("Room1")) { locEPC = "urn:epc:id:sgln:00000000001.1.1"; JSONObject group = report.getJSONObject("group"); if( !(group.get("groupList") instanceof JSONArray)) { //1���� �� // System.out.println("why"); JSONObject groupList = group.getJSONObject("groupList"); JSONObject member = groupList.getJSONObject("member"); String epc = member.getString("epc"); RDFIndividual epcRDF = owlModel.getRDFIndividual(epc); room1EPC.add(epcRDF); } else { JSONArray groupList = group.getJSONArray("groupList"); for(int k = 0 ; k < groupList.length() ; k++) { JSONObject groupMember = groupList.getJSONObject(k); String epc = groupMember.getString("epc"); RDFIndividual epcRDF = owlModel.getRDFIndividual(epc); room1EPC.add(epcRDF); } } } else if( reportName.equals("Room2")) { locEPC = "urn:epc:id:sgln:00000000001.1.2"; JSONObject group = report.getJSONObject("group"); if( !(group.get("groupList") instanceof JSONArray)) { //1���� �� // System.out.println("why"); JSONObject groupList = group.getJSONObject("groupList"); JSONObject member = groupList.getJSONObject("member"); String epc = member.getString("epc"); RDFIndividual epcRDF = owlModel.getRDFIndividual(epc); room2EPC.add(epcRDF); } else { JSONArray groupList = group.getJSONArray("groupList"); for(int k = 0 ; k < groupList.length() ; k++) { JSONObject groupMember = groupList.getJSONObject(k); String epc = groupMember.getString("epc"); RDFIndividual epcRDF = owlModel.getRDFIndividual(epc); room2EPC.add(epcRDF); } } } else if( reportName.equals("Room3")) { locEPC= "urn:epc:id:sgln:00000000001.1.3"; JSONObject group = report.getJSONObject("group"); if( !(group.get("groupList") instanceof JSONArray)) { //1���� �� // System.out.println("why"); JSONObject groupList = group.getJSONObject("groupList"); JSONObject member = groupList.getJSONObject("member"); String epc = member.getString("epc"); RDFIndividual epcRDF = owlModel.getRDFIndividual(epc); room3EPC.add(epcRDF); } else { JSONArray groupList = group.getJSONArray("groupList"); for(int k = 0 ; k < groupList.length() ; k++) { JSONObject groupMember = groupList.getJSONObject(k); String epc = groupMember.getString("epc"); RDFIndividual epcRDF = owlModel.getRDFIndividual(epc); room3EPC.add(epcRDF); } } } else { JSONObject group = report.getJSONObject("group"); JSONArray groupList = group.getJSONArray("groupList"); for(int i = 0 ; i < groupList.length() ; i++ ) { //8 <-- room1 //10 <-- room2 //12 <-- room3 JSONObject groupMember = groupList.getJSONObject(i); String epc = groupMember.getString("epc"); RDFIndividual epcRDF = owlModel.getRDFIndividual(epc); if( epc.equals("urn:epc:id:sgtin:1234567.000000.8")) { room1EPC.add(epcRDF); locEPC = "urn:epc:id:sgln:00000000001.1.1"; JSONObject extension = groupMember.getJSONObject("extension"); JSONArray fieldList = extension.getJSONArray("fieldList"); for(int j = 0 ; j < fieldList.length() ; j++) { JSONObject fieldMember = fieldList.getJSONObject(j); String name = fieldMember.getString("name"); String value = fieldMember.getString("value"); if( name.equals("temperature")) { String temperature = value; epcRDF.setPropertyValue(tempProp, temperature); Room1Temp =temperature; DataCount++; } else if( name.equals("humidity")) { String humidity = value; epcRDF.setPropertyValue(lightProp, humidity); Room1Humid = humidity; DataCount++; } else if( name.equals("light")) { String light = value; epcRDF.setPropertyValue(humidProp, light); Room1Light = light; DataCount++; } } } else if( epc.equals("urn:epc:id:sgtin:1234567.000000.10")) { room2EPC.add(epcRDF); locEPC = "urn:epc:id:sgln:00000000001.1.2"; JSONObject extension = groupMember.getJSONObject("extension"); JSONArray fieldList = extension.getJSONArray("fieldList"); for(int j = 0 ; j < fieldList.length() ; j++) { JSONObject fieldMember = fieldList.getJSONObject(j); String name = fieldMember.getString("name"); String value = fieldMember.getString("value"); if( name.equals("temperature")) { String temperature = value; epcRDF.setPropertyValue(tempProp, temperature); Room2Temp =temperature; DataCount++; } else if( name.equals("humidity")) { String humidity = value; epcRDF.setPropertyValue(lightProp, humidity); Room2Humid = humidity; DataCount++; } else if( name.equals("light")) { String light = value; epcRDF.setPropertyValue(humidProp, light); Room2Light = light; DataCount++; } } } else if( epc.equals("urn:epc:id:sgtin:1234567.000000.12")) { room3EPC.add(epcRDF); locEPC= "urn:epc:id:sgln:00000000001.1.3"; JSONObject extension = groupMember.getJSONObject("extension"); JSONArray fieldList = extension.getJSONArray("fieldList"); for(int j = 0 ; j < fieldList.length() ; j++) { JSONObject fieldMember = fieldList.getJSONObject(j); String name = fieldMember.getString("name"); String value = fieldMember.getString("value"); if( name.equals("temperature")) { String temperature = value; epcRDF.setPropertyValue(tempProp, temperature); Room3Temp =temperature; DataCount++; } else if( name.equals("humidity")) { String humidity = value; epcRDF.setPropertyValue(lightProp, humidity); Room3Humid = humidity; DataCount++; } else if( name.equals("light")) { String light = value; epcRDF.setPropertyValue(humidProp, light); Room3Light = light; DataCount++; } } } } } //////////////////////////////////// if( reportName.equals("Room1")) { Room1Count = room1EPC.size(); for( int i = 0 ; i < room1EPC.size() ; i++ ) { RDFIndividual room1epc = room1EPC.get(i); room1epc.setPropertyValue(isIn, room1RDF); RelationshipCount++; String room1epcs = room1epc.getBrowserText(); if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.1")) { epc1 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.2")) { epc2 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.3")) { epc3 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.4")) { epc4 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.5")) { epc5 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.6")) { epc6 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.7")) { epc7 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.8")) { epc8 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.9")) { epc9 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.10")) { epc10 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.11")) { epc11 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.12")) { epc12 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.13")) { epc13 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.14")) { epc14 = 1; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.15")) { epc15 = 1; } } for( int i = 0 ; i < room1EPC.size() -1 ;i ++ ) { for( int j = i+1 ; j < room1EPC.size() ; j++ ) { RDFIndividual one = room1EPC.get(i); RDFIndividual two = room1EPC.get(j); one.addPropertyValue(isColocated, two); RelationshipCount++; String oneText = one.getBrowserText(); String twoText = two.getBrowserText(); String[] segmentOne = oneText.split(":"); String[] segmentTwo = twoText.split(":"); if( segmentOne[0].equals(segmentTwo[0])) { if( segmentOne[1].equals(segmentTwo[1])) { if( segmentOne[2].equals(segmentTwo[2])) { if(segmentOne[3].equals(segmentTwo[3])) { String[] sOne = segmentOne[4].split("\\."); String[] sTwo = segmentTwo[4].split("\\."); if( sOne[0].equals(sTwo[0])) { if( sOne[1].equals(sTwo[1])) { one.addPropertyValue(hasSameClass, two); RelationshipCount++; } } } } } } } } } else if( reportName.equals("Room2")) { Room2Count = room2EPC.size(); for( int i = 0 ; i < room2EPC.size() ; i++ ) { RDFIndividual room2epc = room2EPC.get(i); room2epc.setPropertyValue(isIn, room2RDF); RelationshipCount++; String room1epcs = room2epc.getBrowserText(); if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.1")) { epc1 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.2")) { epc2 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.3")) { epc3 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.4")) { epc4 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.5")) { epc5 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.6")) { epc6 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.7")) { epc7 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.8")) { epc8 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.9")) { epc9 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.10")) { epc10 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.11")) { epc11 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.12")) { epc12 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.13")) { epc13 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.14")) { epc14 = 2; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.15")) { epc15 = 2; } } for( int i = 0 ; i < room2EPC.size() -1 ;i ++ ) { for( int j = i+1 ; j < room2EPC.size() ; j++ ) { RDFIndividual one = room2EPC.get(i); RDFIndividual two = room2EPC.get(j); one.addPropertyValue(isColocated, two); RelationshipCount++; String oneText = one.getBrowserText(); String twoText = two.getBrowserText(); String[] segmentOne = oneText.split(":"); String[] segmentTwo = twoText.split(":"); if( segmentOne[0].equals(segmentTwo[0])) { if( segmentOne[1].equals(segmentTwo[1])) { if( segmentOne[2].equals(segmentTwo[2])) { if(segmentOne[3].equals(segmentTwo[3])) { String[] sOne = segmentOne[4].split("\\."); String[] sTwo = segmentTwo[4].split("\\."); if( sOne[0].equals(sTwo[0])) { if( sOne[1].equals(sTwo[1])) { one.addPropertyValue(hasSameClass, two); RelationshipCount++; } } } } } } } } } else if( reportName.equals("Room3")) { Room3Count = room3EPC.size(); for( int i = 0 ; i < room3EPC.size() ; i++ ) { RDFIndividual room3epc = room3EPC.get(i); room3epc.setPropertyValue(isIn, room3RDF); RelationshipCount++; String room1epcs = room3epc.getBrowserText(); if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.1")) { epc1 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.2")) { epc2 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.3")) { epc3 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.4")) { epc4 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.5")) { epc5 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.6")) { epc6 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.7")) { epc7 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.8")) { epc8 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.9")) { epc9 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.10")) { epc10 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.11")) { epc11 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.12")) { epc12 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.13")) { epc13 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.14")) { epc14 = 3; } else if( room1epcs.equals("urn:epc:id:sgtin:0000001.000001.15")) { epc15 = 3; } } for( int i = 0 ; i < room3EPC.size() -1 ;i ++ ) { for( int j = i+1 ; j < room3EPC.size() ; j++ ) { RDFIndividual one = room3EPC.get(i); RDFIndividual two = room3EPC.get(j); one.addPropertyValue(isColocated, two); RelationshipCount++; // String oneText = one.getBrowserText(); // String twoText = two.getBrowserText(); // String[] segmentOne = oneText.split(":"); // String[] segmentTwo = twoText.split(":"); // if( segmentOne[0].equals(segmentTwo[0])) // { // if( segmentOne[1].equals(segmentTwo[1])) // { // if( segmentOne[2].equals(segmentTwo[2])) // { // if(segmentOne[3].equals(segmentTwo[3])) // { // String[] sOne = segmentOne[4].split("\\."); // String[] sTwo = segmentTwo[4].split("\\."); // if( sOne[0].equals(sTwo[0])) // { // if( sOne[1].equals(sTwo[1])) // { // one.addPropertyValue(hasSameClass, two); // RelationshipCount++; // } // } // } // } // } // } } } } FileOutputStream stream = new FileOutputStream("After.txt",true); long posttime1 = System.nanoTime(); String message = number + "\t" + (double)posttime1/1000000000+ "\t" + DataCount + "\t"+ RelationshipCount + "\t" + Room1Count + "\t" + Room2Count + "\t" + Room3Count + "\t" + Room1Temp + "\t" + Room1Humid + "\t" + Room1Light + "\t" + Room2Temp + "\t" + Room2Humid + "\t" + Room2Light + "\t" + Room3Temp + "\t" + Room3Humid + "\t" + Room3Light + "\t" + epc1 + "\t"+ epc2 + "\t"+ epc3 + "\t"+ epc4 + "\t"+ epc5 + "\t"+ epc6 + "\t"+ epc7 + "\t"+ epc8 + "\t"+ epc9 + "\t"+ epc10 + "\t"+ epc11 + "\t"+ epc12 + "\t"+ epc13 + "\t"+ epc14 + "\t"+ epc15 + "\n"; System.out.println("After : " + message ); stream.write(message.getBytes()); stream.close(); p.dispose(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //System.out.println(obj.toString()); } public void objectInformationAdapter(JSONObject obj, String epc) { try { System.out.println(obj.toString(1)); JSONArray eventsbody = obj.getJSONArray("resultsBody"); if( eventsbody.length() == 0 ) { p.dispose(); return; } JSONArray events = eventsbody.getJSONArray(0); JSONObject event = events.getJSONObject(0); if( event == null ) { p.dispose(); return; } String location = event.getJSONArray("bizLocation").getString(0); JSONArray epcJs = event.getJSONArray("epcList"); //Extract List<RDFIndividual> epcInds = new ArrayList<RDFIndividual>(); for( int i = 0 ; i < epcJs.length() ;i++) { String e = epcJs.getString(i); RDFIndividual ind = owlModel.getRDFIndividual(e); if( ind != null ) { epcInds.add(ind); } } //�ش�Ǵ� EPC���� isIn���� , isCollocated���� , hasSameClass ���踦 ����� OWLObjectProperty isIn = owlModel.getOWLObjectProperty("isIn"); OWLObjectProperty isCollocated = owlModel.getOWLObjectProperty("isCollocated"); OWLObjectProperty hasSameClass = owlModel.getOWLObjectProperty("hasSameClass"); for(int i = 0 ; i < epcInds.size() ; i++ ) { RDFIndividual temp = epcInds.get(i); if( temp.getPropertyValue(isIn) != null ) { RDFIndividual preLoc = (RDFIndividual)temp.getPropertyValue(isIn); temp.removePropertyValue(isIn, preLoc); } Collection isColCol = temp.getPropertyValues(isCollocated); Iterator isColIter = isColCol.iterator(); while( isColIter.hasNext()) { RDFIndividual isColRDF = (RDFIndividual)isColIter.next(); temp.removePropertyValue(isCollocated, isColRDF); } Collection hasSameCol = temp.getPropertyValues(hasSameClass); Iterator hasSameIter = hasSameCol.iterator(); while( hasSameIter.hasNext()) { RDFIndividual hasSameRDF = (RDFIndividual)hasSameIter.next(); temp.removePropertyValue(hasSameClass, hasSameRDF); } } //isIn ó�� RDFIndividual locRDF = owlModel.getRDFIndividual(location); if( locRDF != null ) { for( int i = 0 ; i < epcInds.size() ; i++ ) { RDFIndividual tempRDF = epcInds.get(i); tempRDF.setPropertyValue(isIn, locRDF); } } for( int i = 0 ; i < epcInds.size() -1 ;i ++ ) { for( int j = i+1 ; j < epcInds.size() ; j++ ) { RDFIndividual one = epcInds.get(i); RDFIndividual two = epcInds.get(j); one.addPropertyValue(isCollocated, two); String oneText = one.getBrowserText(); String twoText = two.getBrowserText(); String[] segmentOne = oneText.split(":"); String[] segmentTwo = twoText.split(":"); if( segmentOne[0].equals(segmentTwo[0])) { if( segmentOne[1].equals(segmentTwo[1])) { if( segmentOne[2].equals(segmentTwo[2])) { if(segmentOne[3].equals(segmentTwo[3])) { String[] sOne = segmentOne[4].split("\\."); String[] sTwo = segmentTwo[4].split("\\."); if( sOne[0].equals(sTwo[0])) { if( sOne[1].equals(sTwo[1])) { one.addPropertyValue(hasSameClass, two); } } } } } } } } p.dispose(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void sensingInformationAdapter(JSONObject obj,String epc) { try { System.out.println(obj.toString(1)); float temperature = 0; int tc = 0; float humidity = 0; int hc = 0; float lightness = 0 ; int lc = 0; JSONArray eventsbody = obj.getJSONArray("resultsBody"); if( eventsbody.getJSONArray(0).length() == 0 ) { p.dispose(); return; } JSONArray events = eventsbody.getJSONArray(0); for( int i = 0 ; i < events.length() ; i++ ) { JSONObject event = events.getJSONObject(i); if( !event.isNull("sensingValueType")) { if( event.getString("sensingValueType").equals("humidity")) { humidity += Float.parseFloat(event.getString("sensingValue")); hc ++; } else if( event.getString("sensingValueType").equals("temperature")) { temperature += Float.parseFloat(event.getString("sensingValue")); tc ++; } else if( event.getString("sensingValueType").equals("light")) { lightness += Float.parseFloat(event.getString("sensingValue")); lc ++; } } } RDFIndividual ind = owlModel.getRDFIndividual(epc); if( ind == null ) { p.dispose(); return; } OWLDatatypeProperty td = owlModel.getOWLDatatypeProperty("temperature"); OWLDatatypeProperty hd = owlModel.getOWLDatatypeProperty("humidity"); OWLDatatypeProperty ld = owlModel.getOWLDatatypeProperty("lightness"); if( tc != 0 ) { temperature = temperature/tc; ind.setPropertyValue(td, temperature); } if( hc != 0) { humidity = humidity/hc; ind.setPropertyValue(hd, humidity); } if( lc != 0 ) { lightness = lightness/lc; ind.setPropertyValue(ld, lightness); } p.dispose(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void locationInformationAdapter(JSONObject obj, String epc) { try { System.out.println(obj.toString(1)); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }