All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net_alchim31_livereload.LRProtocol Maven / Gradle / Ivy

package net_alchim31_livereload;

import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.Map;

import org.json.simple.JSONValue;

/**
 * @see http://feedback.livereload.com/knowledgebase/articles/86174-livereload-protocol
 * @author dwayne
 *
 */
public class LRProtocol {

  public String hello() {
    LinkedList protocols = new LinkedList();
    protocols.add("http://livereload.com/protocols/official-7");

    LinkedHashMap obj = new LinkedHashMap();
    obj.put("command","hello");
    obj.put("protocols", protocols);
    obj.put("serverName", "livereload-jvm");
    return JSONValue.toJSONString(obj);
  }
  
  public String alert(String msg) throws Exception {
    LinkedHashMap obj = new LinkedHashMap();
    obj.put("command","alert");
    obj.put("message", msg);
    return JSONValue.toJSONString(obj);
  }
  
  public String reload(String path) throws Exception {
    LinkedHashMap obj = new LinkedHashMap();
    obj.put("command","reload");
    obj.put("path", path);
    obj.put("liveCSS", true);
    return JSONValue.toJSONString(obj);
  }
  
  @SuppressWarnings("unchecked")
  public boolean isHello(String data) throws Exception {
    Object obj= JSONValue.parse(data);
    boolean back = obj instanceof Map;
    back = back && "hello".equals(((Map)obj).get("command"));
    return back;
  } 

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy