DISCLAIMER: These notes are from the defunct k8 project which precedes SquirrelJME. The notes for SquirrelJME start on 2016/02/26! The k8 project was effectively a Java SE 8 operating system and as such all of the notes are in the context of that scope. That project is no longer my goal as SquirrelJME is the spiritual successor to it.
I know something strange I can do, remove the Map from the PackageManager and make it set. Then have PackageInfo extend PackagePair and implement a map for property values. Then the packages could be maintained in a bit different way. However the Set does not have a get based on the key value. I could always just make a map that contains the value as the same key.
My quite ugly CallCheckedCollections now looks much better in Java 8, especially with lambdas and functions now.
Also means less magic as the CallCheckedCollections can handle all of the needed checking with just a lambda.
Changing the maps and such to that has made the code much cleaner and nicer, also reduced a bunch of code too.
Instead of a dependency list in the PackageManager, it would best be in the PackageInfo since it only refers to them by name and such.
I should use a DiagnosticListener for package manager stuff especially when it is to be built.
Actually what I was going for is bad, instead I know a better way. The manager will not have building just installing and PackageInfo will not have it either. There will be a separate builder class which handles everything that way the information and the manager are kept cleaner.