package org.jabref.logic.formatter.casechanger; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; /** * Represents a title of a bibtex entry. */ public final class Title { private final List<Word> words = new LinkedList<>(); public Title(String title) { this.words.addAll(new TitleParser().parse(title)); } public List<Word> getWords() { return Collections.unmodifiableList(words); } public Optional<Word> getFirstWord() { if (getWords().isEmpty()) { return Optional.empty(); } return Optional.of(getWords().get(0)); } public Optional<Word> getLastWord() { if (getWords().isEmpty()) { return Optional.empty(); } return Optional.of(getWords().get(getWords().size() - 1)); } @Override public String toString() { return words.stream().map(Word::toString).collect(Collectors.joining(" ")); } }