//
// XTHtmlTag.h
// TadsTerp
//
// Created by Rune Berg on 29/03/14.
// Copyright (c) 2014 Rune Berg. All rights reserved.
//
#import
#import "XTOutputFormatterProtocol.h"
@protocol XTOutputFormatterProtocol; // fwd decl.
@interface XTHtmlTag : NSObject
+ (NSString *)name; // for
this would be "BR"
+ (NSArray *)allowedAttributes;
+ (BOOL)standalone;
+ (BOOL)blockLevel;
+ (BOOL)blockLevelSpacingBefore;
+ (BOOL)blockLevelSpacingAfter;
+ (BOOL)forT2;
+ (BOOL)forT3;
@property BOOL closing;
@property NSMutableDictionary *attributes;
- (NSArray *)dispatchToFormatter:(NSObject *)formatter;
- (BOOL)hasAttribute:(NSString *)attributeName;
- (BOOL)hasAttribute:(NSString *)attributeName withCaseInsensitiveValue:(NSString *)value;
//TODO use whenever appr
- (NSString *)attributeAsString:(NSString *)attributeName;
- (BOOL)attribute:(NSString *)attributeName asOptionalSign:(NSInteger*)sign andUint:(NSUInteger*)uint;
- (NSUInteger)attributeAsUInt:(NSString *)attributeName;
- (NSNumber *)attributeAsNumber:(NSString *)attributeName;
//- (NSInteger)attributeAsInt:(NSString *)attributeName;
- (NSArray *)attributeAsCommaSeparatedStrings:(NSString *)attributeName;
- (BOOL)isStandalone;
- (BOOL)isBlockLevel;
- (BOOL)needsBlockLevelSpacingBefore;
- (BOOL)needsBlockLevelSpacingAfter;
- (BOOL)isForT2;
- (BOOL)isForT3;
- (NSString *)debugString;
@end