/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Network; import SocialMedia.CSocialMediaFactory; import java.io.IOException; import java.io.Writer; import java.net.Socket; import java.nio.channels.Channels; import java.nio.charset.StandardCharsets; import java.util.Observable; import java.util.Observer; import javax.json.Json; import javax.json.stream.JsonParser; import javax.json.stream.JsonParser.Event; /** * * @author Bryden */ public class CSocialMediaHandler implements Observer { @Override public void update(Observable o, Object arg) { Socket objSocket = (Socket) arg; int intSeq = -1; try { JsonParser objParser = Json.createParser(objSocket.getInputStream()); int intTempSeq = -1; while (objParser.hasNext()) { Event objEvent = objParser.next(); if (objEvent == Event.KEY_NAME) { switch (objParser.getString()) { case "message": objParser.next(); String strMessage = objParser.getString(); System.out.println(strMessage); CSocialMediaFactory.getTwitter().postMessage(strMessage); CSocialMediaFactory.getFacebook().postMessage(strMessage); intSeq = intTempSeq; break; case "id": objParser.next(); intTempSeq = objParser.getInt(); break; } } } } catch (Exception ex) { System.out.println(ex); } finally { try (Writer objWriter = Channels.newWriter(Channels.newChannel(objSocket.getOutputStream()), StandardCharsets.US_ASCII.name())) { objWriter.write(intSeq + ""); objWriter.flush(); } catch (IOException ex) { System.out.println(ex); } } } }