From Wikipedia, the free encyclopedia

require("strict")



local getArgs = require("Module:Arguments").getArgs



local p = {}



--[[ 

Local function which handles all the shared character, element and location redirect handling code.

--]]

local function main(args, objectType, validArgs)

	local redirectTemplateHandler = require("Module:Redirect template handler/sandbox")

	local redirectCategoryShell, mainRedirect, unknownParametersErrors = redirectTemplateHandler.setFictionalObjectRedirect(args, objectType, validArgs)

	if (unknownParametersErrors) then

		return redirectCategoryShell .. unknownParametersErrors

	else

		return redirectCategoryShell

	end

end



--[[ 

Public function from other modules.

Function handles the unique character redirect code.

Do not merge with other sections to allow for future changes.

--]]

function p._character(args, validArgs)

	local additonalValidArgs = {"birth_name", "sort_name", "title_name"}

	for i = 1, #additonalValidArgs do

		table.insert(validArgs, additonalValidArgsi])

	end

	return main(args, "character", validArgs)

end



--[[ 

Public function from other modules.

Function handles the unique element redirect code.

Do not merge with other sections to allow for future changes.

--]]

function p._element(args, validArgs)

	return main(args, "element", validArgs)

end



--[[ 

Public function from other modules.

Function handles the unique location redirect code.

Do not merge with other sections to allow for future changes.

--]]

function p._location(args, validArgs)

	return main(args, "location", validArgs)

end



--[[

Public function which is used to create a Redirect category shell

with relevant redirects for fictional character redirects.



Parameters: See module documentation for details.

--]]

function p.character(frame)

	local args = getArgs(frame)

	return p._character(args, {})

end



--[[

Public function which is used to create a Redirect category shell

with relevant redirects for fictional element redirects.



Parameters: See module documentation for details.

--]]

function p.element(frame)

	local args = getArgs(frame)

	return p._element(args, {})

end



--[[

Public function which is used to create a Redirect category shell

with relevant redirects for fictional location redirects.



Parameters: See module documentation for details.

--]]

function p.location(frame)

	local args = getArgs(frame)

	return p._location(args, {})

end



return p