class JapaneseTagger implements Tagger {

  @Override
  public List<AnalyzedTokenReadings> tag(List<String> sentenceTokens) throws IOException {<FILL_FUNCTION_BODY>}

  @Override
  public final AnalyzedTokenReadings createNullToken(String token, int startPos) {
    return new AnalyzedTokenReadings(new AnalyzedToken(token, null, null), startPos);
  }

  @Override
  public AnalyzedToken createToken(String token, String posTag) {
    return new AnalyzedToken(token, posTag, null);
  }

  private AnalyzedToken asAnalyzedToken(String word) {
    String[] parts = word.split(" ");
    if (parts.length != 3) {
      return new AnalyzedToken(" ", null, null);
    }
    return new AnalyzedToken(parts[0], parts[1], parts[2]);
  }

}

    List<AnalyzedTokenReadings> tokenReadings = new ArrayList<>(sentenceTokens.size());
    int pos = 0;

    for (String word : sentenceTokens) {
      AnalyzedToken at = asAnalyzedToken(word);
      tokenReadings.add(new AnalyzedTokenReadings(at, pos));
      pos += at.getToken().length();
    }

    return tokenReadings;
  
<no_super_class>