//
//  ESUnicodeData.h
//  UnicodeChecker
//
//  Created by Steffen Kamp on 19.05.06.
//  Copyright 2006 earthlingsoft. All rights reserved.
//

#import <Foundation/Foundation.h>


typedef enum {
   ESUnicode_GraphicType,
   ESUnicode_FormatType,
   ESUnicode_ControlType,
   ESUnicode_PrivateUseType,
   ESUnicode_SurrogateType,
   ESUnicode_NoncharacterType,
   ESUnicode_ReservedType
} ESUnicode_CodepointType;


@interface ESUnicodeData : NSObject {

}

- (UTF32Char)codepoint;
- (NSNumber *)codeValue;
- (NSString *)characterName;
- (NSString *)generalCategory;
- (NSNumber *)canonicalCombiningClass;
- (NSString *)bidirectionalCategory;
- (NSString *)characterDecompositionMapping;
- (NSArray *)characterDecompositionMappingArray;
- (NSString *)decimalDigitValue;
- (NSString *)digitValue;
- (NSString *)numericValue;
- (BOOL)mirrored;
- (NSString *)unicode1Name;
- (NSString *)commentField;
- (NSString *)uppercaseMapping;
- (NSString *)lowercaseMapping;
- (NSString *)titlecaseMapping;

- (BOOL)canonicalMapping;
- (BOOL)compatibilityMapping;

@end

@interface ESUnicodeData (DerivedTypes)

- (ESUnicode_CodepointType)codepointType;
- (BOOL)isAssignedToAbstractCharacter;
- (BOOL)isAssignedCodePoint; // assigned == designated  in this context

@end
