Class EmailLink

java.lang.Object
com.easydesk.notification.util.EmailLink

public class EmailLink extends Object
메일 본문 안에 들어가는 URL(또는 <a href>) 을 만드는 fluent builder.

예전에는 Turbine pull tool(InitableRecyclable)로 pool 에서 빌려 썼지만, 지금은 평범한 객체이고 EmailLinkFactory 가 메일 하나(수신자 하나)마다 새로 만들어 준다. 따라서 thread-safe 하지 않다 - 한 번의 render 안에서만 쓸 것.

scheme/port/scriptName 은 더 이상 Module 에서 읽지 않고 NotificationMailProperties.Link 설정을 쓴다 (현재 Module 에 해당 getter 가 없다). 또한 Turbine 의 path-info 방식(/template/ViewItem.html)은 그대로 유지했다 - 웹쪽 URL 규칙이 바뀌었다면 setPage(String, Module) 만 고치면 된다.

Author:
Youncho Cho
  • Field Details

  • Constructor Details

  • Method Details

    • getModule

      public Module getModule()
    • setModule

      public EmailLink setModule(Module module)
    • refresh

      public void refresh()
      다음 link 를 만들기 위해 상태를 비운다 (module 은 유지). toString() 이 끝나면 자동으로 호출된다.
    • addQueryData

      public EmailLink addQueryData(String name, String value)
    • addQueryData

      public EmailLink addQueryData(String name, Object value)
    • setQueryData

      public EmailLink setQueryData(String key, Object value)
    • removeQueryData

      public void removeQueryData(String name)
    • addPathInfo

      public EmailLink addPathInfo(String name, String value)
    • addPathInfo

      public EmailLink addPathInfo(String name, Object value)
    • addPathInfo

      public EmailLink addPathInfo(String name, double value)
    • addPathInfo

      public EmailLink addPathInfo(String name, int value)
    • addPathInfo

      public EmailLink addPathInfo(String name, long value)
    • addPathInfo

      public EmailLink addPathInfo(String name, boolean value)
    • setPathInfo

      public EmailLink setPathInfo(String key, String value)
    • removePathInfo

      public void removePathInfo()
    • removePathInfo

      public void removePathInfo(String name)
    • hasPathInfo

      public boolean hasPathInfo()
    • hasQueryData

      public boolean hasQueryData()
    • setLabel

      public EmailLink setLabel(String label)
    • setAttributeText

      public EmailLink setAttributeText(String attributeText)
    • omitModule

      public EmailLink omitModule()
      module 정보(cm 파라미터)를 URL 에 붙이지 않는다.
    • setRelative

      public EmailLink setRelative(boolean relative)
      true 면 scheme://host:port 를 생략한 상대 경로로 만든다.
    • setPage

      public EmailLink setPage(String template)
    • setPage

      public EmailLink setPage(Module module)
      예전에는 module 종류(category/itemBank/userGroup)에 따라 SelectModule/ItemBank/GroupHome 으로 갈렸지만 현재 Module 에는 그 구분 메소드가 없다. 일단 index.html 로 보낸다 - 필요하면 여기서 분기할 것.
    • setPage

      public EmailLink setPage(String template, Module module)
    • setAction

      public EmailLink setAction(String action)
    • getItemIdLink

      public EmailLink getItemIdLink(Item item) throws Exception
      item 의 상세 화면으로 가는 link
      Throws:
      Exception
    • getServerName

      public String getServerName()
    • getServerPort

      public int getServerPort()
    • getServerScheme

      public String getServerScheme()
    • getScriptName

      public String getScriptName()
    • toString

      public String toString()
      label 이 있으면 <a href> HTML, 없으면 URL 문자열. 호출 후 상태는 refresh() 된다.
      Overrides:
      toString in class Object
    • getUrl

      public String getUrl()
      템플릿에서 ${link.url} 로 쓰기 위한 getter (HTML 이 아닌 순수 URL).