flex.data.assemblers
Interface Assembler

기존의 실장 Class의 Summary :
AbstractAssembler , HibernateAssembler

Public Interface Assembler

Data Management Services Assembler 를 실장하기 위한 1 개의 옵션으로서 이 Interface를 실장하는 Java Class를 기술하는 방법이 있습니다. 이 Interface를 실장하는 Class를 참조하는 Data Management Services 의 행선지를 정의하는 경우는, 행선지를 정의하기 위해서 sync-method, get-method 등의 XML 메소드 태그를 사용할 필요는 없습니다. 이 Interface를 직접 실장하는 것이 아니라, AbstractAssembler Class를 확장하는 것을 추천합니다. 향후의 제품 버젼으로 이 Interface를 확장할 가능성은 있습니다만, 코드를 변경하는 일 없이 계속 AbstractAssembler 를 확장할 수 있도록(듯이), 모든 노력을 실시해 갑니다.

관련 항목 :
AbstractAssembler , DataServiceTransaction

필드 Summary
static int APPEND_TO_FILL
          refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다.
static int DO_NOT_EXECUTE_FILL
          refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다.
static int EXECUTE_FILL
          refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다.
static int REMOVE_FROM_FILL
          refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다.
 
메소드 Summary
 void addItemToFill (List  fillParameters, int position, Map  identity)
          필 된 콜렉션에 클라이언트가 아이템을 추가하면(자) 불려 갑니다.
 boolean autoRefreshFill (List  fillParameters)
          이 메소드를 사용하면(자), Data Management Services 에 의한 fill 메소드의 갱신의 방법을 제어하는 경우에 도움이 됩니다.
 int count (List  countParameters)
          제공된 파라미터를 사용해, 지정된 쿠에리의 아이템의 수를 취득합니다.
 void createItem (Object  item)
          아이템을 작성합니다.
 void deleteItem (Object  previousVersion)
          이 어셈블러에 따라 행선지에 의해 Management되고 있는 아이템을 클라이언트 어플리케이션이 삭제했을 때에 불려 갑니다.
 Collection fill (List  fillParameters)
          이 메소드는, fill-method 태그를 사용해 Configuration 파일로 명시적으로 Configuration 되어 있지 않은 fill 메소드가 클라이언트에 의해 불려 가면(자), Data Management Service 에 의해 불려 갑니다.
 Object getItem (Map  identity)
          지정된 ID 의 MAP를 사용해 아이템을 취득합니다.
 List getItems (List  identityList)
          ID MAP가 있는 경우에, 아이템의 리스트를 돌려줍니다.
 int refreshFill (List  fillParameters, Object  item, boolean isCreate)
          fill 메소드가 자동 갱신되는 경우는, 아이템이 변경되는 (isCreate 파라미터가 가리키도록(듯이), 작성 또는 갱신된다) 여행에 이 메소드가 불려 갑니다.
 void removeItemFromFill (List  fillParameters, int position, Map  identity)
          필 된 콜렉션으로부터 클라이언트가 아이템을 삭제하면(자) 불려 갑니다.
 void updateItem (Object  newVersion, Object  previousVersion, List  changes)
          아이템을 갱신합니다.
 

필드의 상세

DO_NOT_EXECUTE_FILL

static final int DO_NOT_EXECUTE_FILL
refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다. DO_NOT_EXECUTE_FILL 는, 새롭게 갱신 또는 작성된 이 아이템에 대해 fill 메소드를 실행하지 않게 Data Management Services 에 통지합니다.

관련 항목 :
필드 정수치

EXECUTE_FILL

static final int EXECUTE_FILL
refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다. EXECUTE_FILL 는, 새롭게 갱신 또는 작성된 이 아이템에 대해 fill 메소드를 재차 실행하도록(듯이) Data Management Services 에 통지합니다.

관련 항목 :
필드 정수치

APPEND_TO_FILL

