Package com.altibase.document.util
Class AltibaseIdentifierHelper
java.lang.Object
com.altibase.document.util.AltibaseIdentifierHelper
Altibase 식별자(사용자명, 테이블명 등) 처리를 위한 유틸리티 클래스이다.
BUG-51814: Altibase는 따옴표로 생성된 식별자의 경우 DatabaseMetaData가 따옴표를 포함하여 반환하므로, 이를 적절히 처리하는 헬퍼 메서드를 제공한다.
-
Method Summary
Modifier and TypeMethodDescriptionstatic StringnormalizeUserName(String aUserName) Altibase 사용자 이름의 대소문자를 정규화한다.static voidvalidateClientId(String aClientId) Client ID(API Key 식별자)의 유효성을 검증한다.static voidvalidateIdentifier(String aIdentifier) 식별자(컬렉션명, 테이블명 등)의 유효성을 검증한다.
-
Method Details
-
normalizeUserName
Altibase 사용자 이름의 대소문자를 정규화한다.Altibase는 따옴표로 생성된 사용자의 경우 getUserName()이 따옴표를 포함하여 반환한다. 따옴표가 포함된 경우 그대로 사용하고, 없으면 대문자로 변환한다.
- Parameters:
aUserName- DatabaseMetaData.getUserName()에서 반환된 사용자 이름- Returns:
- 정규화된 사용자 이름
-
validateIdentifier
식별자(컬렉션명, 테이블명 등)의 유효성을 검증한다.식별자는 다음 규칙을 만족해야 한다:
- 영문자로 시작
- 영문자, 숫자, 언더스코어(_)만 포함
- 최대 128자
- Parameters:
aIdentifier- 검증할 식별자- Throws:
AltibaseSchemaException- 식별자가 유효하지 않은 경우
-
validateClientId
Client ID(API Key 식별자)의 유효성을 검증한다.Client ID는 자동 생성되는 테이블명({userId}_{collectionName})에서 userId와 collectionName을 명확히 구분하기 위해 특수문자를 허용하지 않는다. 특히 언더스코어(_)는 테이블명 구분자로 사용되고, 하이픈(-)은 SQL 식별자에서 허용되지 않는다.
Client ID는 다음 규칙을 만족해야 한다:
- 영문자로 시작
- 영문자, 숫자만 포함 (특수문자 불허: 언더스코어, 하이픈 등)
- 최대 100자
- Parameters:
aClientId- 검증할 Client ID- Throws:
IllegalArgumentException- Client ID가 유효하지 않은 경우
-