Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## tle.framework
Class TLEController

    java.lang.Object
      tle.framework.component.impl.ComponentBase
          tle.framework.TLEController

All Implemented Interfaces:
  Component, ComponentMBean, TLEControllerMBean

public class TLEController
extends ComponentBase
implements TLEControllerMBean

클라이언트의 요청을 네 가지 코어 컴포넌트를 사용하여 알맞게 처리해주는 컨트롤러이다.

TLEController도 틀 프레임워크에 등록되는 컴포넌트이다.

Since:
  2.0
Author:
  최범균

Field Summary

Fields inherited from class tle.framework.component.impl.ComponentBase
`componentState, config`

Constructor Summary
`TLEController()`

Method Summary
`protected void` | `closing()` 참조하고 있던 4개의 코어 컴포넌트에 대한 레퍼런스를 제거한다.
`(package private) AAManager` | `getAAManager()` aaManager를 리턴한다.
`java.lang.String` | `getAAmanagerID()` AAManager 컴포넌트의 아이디를 구한다.
`java.lang.String` | `getDescription()` 컴포넌트 설명을 리턴한다.
`java.lang.String` | `getID()` "TLEController"를 리턴한다.
`java.lang.String` | `getRequestAnalyzerID()` RequestAnalyzer 컴포넌트의 아이디를 구한다.
`java.lang.String` | `getRequestProcessorID()` RequestProcessor 컴포넌트의 아이디를 구한다.
`java.lang.String` | `getUICreatorID()` UICreator 컴포넌트의 아이디를 구한다.
`(package private) void` | `processingRequest(HttpServletRequest request, HttpServletResponse response)` 코어 컴포넌트를 사용하여 클라이언트의 요청을 처리한다.
`(package private) void` | `setCoreComponents(RequestAnalyzer ra, RequestProcessor rp, AAManager aaManager, UICreator uiCreator)` 4개의 코어 컴포넌트를 명시한다.

Methods inherited from class tle.framework.component.impl.ComponentBase
`close, getState, init, initing, isClosed, isClosing, isCreated, isErrorOccured, isInited, isIniting, isResuming, isRunning, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, resuming, start, starting, stop, stopping, suspend, suspending`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface tle.framework.component.ComponentMBean
`getState`

Constructor Detail

### TLEController

    public TLEController()

Method Detail

### getAAManager

    AAManager getAAManager()

  aaManager를 리턴한다.

  Returns:

### getRequestAnalyzerID

    public java.lang.String getRequestAnalyzerID()

  Description copied from interface: `TLEControllerMBean`
  RequestAnalyzer 컴포넌트의 아이디를 구한다.

  Specified by:
    `getRequestAnalyzerID` in interface `TLEControllerMBean`
  Returns:
  See Also:
    `tle.framework.TLEControllerMBean#getRequestAnalyzerName()`

### getRequestProcessorID

    public java.lang.String getRequestProcessorID()

  Description copied from interface: `TLEControllerMBean`
  RequestProcessor 컴포넌트의 아이디를 구한다.

  Specified by:
    `getRequestProcessorID` in interface `TLEControllerMBean`
  Returns:
  See Also:
    `tle.framework.TLEControllerMBean#getRequestProcessorName()`

### getAAmanagerID

    public java.lang.String getAAmanagerID()

  Description copied from interface: `TLEControllerMBean`
  AAManager 컴포넌트의 아이디를 구한다.

  Specified by:
    `getAAmanagerID` in interface `TLEControllerMBean`
  Returns:
  See Also:
    `tle.framework.TLEControllerMBean#getAAmanagerName()`

### getUICreatorID

    public java.lang.String getUICreatorID()

  Description copied from interface: `TLEControllerMBean`
  UICreator 컴포넌트의 아이디를 구한다.

  Specified by:
    `getUICreatorID` in interface `TLEControllerMBean`
  Returns:
  See Also:
    `tle.framework.TLEControllerMBean#getUICreatorName()`

### setCoreComponents

    void setCoreComponents(RequestAnalyzer ra,
                           RequestProcessor rp,
                           AAManager aaManager,
                           UICreator uiCreator)

  4개의 코어 컴포넌트를 명시한다.

  Parameters:
    `ra` -
    `rp` -
    `aaManager` -
    `uiCreator` -
  Throws:
    `java.lang.IllegalArgumentException` - 4개의 핵심 컴포넌트 중 하나라도 명시하지 않았을 경우에 발생

### closing

    protected void closing()
                    throws ComponentException

  참조하고 있던 4개의 코어 컴포넌트에 대한 레퍼런스를 제거한다.

  Overrides:
    `closing` in class `ComponentBase`
  Throws:
    `ComponentException`
  See Also:
    `ComponentBase.closing()`

### getID

    public java.lang.String getID()

  "TLEController"를 리턴한다.

  Specified by:
    `getID` in interface `ComponentMBean`
  Overrides:
    `getID` in class `ComponentBase`
  See Also:
    `Component.getID()`

### getDescription

    public java.lang.String getDescription()

  Description copied from interface: `ComponentMBean`
  컴포넌트 설명을 리턴한다.

  Specified by:
    `getDescription` in interface `ComponentMBean`
  Overrides:
    `getDescription` in class `ComponentBase`
  See Also:
    `ComponentMBean.getDescription()`

### processingRequest

    void processingRequest(HttpServletRequest request,
                           HttpServletResponse response)
                     throws ComponentException,
                            RequestAnalyzerException

  코어 컴포넌트를 사용하여 클라이언트의 요청을 처리한다.

  처리 과정은 다음과 같다.

  1. RequestAnalyzer를 사용하여 클라이언트의 요청정보(RequestInfo)를 구한다.
  2. AAManager를 사용하여 현재 세션 사용자(User)를 구한다.
  3. AAManager를 사용하여 요청에 해당하는 서비스(Service)를 구한다.
  4. 서비스가 인증을 필요로 하는 경우
     - 로그인하지 않은 경우 로그인 폼으로 이동한다.
     - 로그인한 경우 서비스를 사용할 권한이 있는 지 검사한다.
     - 서비스를 사용할 권한이 없으면 권한없음 페이지를 보여준다.
  5. 서비스를 사용할 수 있다면 RequestProcessor를 사용해서 요청을 처리한다.
  6. 요청 처리한 결과(Result)를 UICreator에 전달해서 뷰를 생성한다.
  7. 만약 결과에 에러가 발생했다고 표시되어 있다면 에러 뷰를 생성한다.

  Parameters:
    `request` -
    `response` -
  Throws:
    `RequestAnalyzerException`
    `ComponentException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD