package atomfeed

import (
	"fmt"
	"html"
)

type Text interface {
	Check() error
	IsText() bool
}

func NewText(textType, content string) (Text, error) {
	switch textType {
	case "text", "":
		return &PlainText{Type: textType, Text: content}, nil
	case "html":
		return &PlainText{Type: textType, Text: html.UnescapeString(content)}, nil
	case "xhtml":
		return &XHTMLText{
			Type: textType,
			XHTMLDiv: XHTMLDiv{
				XMLNS:   "http://www.w3.org/1999/xhtml",
				Content: content,
			},
		}, nil
	default:
		return nil, fmt.Errorf("%v is not a valid text type", textType)
	}
}