@Override
	public AbstractComponent parse(String string) throws BookParseException {
		if (string == null) {
			throw new BookParseException("String is null");
		}
		try {
			TextComponent component = (TextComponent) factory
					.newComponent(EComponentType.PARAGRAPH);
			Pattern sentencePattern = Pattern.compile(SENTENCE_REGEX,
					Pattern.UNICODE_CHARACTER_CLASS);
			Matcher sentenceMatcher = sentencePattern.matcher(string);
			while (sentenceMatcher.find()) {
				component.addComponent(sentenceParser.parse(sentenceMatcher
						.group()));
			}
			return component;
		} catch (ComponentException e) {
			throw new BookParseException("Paragraph parse failed", e);
		}
	}