static final int APPEND_TO_FILL
refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다. APPEND_TO_FILL 는, 이 아이템이 콜렉션에 포함되지 않은 경우에, 이 필 된 콜렉션의 아이템세트에 추가하도록(듯이) Data Management Services 에 통지합니다.

관련 항목 :
필드 정수치

REMOVE_FROM_FILL

static final int REMOVE_FROM_FILL
refreshFill 메소드로부터의 반환값으로서 사용되는 정수입니다. REMOVE_FROM_FILL 는, 이 아이템이 콜렉션에 포함되는 경우에, 이 필 된 콜렉션의 아이템세트로부터 삭제하도록(듯이) Data Management Services 에 통지합니다.

관련 항목 :
필드 정수치
메소드의 상세

getItem

Object  getItem(Map  identity)
지정된 ID 의 MAP를 사용해 아이템을 취득합니다. ID 는, ID 프롭퍼티의 프롭퍼티명으로서 키와 함께, ID 프롭퍼티의 값으로 해서 값과 함께 포함됩니다.

파라미터 :
identity - 각 ID 프롭퍼티의 키 / 치의 페어가 포함되는 java.util.Map
반환값 :
이 ID 프롭퍼티에 대응하는 아이템, 또는 이 ID 의 아이템이 없는 경우는 null

getItems

List  getItems(List  identityList)
ID MAP가 있는 경우는, 아이템의 리스트를 돌려줍니다. 리스트에는, 유효한 아이템에 매핑 되지 않는 임의의 ID 의 null 엔Tree가 포함됩니다. 이것은, 아이템의 리스트를 취득하기 위해서 getItem 메소드를 반복해 호출할 필요가 있는 경우의 최적화입니다.

파라미터 :
identityList - 아이템의 리스트를 지정하는 java.util.Map 오브젝트의 리스트
반환값 :
지정된 ID 의 리스트에 대응하는 아이템의 리스트. 아이템이 발견되지 않는 경우는, 발견되지 않는 것을 나타내기 위해서(때문에) null 치를 리스트에 넣을 필요가 있습니다.

createItem

void createItem(Object  item)
아이템을 작성합니다. 많은 경우, 이러한 값이 클라이언트에 의해 제공되지 않는 경우, ID 프롭퍼티를 넣습니다. 이 조작으로 에러가 발생했을 경우는, 에러의 발생을 나타내기 위해서(때문에), 선택한 Exception를 슬로우 할 수 있습니다. Exception의 메세지는 클라이언트에 송신됩니다.

제공되는 아이템의 Java Class는, 클라이언트 어플리케이션에 의해 사용되는 ActionScript Class에 응해 다릅니다. Java 룰에 대한 ActionScript 는, 디폴트로, 클라이언트 오브젝트를 Java 오브젝트로 변환하기 위해서(때문에) 사용됩니다. 이 결과, 클라이언트 오브젝트가 동적 오브젝트의 경우, 또는 그 오브젝트에, Java Class에 매핑 되는 RemoteClass 앨리어스(alias)가 없는 경우는, 아이템 파라미터의 java.util.Map 가 작성됩니다. 어셈블러에 1 개의 특정의 Java Class의 인스턴스가 필요한 경우는, 행선지의 Configuration 으로 item-class 태그를 사용해, 어셈블러에 건네주기 전에 모든 java.util.Map 인스턴스를 변환하는 1 개의 Class를 지정할 수가 있습니다.

파라미터 :
item - 작성하는 아이템의 최초의 인스턴스

updateItem

void updateItem(Object  newVersion,
Object  previousVersion,
List  changes)
아이템을 갱신합니다. newVersion 는 항상 표시되어 아이템의 새로운 버젼이 포함됩니다. previousVersion 에는, 이 인스턴스의 정합성을 유지하기 위해서 필요한 임의 상태가 포함됩니다. 현시점에서는, 항상 완전하게 입력된 상태가 되어 있습니다. 다만, 향후는, 갱신중의 아이템의 정합성을 유지하기 위해서 필요한 아이템의 프롭퍼티만을 이 메소드에 선택적으로 포함할 예정입니다. 이것을 null 로 해, 낙관적 동시 실행의 검출을 무효로 할 수도 있습니다.

