// for all items in Folder { do something }
/*
This template provides a starting point for a new script
where you wish to scan items in a folder, project or database
and perform some action according to the items encountered.
Unmodified, this script simply prints the full name of all items found
below the current folder.
smartDXL.com
*/
/******************************************************************************
processDescriptive
Do something with the given descriptive module.
******************************************************************************/
void processDescriptive(string mName)
{
print("Descriptive Module: " mName "\n")
}
/******************************************************************************
processFormal
Do something with the given formal module.
******************************************************************************/
void processFormal(string mName)
{
print("Formal Module: " mName "\n")
}
/******************************************************************************
processLink
Do something with the given link module.
******************************************************************************/
void processLink(string mName)
{
print("Link Module: " mName "\n")
}
/******************************************************************************
processFolder
Do something with the given folder.
******************************************************************************/
void processFolder(Folder f)
{
print("Folder: " fullName(f) "\n")
}
/******************************************************************************
processProject
Do something with the given project.
******************************************************************************/
void processProject(Project f)
{
print("Project: " fullName(f) "\n")
}
/******************************************************************************
scanFolder
This function scans all items in the given folder, recursing through
sub-projects and folders.
One of the process functions, defined above, is called according to the
type of the item.
******************************************************************************/
void scanFolder(Folder f)
{
Item itm
if (null f)
{
print("NULL Folder parameter passed")
return
}
// loop through items at top level of folder
for itm in f do
{
// sensible checks to avoid run-time errors
if (null itm) continue
if (isDeleted(itm)) continue
// take action according to type of the item
if (type (itm) == "Project")
{
// do something with project
processProject(project(itm))
// scan items in the project
scanFolder(folder(itm))
}
else if (type (itm) == "Folder")
{
// do something with folder
processFolder(folder(itm))
// scan items in the folder
scanFolder(folder(itm))
}
else if (type (itm) == "Formal")
{
// do something with formal module
processFormal(fullName(itm))
}
else if (type (itm) == "Link")
{
// do something with link module
processLink(fullName(itm))
}
else if (type (itm) == "Descriptive")
{
// do something with descriptive module
processDescriptive(fullName(itm))
}
}
}
/******************************************************************************
MAIN
******************************************************************************/
scanFolder(current Folder)
sitemap