private Trie<Object> createTrie() throws ModelOperationException { Trie<Object> trie = new Trie<Object>(); for (AssetContainer assetContainer : app.getAllAssetContainers()) { try { if (assetContainer instanceof BundlableNode) { BundlableNode bundlableNode = (BundlableNode) assetContainer; for (AliasDefinition aliasDefinition : bundlableNode.aliasesFile().aliasDefinitions()) { if (!trie.containsKey(aliasDefinition.getName())) { trie.add(aliasDefinition.getName(), new AliasName(aliasDefinition.getName())); } } } for (SourceFile sourceFile : assetContainer.sourceFiles()) { ClassSourceFile classSourceFile = new ClassSourceFile(sourceFile); if (!sourceFile.getUnderlyingFile().equals(assetFile)) { trie.add(sourceFile.getRequirePath(), sourceFile); trie.add(classSourceFile.getClassName(), classSourceFile); } } for (AssetLocation assetLocation : assetContainer.getAllAssetLocations()) { for (AliasDefinition aliasDefinition : assetLocation.aliasDefinitionsFile().aliasDefinitions()) { if (!trie.containsKey(aliasDefinition.getName())) { trie.add(aliasDefinition.getName(), new AliasName(aliasDefinition.getName())); } } } } catch (TrieKeyAlreadyExistsException | EmptyTrieKeyException | BundlerFileProcessingException ex) { throw new ModelOperationException(ex); } } return trie; }