changes 배열에는, 변경된 프롭퍼티의 리스트가 포함됩니다. null 치는, 「몇개의 프롭퍼티가 변경된 가능성이 있다」 것이라고 해석해 주세요. 독자적인 프롭퍼티를 가지는 프롭퍼티가 있는 경우는, 최상정도 레벨의 프롭퍼티명만이 포함됩니다.

previousVersion 가, 아이템의 현재의 데이타베이스 복사와 경합 하는 경우는, 경합을 나타내기 위해서(때문에), flex.data.DataSyncException 를 슬로우 할 수 있습니다. 이 경우는, 데이타베이스의 현재의 버젼의 아이템을 serverVersion 파라미터로서 제공할 필요가 있습니다. 이 결과, 클라이언트는 경합을 해결해, 경합 하지 않는 변경을 재차 송신하는 일도, 서버의 버젼에 되돌릴 수도 있습니다. 메소드로, 이 갱신의 처리시에 일반적인 장해가 발생한 것을 나타내는 임의의 런타임 Exception를 슬로우 할 수도 있습니다.

updateItem 메소드는, 클라이언트로부터 송신된 변경을 수정해, 그 외의 프롭퍼티를 추가할 수도 있습니다. 이 때문에는, newVersion 로 프롭퍼티를 갱신해, 그 외의 프롭퍼티명을 changes 프롭퍼티에 추가합니다.

제공되는 아이템의 Java Class는, 클라이언트 어플리케이션에 의해 사용되는 ActionScript Class에 응해 다릅니다. Java 룰에 대한 ActionScript 는, 디폴트로, 클라이언트 오브젝트를 Java 오브젝트로 변환하기 위해서(때문에) 사용됩니다. 이 결과, 클라이언트 오브젝트가 동적 오브젝트의 경우, 또는 그 오브젝트에, Java Class에 매핑 되는 RemoteClass 앨리어스(alias)가 없는 경우는, 아이템 파라미터의 java.util.Map 가 작성됩니다. 어셈블러에 1 개의 특정의 Java Class의 인스턴스가 필요한 경우는, 행선지의 Configuration 으로 item-class 태그를 사용해, 어셈블러에 건네주기 전에 모든 java.util.Map 인스턴스를 변환하는 1 개의 Class를 지정할 수가 있습니다.

파라미터 :
newVersion - 갱신에 사용하는 아이템의 새로운 버젼
previousVersion - 이러한 변경을 실시하기 전의 아이템의 원의 버젼 (경합의 검출에 사용)
changes - 변경된 프롭퍼티명의 리스트

deleteItem

void deleteItem(Object  previousVersion)
이 어셈블러에 따라 행선지에 의해 Management되고 있는 아이템을 클라이언트 어플리케이션이 삭제했을 때에 불려 갑니다. 이 경우, deleteItem 메소드는, 클라이언트로 삭제하는 아이템의 버젼을 사용해 불려 갑니다. 이 메소드는 경합 검출을 실시해, 이 삭제 이벤트가 스케줄 된 후로 아이템이 변경되어 있지 않은 것을 확인할 수 있습니다. 이 경우, deleteItem 메소드는 flex.data.DataSyncException 를 슬로우 할 수 있습니다. 여기서, 현재의 버젼의 아이템을 serverVersion 파라미터로서 제공할 필요가 있습니다.

이 메소드는, 일반적인 에러를 클라이언트에 돌려주는 것을 나타내기 위해서(때문에), 런타임 Exception를 슬로우 할 수도 있습니다.

파라미터 :
previousVersion - 클라이언트가 삭제하려고 하고 있는 클라이언트상의 아이템의 원의 버젼

fill

