changeset 16:1d8898cd1c82

removed the unused code from Core.lua
author mckenziemc
date Sat, 11 Dec 2010 01:54:15 -0800
parents a46bf694050c
children f825ccf94a89
files DependencyLoader/Core.lua
diffstat 1 files changed, 2 insertions(+), 292 deletions(-) [+]
line wrap: on
line diff
--- a/DependencyLoader/Core.lua	Sat Dec 11 01:48:39 2010 -0800
+++ b/DependencyLoader/Core.lua	Sat Dec 11 01:54:15 2010 -0800
@@ -1,298 +1,8 @@
-
+--	Core
+--	Provides core functionality of DependencyLoader
 
 
 local addonName, addonTable = ...
 
 
---	NOTE: current contents of this file are no longer used
-if true then
-	return
-end
-
 local Core, core = addonTable:NewClass("Core")
-
-
-function Core:New()
-	local instance = {}
-	setmetatable(instance, self.instanceMetatable)
-	
-	instance.addons = {}
-	instance.nameToIndex = {}
-	
-	for i=1,GetNumAddOns() do
-		local newAddon = Addon:New(i)
-		
-		instance.addons[i] = newAddon
-		instance.nameToIndex[newAddon:GetName()] = i
-	end
-	
-	--	TODO: enable dependencies for any addons that have already loaded
-	
-	return instance
-end
-
-
---	@param	addon	Name or index of the addon to retrieve.
---	@return 		The addon object, or nil if not found
-function core:GetAddon(addon)
-	if not Addon:Exists(addon) then
-		return nil
-	end
-	
-	local index
-
-	if type(addon) == "string" then
-		index = self.nameToIndex[addon]
-	elseif type(addon) == "number" then
-		index = addon
-	end
-	
-	return self.addons[index]
-end	
-
-
---	Checks if the tree rooted at the specified addon can be force-loaded.
---	@param	root	The name or index of the root addon.
-function core:CanForceLoadTree(root)
-	--	convert root to an Addon object
-	root = self:GetAddon(root)
-	assert(root)
-	
-	if root:IsLoaded() then
-		return true
-	end
-	
-	--	check if the root itself can be force-loaded
-	if not root:CanForceLoad() then
-		return false
-	end
-	
-	--	now check dependencies recursively
-	--	FIXME: prevent infinite recursion
-
-	local dependencies = {root:GetDependencies()}
-	for i, depName in pairs(dependencies) do
-		local dep = self:GetAddon(depName)
-		
-		if dep == nil then
-			return false		--	missing dependency
-		end
-		
-		--	if it's already loaded then skip to next one
-		if not dep:IsLoaded() then
-			if not self:CanForceLoadTree(depName) then
-				return false
-			end
-		end
-	end
-	
-	return true
-end
-
---	NOTE: any tree that can be loaded on demand is also eligible for force-loading
---	Checks if the tree rooted at the specified addon can be loaded on demand.
---	@param	root	The name or index of the root addon.
-function core:CanLoDTree(root)
-	root = self:GetAddon(root)
-	assert(root)
-
-	--	since this will be used recursively, return true if 
-	--	this is already loaded.
-	if root:IsLoaded() then
-		return true
-	end
-	
-	--	true if all dependencies are loaded or LoD
-	
-	if not root:CanLoD() then
-		return false
-	end
-	
-	--	now check dependencies recursively
-	local dependencies = {root:GetDependencies()}
-	for i, depName in pairs(dependencies) do
-		local dep = self:GetAddon(depName)
-		
-		if not dep then
-			return false		--	missing
-		end
-		
-		if not dep:IsLoaded() then
-			if not self:CanLoDTree(depName) then
-				return false
-			end
-		end
-	end
-	
-	return true
-end
-
-
---	Checks if the tree rooted at the specified addon 
---	can be loaded if all dependencies are enabled 
---	the UI is reloaded.
---	Basically makes sure all dependencies are installed.
-function core:CanReloadTree(root)
-	--	convert root to an Addon object
-	root = self:GetAddon(root)
-	assert(root)
-	
-	if root:IsLoaded() then
-		return true
-		--	FIXME: 	deps may have been disabled
-	end
-	
-	--	TODO: make sure the root isn't incompatible
-	
-	--	now check dependencies recursively
-	--	FIXME: prevent infinite recursion
-
-	local dependencies = {root:GetDependencies()}
-	for i, depName in pairs(dependencies) do
-		local dep = self:GetAddon(depName)
-		
-		if dep == nil then
-			return false		--	missing dependency
-		end
-
-		--	TODO: make sure it's compatible
-	end
-	
-	return true
-end
-
---	Loads the tree rooted at the specified addon.
---	FIXME: load the root too or not?
---	Supports both LoD addons and those that require force-loading.
-function core:LoadTree(addon)
-	--	don't check if the tree can actually be loaded.
-	--	external code should do that itself to check if it 
-	--	should even call this at all.
-
-	if self:ForceLoadAvailable() then
-		--	LoD trees can also be force-loaded
-		self:ForceLoadTree(addon)
-	else
-		self:LoadLoDTree(addon)
-	end
-end
-
-
---	load the root too, since it may actually be a leaf
-function core:ForceLoadTree(root)
-	root = self:GetAddon(root)
-	assert(root)
-	
-	--	load dependencies
-	local dependencies = {root:GetDependencies(addon)}
-	for i, depName in pairs(dependencies) do
-		self:ForceLoadTree(depName)
-	end
-
-	--	load embeds, if they are available separately
-	local embeds = {root:GetEmbeds(addon)}
-	for i, embedName in pairs(embeds) do
-		if Addon:Exists(embedName) then
-			self:ForceLoadTree(embedName)
-		end
-	end
-	
-	root:ForceLoad()
-end
-
-
-function core:LoadLoDTree(root)
-	root = self:GetAddon(root)
-	assert(root)
-	
-	--	load dependencies
-	local dependencies = {root:GetDependencies(addon)}
-	for i, depName in pairs(dependencies) do
-		self:LoadLoDTree(depName)
-	end
-
-	--	load embeds, if they are available separately
-	local embeds = {root:GetEmbeds(addon)}
-	for i, embedName in pairs(embeds) do
-		if Addon:Exists(embedName) then
-			self:LoadLoDTree(embedName)
-		end
-	end
-	
-	root:LoD()
-end
-
-
---	I think the problem this solves is a major issue with 
---	migrating to separate libs. think about it more and document 
---	here and in project description
-function core:PrepareLoDTree(root)
-	root = self:GetAddon(root)
-	assert(root)
-	
-	--	assume root is LoD
-	
-	--	check dependencies
-	local dependencies = {root:GetDependencies(addon)}
-	for i, depName in pairs(dependencies) do
-		local dep = self:GetAddon(depName)
-		
-		--	assume external code made sure it exists
-		
-		if dep:CanLoD() then
-			--	don't load it now but make sure its dependencies are prepared
-			self:PrepareLoDTree(depName)
-		else
-			--	FIXME: if it's already loaded
-			--	force-load it now so we can load the parent on demand
-			self:ForceLoadTree(depName)
-		end
-	end
-
-	--	prepare embeds, if they are available separately
-	local embeds = {root:GetEmbeds(addon)}	--	FIXME: addon?
-	for i, embedName in pairs(embeds) do
-		local embed = self:GetAddon(embedName)
-		
-		if embed then
-			if embed:CanLoD() then
-				--	don't load it now but make sure its dependencies are prepared
-				self:PrepareLoDTree(embedName)
-			else
-				--	FIXME: if it's already loaded
-				--	force-load it now so we can load the parent on demand
-				self:ForceLoadTree(depName)
-			end
-		end
-	end
-end
-
-
-function Core:PrepareReloadTree(addon)
-	root = self:GetAddon(root)
-	assert(root)
-	
-	root:Enable()
-	
-	--	check dependencies
-	local dependencies = {root:GetDependencies()}
-	for i, depName in pairs(dependencies) do
-		self:PrepareReloadTree(depName)
-	end
-
-	--	prepare embeds, if they are available separately
-	local embeds = {root:GetEmbeds(addon)}
-	for i, embedName in pairs(embeds) do
-		local embed = self:GetAddon(embedName)
-		
-		if embed then
-			self:PrepareReloadTree(embedName)
-		end
-	end
-end
-
-
-function Core:ForceLoadAvailable()
-	return true
-	--	FIXME: use field and a frame registered for PLAYER_LOGIN
-end