package jadx.gui.treemodel; import jadx.api.JavaClass; import jadx.api.JavaPackage; import jadx.gui.utils.Utils; import javax.swing.Icon; import javax.swing.ImageIcon; import java.util.ArrayList; import java.util.List; import org.jetbrains.annotations.NotNull; public class JPackage extends JNode implements Comparable<JPackage> { private static final long serialVersionUID = -4120718634156839804L; private static final ImageIcon PACKAGE_ICON = Utils.openIcon("package_obj"); private String name; private final List<JClass> classes; private final List<JPackage> innerPackages = new ArrayList<JPackage>(1); public JPackage(JavaPackage pkg) { this.name = pkg.getName(); List<JavaClass> javaClasses = pkg.getClasses(); this.classes = new ArrayList<JClass>(javaClasses.size()); for (JavaClass javaClass : javaClasses) { classes.add(new JClass(javaClass)); } update(); } public JPackage(String name) { this.name = name; this.classes = new ArrayList<JClass>(1); } public final void update() { removeAllChildren(); for (JPackage pkg : innerPackages) { pkg.update(); add(pkg); } for (JClass cls : classes) { cls.update(); add(cls); } } @Override public String getName() { return name; } public void setName(String name) { this.name = name; } public List<JPackage> getInnerPackages() { return innerPackages; } public List<JClass> getClasses() { return classes; } @Override public Icon getIcon() { return PACKAGE_ICON; } @Override public JClass getJParent() { return null; } @Override public int getLine() { return 0; } @Override public int compareTo(@NotNull JPackage o) { return name.compareTo(o.name); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } return name.equals(((JPackage) o).name); } @Override public int hashCode() { return name.hashCode(); } @Override public String makeString() { return name; } @Override public String makeLongString() { return name; } }