Collection  fill(List  fillParameters)
이 메소드는, fill-method 태그를 사용해 Configuration 파일로 명시적으로 Configuration 되어 있지 않은 fill 메소드가 클라이언트에 의해 불려 가면(자), Data Management Service 에 의해 불려 갑니다. 특정의 파라미터 세트에 대해 일치하는 fill 메소드의 정의가 있는 경우는, 그 메소드가, 이 메소드 대신에 불려 갑니다.

일반적으로, fill 메소드는, 서버상에서 실행된 데이타베이스 쿠에리에 대응합니다. fill 메소드의 결과는, 여기서 제공되는 파라미터인 만큼 기초를 두어 정해져, 같은 파라미터 세트에 대해 다른 결과가 돌려주어질 것은 없습니다. 이것은, 같은 fill 파라미터 세트를 사용하는 클라이언트의 결과를 동일하게 하도록(듯이) Data Management Services 가 설계되고 있기 때문입니다.

이 목적으로 필요한 fill 메소드의 수로 형태에 응해, 최초의 파라미터를 필의 이름으로서 사용해, 그 이외를, 처리하고 있는 특정의 필을 간단하게 식별하기 위한 파라미터로서 사용하는 것을 추천합니다.

파라미터 :
fillParameters - 클라이언트의 DataService.fill 메소드에 제공되는 fill 파라미터의 리스트. 최초의 파라미터, ArrayCollection 가 이 리스트에 포함되지 않는 것에 주의해 주세요.
반환값 :
클라이언트에 의해 Management되는 아이템의 리스트가 포함되는 콜렉션. 이 콜렉션에는, 모든 것이 유효한 ID 프롭퍼티를 가지는 인스턴스가 포함되어 있을 필요가 있습니다. 또, 같은 ID 의 인스턴스가 2 개 이상 포함되지 않게 합니다.

count

int count(List  countParameters)
제공된 파라미터를 사용해, 지정된 쿠에리의 아이템의 수를 취득합니다. 이 메소드는, 클라이언트 코드가 DataService Class에서 대응하는 count 메소드를 사용하고 있는 경우에게만 필요하게 됩니다.

파라미터 :
countParameters - 클라이언트의 호출에 의해 제공되는 count 메소드의 파라미터의 리스트
반환값 :
countParameters 에 의해 지정되는 콜렉션내의 아이템의 수

addItemToFill

void addItemToFill(List  fillParameters,
int position,
Map  identity)
필 된 콜렉션에 클라이언트가 아이템을 추가하면(자) 불려 갑니다.

이 메소드를 사용해, 클라이언트 어플리케이션에 의해 필 된 콜렉션에 대한 변경을 추적할 수 있습니다. 필의 결과는, 통상은 서버로 실행된 쿠에리에 의해 보관 유지되므로, 클라이언트에 의한 변경은 일시적인 것입니다. 또, 서버가 쿠에리의 재차의 실행에 근거해 필을 갱신할 수 있는 경우는, 치환됩니다. 다만, 경우에 따라서는, 필의 자동 갱신을 오프로 해, 필 된 콜렉션에 대해서 클라이언트가 간 변경을 추적하는 일이 있습니다. 특정의 필에 대해 돌려주어진 아이템의 리스트가, 오브젝트 ID 의 명시적인 리스트에 의해 유지되고 있는 경우에는, 이 조작을 실시하는 일이 있습니다.

경고 : 일관성이 있는 아이템의 순서를 클라이언트로 보관 유지할 필요가 있는 경우는, 이 기술은 사용하지 말아 주세요. 2 개의 클라이언트가, 다른 아이템을 거의 동시에 같은 위치에 삽입하면(자), 각 클라이언트는 다른 순서로 삽입을 처리하므로, 2 개의 아이템이 바뀌는 일이 있습니다. 순서가 중요하지 않은 경우나, 클라이언트가 리스트를 소트 하는 경우는, 이 정도치를 무시해, 일관성이 있는 리스트를 보관 유지할 수 있습니다.

