Freitag, 9. November 2012

Aktuelle Liste der anwesenden Bewohner - Implementierung Teil 1

Während Christian Venga sich unter Einsatz seines Lebens damit beschäftigt die Belegung des DVI/HDMI-Adapter herauszufinden, möchte ich mich kurz mit einem Teil der Softwareimplementierung befassen.

Wir haben als Erstes damit begonnen die Funktionalität fertigzustellen, die es ermöglicht, die gerade anwesenden Bewohner anzuzeigen. Ein erster Schritt dahin besteht darin, anhand einer Liste die momentan im Netzwerk verfügbaren Geräte zu ermitteln. Wir nehmen dabei eine simple XML-Datei zu hilfe, um nicht groß eine Datenbankinfrastruktur aufbauen zu müssen.

Diese sieht wie folgt aus und beinhaltet eine Liste der User mit Namen, Hostname des Smartphones und ein Statusinformation, die anzeigt, ob das Gerät im lokalen Netzwerk ist. Wir werden diese Information später durch unser Programm dynamisch ändern.

 
  *Name*
  *Hostname oder IP*
  false
 

Wir werden die XML-Datei jetzt mithilfe von Java einlesen und dann die aktualisierten Daten in die Datei schreiben. Da wir vielleicht später noch einmal XML-Dateien lesen müssen, erstellen wir uns erstmal eine Hilfsklasse, die den Zugriff und Speicherung übernimmt.
import java.io.File;
import java.io.PrintStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

/**
 * @author Vengadivision
 *
 */
public class XmlIO {

 /**
  * @param FilePath
  * @return
  */
 public static Document getXmlByFilePath(String FilePath) {
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder = null;
  try {
   builder = factory.newDocumentBuilder();
   Document document = builder.parse(new File(FilePath));
   return document;
  } catch (Exception e) {
   return null;
  }

 }

 /**
  * @param FilePath
  * @param document
  */
 public static void writeXmlByFilePath(String FilePath, Document document) {
  DOMSource source = new DOMSource(document);

  PrintStream ps;
  try {
   ps = new PrintStream(FilePath);
   StreamResult result = new StreamResult(ps);

   TransformerFactory transformerFactory = TransformerFactory
     .newInstance();
   Transformer transformer;
   transformer = transformerFactory.newTransformer();
   transformer.transform(source, result);
  } catch (Exception e) {
   e.printStackTrace();
  }

 }

}
Die beiden statischen Methoden sind denke ich soweit selbst erklärend. Mehr dann im nächsten Teil ;-)

3 Kommentare:

  1. DIE TOTALE ÜBERWACHUNG....
    Ich bin dafür das ihr auch nen nen Putzplanüberwacher einbaut. Zusätzlich bekommt jedoch noch nen Elektro Halsband und wenn einer nicht oder zu spät (oder nicht sauber genug aufräumt) dann bekommt er nen Schock. (Auch als Wecker denkbar)(Patent pending)

    AntwortenLöschen
  2. Die Idee mit dem Elektrohalsband find ich super, am Besten noch einen NFC-Chip unter die Haut setzen zur totalen Überwachung.

    Keine Angst! JSON werden wir noch bei den AJAX-Requests nutzen ;-)

    AntwortenLöschen

Blogverzeichnis - Blog Verzeichnis bloggerei.de