Package ch.ralscha.extdirectspring.provider

Source Code of ch.ralscha.extdirectspring.provider.SseProvider

/**
* Copyright 2010-2014 Ralph Schaer <ralphschaer@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ch.ralscha.extdirectspring.provider;

import static org.fest.assertions.api.Assertions.assertThat;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;

import ch.ralscha.extdirectspring.annotation.ExtDirectMethod;
import ch.ralscha.extdirectspring.annotation.ExtDirectMethodType;
import ch.ralscha.extdirectspring.bean.SSEvent;
import ch.ralscha.extdirectspring.controller.SSEWriter;

@Service
public class SseProvider {

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, event = "message1",
      group = "group2")
  public String message1() {
    Date now = new Date();
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd 'at' hh:mm:ss");
    return "Successfully polled at: " + formatter.format(now);
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group2",
      entryClass = String.class)
  public SSEvent message2(HttpServletResponse response, HttpServletRequest request,
      HttpSession session, Locale locale) {
    assertThat(response).isNotNull();
    assertThat(request).isNotNull();
    assertThat(session).isNotNull();
    assertThat(locale).isEqualTo(Locale.ENGLISH);

    Date now = new Date();
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd 'at' hh:mm:ss");

    SSEvent event = new SSEvent();
    event.setRetry(200000);
    event.setData("Successfully polled at: " + formatter.format(now));
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group4")
  public String message3(Locale locale, @RequestParam(value = "id") int id) {
    assertThat(locale).isEqualTo(Locale.ENGLISH);
    return "Result: " + id;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, synchronizeOnSession = true)
  public int message4(@RequestParam(value = "id", defaultValue = "1") int id,
      HttpServletRequest request) {
    assertThat(request).isNotNull();
    return id * 2;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group3")
  public Integer message5(@RequestParam(value = "id", required = false) Integer id,
      String dummy) {
    assertThat(dummy).isNull();
    if (id != null) {
      return id * 2;
    }
    return null;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group2")
  public String message6() {
    Date now = new Date();
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd 'at' hh:mm:ss");
    return "Successfully polled at: " + formatter.format(now);
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public String message13(SSEWriter writer) throws IOException {
    SSEvent event = new SSEvent();
    event.setComment("first comment");
    event.setEvent("event");
    event.setId("1");
    event.setRetry(1000);
    event.setData("one");

    writer.write(event);

    event = new SSEvent();
    event.setComment("second comment");
    event.setEvent("event");
    event.setId("2");
    event.setRetry(1000);
    event.setData("two");

    writer.write(event);
    writer.write((String) null);
    writer.write("third");
    writer.write((String) null);
    writer.write("fourth");

    return "fifth";
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent message14(SSEWriter writer) throws IOException {
    writer.write(1);
    writer.write(2);

    SSEvent event = new SSEvent();
    event.setData(3);
    event.setRetry(0);
    event.setComment("the last message");
    event.setId("123");
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public void message15(SSEWriter writer) throws IOException {
    writer.write("A");
    writer.write("B");

    SSEvent event = new SSEvent();
    event.setData("C");
    event.setRetry(0);
    writer.write(event);

    event = new SSEvent();
    event.setRetry(10);
    writer.write(event);
  }

  /* Request Header */

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageRequestHeader1(
      @RequestParam(value = "id", required = false) Integer id, String dummy,
      @RequestHeader String header) {
    SSEvent event = new SSEvent();
    event.setId("1");
    event.setData(id + ";" + dummy + ";" + header);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5",
      synchronizeOnSession = true)
  public SSEvent messageRequestHeader2(@RequestParam Integer id, @RequestHeader(
      value = "anotherName", required = true) String header) {
    SSEvent event = new SSEvent();
    event.setData(id + ";" + header);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageRequestHeader3(@RequestHeader(value = "anotherName",
      defaultValue = "default") String header) {
    SSEvent event = new SSEvent();
    event.setEvent("messageRequestHeader3");
    event.setData(header);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageRequestHeader4(@RequestHeader(defaultValue = "default",
      required = false) String header) {
    SSEvent event = new SSEvent();
    event.setEvent("messageRequestHeader4");
    event.setComment("comment of message " + header);
    event.setData(header);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageRequestHeader5(@RequestHeader(defaultValue = "default1",
      required = false) String header1, @RequestParam(value = "id",
      required = false) Integer id, @RequestHeader(defaultValue = "default2",
      required = false) String header2,
      @RequestHeader(value = "last") String header3) {

    SSEvent event = new SSEvent();
    event.setEvent("messageRequestHeader5");
    event.setComment("comment of message " + id);
    event.setId("122");
    event.setData(id + ";" + header1 + ";" + header2 + ";" + header3);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageRequestHeader6(@RequestHeader Integer intHeader,
      @RequestHeader Boolean booleanHeader) {
    SSEvent event = new SSEvent();
    event.setComment("comment");
    event.setEvent("messageRequestHeader6");
    event.setId("123");
    event.setRetry(10000);
    event.setData(intHeader + ";" + booleanHeader);
    return event;
  }

  /* Cookie Value */
  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageCookieValue1(
      @RequestParam(value = "id", required = false) Integer id, String dummy,
      @CookieValue String cookie) {
    SSEvent event = new SSEvent();
    event.setId("1");
    event.setData(id + ";" + dummy + ";" + cookie);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5",
      synchronizeOnSession = true)
  public SSEvent messageCookieValue2(@RequestParam Integer id, @CookieValue(
      value = "anotherName", required = true) String cookie) {
    SSEvent event = new SSEvent();
    event.setData(id + ";" + cookie);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageCookieValue3(@CookieValue(value = "anotherName",
      defaultValue = "default") String cookie) {
    SSEvent event = new SSEvent();
    event.setEvent("messageCookieValue3");
    event.setData(cookie);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageCookieValue4(@CookieValue(defaultValue = "default",
      required = false) String cookie) {
    SSEvent event = new SSEvent();
    event.setEvent("messageCookieValue4");
    event.setComment("comment of message " + cookie);
    event.setData(cookie);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageCookieValue5(@RequestHeader String requestHeader, @CookieValue(
      defaultValue = "default1", required = false) String cookie1, @RequestParam(
      value = "id", required = false) Integer id, @CookieValue(
      defaultValue = "default2", required = false) String cookie2, @CookieValue(
      value = "last") String cookie3) {

    SSEvent event = new SSEvent();
    event.setEvent("messageCookieValue5");
    event.setComment("comment of message " + id);
    event.setId("122");
    event.setData(requestHeader + ";" + id + ";" + cookie1 + ";" + cookie2 + ";"
        + cookie3);
    return event;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.SSE, group = "group5")
  public SSEvent messageCookieValue6(@RequestHeader(required = false,
      defaultValue = "theHeader") String requestHeader,
      @CookieValue Integer intCookie, @CookieValue Boolean booleanCookie) {
    SSEvent event = new SSEvent();
    event.setComment("comment");
    event.setEvent("messageCookieValue6");
    event.setId("123");
    event.setRetry(10000);
    event.setData(requestHeader + ";" + intCookie + ";" + booleanCookie);
    return event;
  }

}
TOP

Related Classes of ch.ralscha.extdirectspring.provider.SseProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.