파라미터 :
fillParameters - 클라이언트가 변경한 필을 식별하는 파라미터의 리스트
position - 새로운 아이템이 추가된 장소의 Index
identity - 지정된 위치에 추가된 아이템의 ID

removeItemFromFill

void removeItemFromFill(List  fillParameters,
int position,
Map  identity)
필 된 콜렉션으로부터 클라이언트가 아이템을 삭제하면(자) 불려 갑니다. addItemToFill 와 같게, 이 메소드를 사용해, 특정의 필 된 콜렉션에 대해서 클라이언트가 간 변경을 감시해, 기록할 수가 있습니다.

파라미터 :
fillParameters - 클라이언트가 변경한 필을 식별하는 파라미터의 리스트
position - 새로운 아이템이 삭제된 장소의 Index
identity - 지정된 위치에서 삭제된 아이템의 ID

autoRefreshFill

boolean autoRefreshFill(List  fillParameters)
이 메소드를 사용하면(자), Data Management Services 에 의한 fill 메소드의 갱신의 방법을 제어하는 경우에 도움이 됩니다. 이 메소드가 특정의 fill 파라미터세트에 대해 true 를 돌려주는 경우는, 이 fill 메소드가 자동 갱신되는 것을 나타냅니다. 이 모드에서는, Data Management Service 는, 적절한 형태의 아이템이 작성 또는 갱신될 때마다 refreshFill 메소드를 호출합니다. 그 메소드는, 이 아이템을 기존의 리스트에 추가할지 어떨지, fill 메소드를 재차 실행할지 어떨지, 기존의 리스트로부터 아이템을 삭제할지 어떨지, 또는 아무것도 실행하지 않는가를 결정합니다. 이 메소드가 항상 false 를 돌려주는 경우는, refreshFill 메소드는 불려 가지 않습니다. 이 경우는, DataServiceTransaction.refreshFill 메소드를 사용해 수동으로 필을 재차 실행하는 일도, 클라이언트에 의한 필의 변경으로, 어셈블러나 다른 클라이언트를 갱신할 수도 있습니다.

파라미터 :
fillParameters - 1 개(살) 또는 복수의 클라이언트에 의해 그 시점에서도 Management되고 있는 Management 콜렉션을 작성한 fill 메소드에 대한 클라이언트 사이드 파라미터
반환값 :
fill 파라미터에 의해 식별되는 필을 자동 갱신하는 경우는 ture, 이 필의 자동 갱신이 오프가 되어 있는 경우는 false

refreshFill

int refreshFill(List  fillParameters,
Object  item,
boolean isCreate)
fill 메소드가 자동 갱신되는 경우는, 아이템이 변경되는 (isCreate 파라미터가 가리키도록(듯이), 작성 또는 갱신된다) 여행에 이 메소드가 불려 갑니다. 필의 내용을 변경하지 않는 경우는 DO_NOT_EXECUTE_FILL, Data Service로 fill 메소드를 호출하는 경우는 EXECUTE_FILL, 이 변경된 아이템을 전회의 fill 의 호출로 돌려주어진 리스트의 마지막에 추가하는 경우는 APPEND_TO_FILL 를 돌려줍니다.

파라미터 :
fillParameters - 이 서버에 접속된 1 개(살) 또는 복수의 클라이언트에 의해 이 시점에서도 액티브하게 Management되고 있는 fill 메소드를 식별하는 파라미터
item - 최근 위탁된 트랜잭션(transaction)로 작성 또는 갱신되고 있는 아이템
isCreate - 이 아이템이 작성된 조작의 경우는 true, 갱신된 조작의 경우는 false
반환값 :
DO_NOT_EXECUTE_FILL - 아무것도 실행하지 않는다. EXECUTE_FILL - fill 메소드를 재차 실행해, 새로운 리스트를 취득한다. APPEND_TO_FILL - 기존의 리스트에 단지 추가한다. REMOVE_FROM_FILL - 순차 순서로부터 삭제한다.


Copyright © 2006 Adobe Systems Inc. All Rights Reserved.