michael-o commented on code in PR #180: URL: https://github.com/apache/maven-doxia/pull/180#discussion_r1435692207
########## doxia-core/src/main/java/org/apache/maven/doxia/index/IndexEntry.java: ########## @@ -53,10 +56,41 @@ public class IndexEntry { */ private List<IndexEntry> childEntries = new ArrayList<>(); + public enum Type { + /** + * Used for unknown types but also for the root entry + */ + UNKNOWN, + SECTION_1, + SECTION_2, + SECTION_3, + SECTION_4, + SECTION_5, + SECTION_6, + DEFINED_TERM, + FIGURE, + TABLE; + + static Type fromSectionLevel(int level) { + if (level < SECTION_1.ordinal() || level > SECTION_6.ordinal()) { + throw new IllegalArgumentException("Level must be between " + SECTION_1.ordinal() + " and " + + SECTION_6.ordinal() + " but is " + level); + } + return Arrays.stream(Type.values()) + .filter(t -> level == t.ordinal()) + .findAny() + .orElseThrow(() -> new IllegalStateException("Could not find enum with ordinal " + level)); + } + }; /** * The type of the entry, one of the types defined by {@link IndexingSink} */ - private final int type; + private final Type type; + + /** + * System-dependent EOL. + */ + private static final String EOL = System.getProperty("line.separator"); Review Comment: Why not `Markup.EOL`? ########## doxia-core/src/main/java/org/apache/maven/doxia/index/IndexEntry.java: ########## @@ -53,10 +56,41 @@ public class IndexEntry { */ private List<IndexEntry> childEntries = new ArrayList<>(); + public enum Type { + /** + * Used for unknown types but also for the root entry + */ + UNKNOWN, + SECTION_1, + SECTION_2, + SECTION_3, + SECTION_4, + SECTION_5, + SECTION_6, + DEFINED_TERM, + FIGURE, + TABLE; + + static Type fromSectionLevel(int level) { + if (level < SECTION_1.ordinal() || level > SECTION_6.ordinal()) { Review Comment: In general, it is a bad practice to the use ordinal for this. The ordinal is rather an internal value. See Effective Java from Joshua Bloch. Better to introduce a constructor value for this. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org