Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Context free grammar, Java, Syntax tree, Class Hierarchy Solution import java.io

ID: 665731 • Letter: C

Question

Context free grammar, Java, Syntax tree, Class Hierarchy

Explanation / Answer

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.PrintStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Stack; import javax.swing.JDialog; import jdk.nashorn.internal.runtime.PropertyMap; // since Java 8, just for testing import com.sun.javafx.collections.TrackableObservableList; public class PrintClassHierarchy { private static final String PADDING = " "; private static final String PADDING_WITH_COLUMN = " | "; private static final String PADDING_WITH_ENTRY = " |--- "; private static final String BASE_CLASS = Object.class.getName(); private final Map subClazzEntries = new HashMap(); public static void main(final String[] args) { new PrintClassHierarchy( PrintStream.class, FileOutputStream.class, FileInputStream.class, TrackableObservableList.class, PropertyMap.class, JDialog.class ).printHierarchy(); } public PrintClassHierarchy(final Class... clazzes) { // get all entries of tree traverseClasses(clazzes); } public void printHierarchy() { // print collected entries as ASCII tree printHierarchy(BASE_CLASS, new Stack()); } private void printHierarchy(final String clazzName, final Stack moreClassesInHierarchy) { if (!moreClassesInHierarchy.empty()) { for (final Boolean hasColumn : moreClassesInHierarchy.subList(0, moreClassesInHierarchy.size() - 1)) { System.out.print(hasColumn.booleanValue() ? PADDING_WITH_COLUMN : PADDING); } } if (!moreClassesInHierarchy.empty()) { System.out.print(PADDING_WITH_ENTRY); } System.out.println(clazzName); if (subClazzEntries.containsKey(clazzName)) { final List list = subClazzEntries.get(clazzName); for (int i = 0; i clazz, final int level) { final Class superClazz = clazz.getSuperclass(); if (superClazz == null) { // we arrived java.lang.Object return; } final String name = clazz.getName(); final String superName = superClazz.getName(); if (subClazzEntries.containsKey(superName)) { final List list = subClazzEntries.get(superName); if (!list.contains(name)) { list.add(name); Collections.sort(list); // SortedList } } else { subClazzEntries.put(superName, new ArrayList(Arrays.asList(name))); } traverseClasses(superClazz, level + 1); } }
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote