Package com.altibase.document.api
Class AltibaseDocument
java.lang.Object
org.bson.Document
com.altibase.document.api.AltibaseDocument
- All Implemented Interfaces:
Serializable,Map<String,,Object> org.bson.conversions.Bson
public class AltibaseDocument
extends org.bson.Document
Altibase JSON 컬렉션의 문서를 표현하는 핵심 클래스이다.
이 클래스는 MongoDB 드라이버의 검증된 Document 클래스를 상속하여,
강력한 JSON 처리 기능을 재사용한다. 여기에 Altibase 데이터베이스의 특성에 맞춰
명시적인 **키(Key) 관리 기능**과 **타입 안전성(Type Safety)**을 확장하여 제공한다.
주요 설계 특징
- 기능 재사용:
Document를 상속하여 JSON 파싱, 직렬화, 데이터 조작의 안정성을 보장한다. - 키(Key) 정보 분리: 문서의 내용과 별개로 키(Key)의 이름, 타입, 값을 독립적으로 관리하여 명확성과 효율성을 높인다.
- 타입 안전성: 키 값 설정 시 엄격한 타입 검사를 수행하여 데이터베이스 오류를 사전에 방지한다.
생성 방법
parse(String): 키 정보 없이 JSON 내용만으로 문서를 생성한다. (필터, 정렬 조건 등에 사용)AltibaseCollection.createDocument(String): 컬렉션의 메타데이터를 포함한 문서를 생성한다.AltibaseCollection.createDocument(Object, String): 키와 내용을 함께 지정하여 즉시 삽입 가능한 문서를 생성한다.
- Since:
- 1.0
- See Also:
-
AltibaseCollectionDocument- Serialized Form
-
Nested Class Summary
-
Field Summary
Fields inherited from interface org.bson.conversions.Bson
DEFAULT_CODEC_REGISTRY -
Constructor Summary
ConstructorsConstructorDescription키 메타데이터가 없는 빈 문서를 생성한다.AltibaseDocument(String aKey, Object aValue) 키 메타데이터가 없는 문서를 키-값 쌍으로 생성한다. -
Method Summary
Modifier and TypeMethodDescriptionstatic AltibaseDocumentcreateFromJson(String aJson, String aKeyFieldName, Class<?> aKeyType) 프레임워크 내부용 팩토리 메서드로, JSON 문자열과 키 메타데이터로부터AltibaseDocument를 생성한다.static AltibaseDocumentcreateWithKeyMetadata(String aKeyFieldName, Class<?> aKeyType) 키 메타데이터를 가진 빈AltibaseDocument인스턴스를 생성한다.static AltibaseDocumentfromDocument(org.bson.Document aDocument) 기존Document객체로부터 키 메타데이터가 없는AltibaseDocument인스턴스를 생성한다.키 값을Long타입으로 안전하게 반환한다.키 값을String타입으로 안전하게 반환한다문서 생성 시각을 반환한다.문서를 생성한 사용자 ID를 반환한다.키 값을Integer타입으로 안전하게 반환한다.문서의 키 필드 이름을 반환한다.Class<?>문서의 키 타입을 반환한다.설정된 문서의 키 값을 반환한다.문서 최종 수정 시각을 반환한다.문서를 최종 수정한 사용자 ID를 반환한다.키 값을Short타입으로 안전하게 반환한다.키 값을String타입으로 안전하게 반환한다.static AltibaseDocumentJSON 문자열로부터 키 메타데이터가 없는AltibaseDocument인스턴스를 생성한다.static AltibaseDocumentparseFromRestResponse(String aRestResponseJson) REST API 응답 JSON으로부터AltibaseDocument를 생성한다.voidsetCreated(Timestamp aCreated) 문서 생성 시각을 설정한다.voidsetCreatedBy(String aCreatedBy) 문서를 생성한 사용자 ID를 설정한다.voidsetKeyFieldName(String aKeyFieldName) 문서의 키 필드 이름을 설정한다.voidsetKeyType(Class<?> aKeyType) 문서의 키 타입을 설정한다.voidsetKeyValue(Object aKeyValue) 문서의 키 값을 설정한다.voidsetLastModified(Timestamp aLastModified) 문서 최종 수정 시각을 설정한다.voidsetLastModifiedBy(String aLastModifiedBy) 문서를 최종 수정한 사용자 ID를 설정한다.toString()문서의 상세 정보를 문자열로 반환한다.Methods inherited from class org.bson.Document
append, clear, containsKey, containsValue, entrySet, equals, get, get, get, getBoolean, getBoolean, getDate, getDouble, getEmbedded, getEmbedded, getInteger, getInteger, getList, getList, getLong, getObjectId, getString, hashCode, isEmpty, keySet, parse, put, putAll, remove, size, toBsonDocument, toJson, toJson, toJson, toJson, valuesMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.bson.conversions.Bson
toBsonDocumentMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Constructor Details
-
AltibaseDocument
public AltibaseDocument()키 메타데이터가 없는 빈 문서를 생성한다. 주로 필터나 정렬 조건을 동적으로 구성할 때 사용된다. -
AltibaseDocument
키 메타데이터가 없는 문서를 키-값 쌍으로 생성한다.Document(String, Object)와 동일한 기능을 제공한다.- Parameters:
aKey- 초기 키aValue- 초기 값
-
-
Method Details
-
fromDocument
기존Document객체로부터 키 메타데이터가 없는AltibaseDocument인스턴스를 생성한다.이 정적 팩토리 메서드는 이미 생성된 Document 객체를 AltibaseDocument로 변환할 때 유용하다.
- Parameters:
aDocument- 변환할 원본Document객체- Returns:
- 내용이 복사된 새로운
AltibaseDocument인스턴스
-
createWithKeyMetadata
키 메타데이터를 가진 빈AltibaseDocument인스턴스를 생성한다.이 정적 팩토리 메서드는 프레임워크 내부나 고급 사용자가 키 정보를 포함한 문서를 명시적으로 생성할 때 사용한다. 일반적으로는
AltibaseCollection.createDocument(String)를 통해 문서를 생성하는 것이 권장된다.- Parameters:
aKeyFieldName- 키 필드의 이름aKeyType- 키 필드의 자바 타입- Returns:
- 키 메타데이터가 설정된 새로운
AltibaseDocument인스턴스
-
parse
JSON 문자열로부터 키 메타데이터가 없는AltibaseDocument인스턴스를 생성한다.이 정적 팩토리 메서드는 조회 조건 필터, 정렬 명세 등 순수하게 JSON 데이터 구조만 필요한 경우에 유용하다.
- Parameters:
aJson- 파싱할 JSON 형식의 문자열- Returns:
- JSON 내용이 채워진 새로운
AltibaseDocument인스턴스 - Throws:
AltibaseCollectionException- JSON 파싱에 실패할 경우
-
createFromJson
public static AltibaseDocument createFromJson(String aJson, String aKeyFieldName, Class<?> aKeyType) 프레임워크 내부용 팩토리 메서드로, JSON 문자열과 키 메타데이터로부터AltibaseDocument를 생성한다.- Parameters:
aJson- 파싱할 JSON 형식의 문자열aKeyFieldName- 키 필드명 (지정하지 않으려면 null)aKeyType- 키 타입 (지정하지 않으려면 null)- Returns:
- JSON 내용과 키 메타데이터가 설정된 새로운
AltibaseDocument인스턴스 - Throws:
AltibaseCollectionException- JSON 파싱에 실패할 경우
-
parseFromRestResponse
REST API 응답 JSON으로부터AltibaseDocument를 생성한다.REST API 응답 구조(
key,keyType,keyFieldName,document등)를 인식하여 키 메타데이터와 함께 문서를 생성한다.- Parameters:
aRestResponseJson- REST API 응답 JSON 문자열- Returns:
- 키 메타데이터가 설정된
AltibaseDocument인스턴스 - Throws:
AltibaseCollectionException- JSON 파싱 실패 또는 유효하지 않은 응답 형식
-
getKeyValue
설정된 문서의 키 값을 반환한다.- Returns:
- 키 값 객체. 키가 설정되지 않았다면
null을 반환한다.
-
setKeyFieldName
문서의 키 필드 이름을 설정한다.- Parameters:
aKeyFieldName- 키 필드 이름
-
getKeyFieldName
문서의 키 필드 이름을 반환한다.- Returns:
- 키 필드 이름
-
setKeyType
문서의 키 타입을 설정한다.- Parameters:
aKeyType- 키의 자바Class객체
-
getKeyType
문서의 키 타입을 반환한다.- Returns:
- 키의 자바
Class객체
-
getIntegerKey
키 값을Integer타입으로 안전하게 반환한다.- Returns:
Integer타입의 키 값- Throws:
AltibaseCollectionException- 키 타입이Integer가 아닐 경우
-
getSmallintKey
키 값을Short타입으로 안전하게 반환한다.- Returns:
Short타입의 키 값- Throws:
AltibaseCollectionException- 키 타입이Short가 아닐 경우
-
getVarcharKey
키 값을String타입으로 안전하게 반환한다.- Returns:
String타입의 키 값- Throws:
AltibaseCollectionException- 키 타입이String이 아닐 경우
-
getCharKey
키 값을String타입으로 안전하게 반환한다. (getVarcharKey()와 동일)- Returns:
String타입의 키 값- Throws:
AltibaseCollectionException- 키 타입이String이 아닐 경우
-
getBigintKey
키 값을Long타입으로 안전하게 반환한다.- Returns:
Long타입의 키 값- Throws:
AltibaseCollectionException- 키 타입이Long이 아닐 경우
-
setKeyValue
문서의 키 값을 설정한다.이 메서드는 값 설정 시 엄격한 유효성 검사를 수행한다:
- 키 타입이 미리 정의되어 있는지 확인한다.
- 주어진 값의 타입이 정의된 키 타입과 일치하는지 확인한다.
- 값이
null이 아닌지 확인한다. - 값이 문자열인 경우, 비어있지 않은지 확인한다.
- Parameters:
aKeyValue- 설정할 키 값- Throws:
AltibaseCollectionException- 키 타입이 정의되지 않았거나 타입이 일치하지 않을 경우IllegalArgumentException- 키 값이null이거나 비어있는 문자열일 경우
-
getCreated
문서 생성 시각을 반환한다.- Returns:
- 문서 생성 시각. 설정되지 않았다면
null을 반환한다.
-
setCreated
문서 생성 시각을 설정한다.- Parameters:
aCreated- 문서 생성 시각
-
getCreatedBy
문서를 생성한 사용자 ID를 반환한다.- Returns:
- 생성자 사용자 ID. 설정되지 않았다면
null을 반환한다.
-
setCreatedBy
문서를 생성한 사용자 ID를 설정한다.- Parameters:
aCreatedBy- 생성자 사용자 ID
-
getLastModified
문서 최종 수정 시각을 반환한다.- Returns:
- 최종 수정 시각. 설정되지 않았다면
null을 반환한다.
-
setLastModified
문서 최종 수정 시각을 설정한다.- Parameters:
aLastModified- 최종 수정 시각
-
getLastModifiedBy
문서를 최종 수정한 사용자 ID를 반환한다.- Returns:
- 최종 수정자 사용자 ID. 설정되지 않았다면
null을 반환한다.
-
setLastModifiedBy
문서를 최종 수정한 사용자 ID를 설정한다.- Parameters:
aLastModifiedBy- 최종 수정자 사용자 ID
-
toString
문서의 상세 정보를 문자열로 반환한다.문서의 JSON 내용뿐만 아니라, 키 필드명, 타입, 값 등 디버깅에 유용한 메타데이터를 포함하는 포맷팅된 문자열을 반환한다.
- Overrides:
toStringin classorg.bson.Document- Returns:
- 문서의 상세 정보를 담은 문자열
-