if (folder == null || !folder.exists()) {
throw new IllegalArgumentException("Folder cannot be null");
}
// initialize component
ComponentList componentList = getComponentFactory().getComponentListInstance();
// convert for contains access
List<String> enabledComponentTypesList = null;
if (enabledComponentTypes != null) {
enabledComponentTypesList = Arrays.asList(enabledComponentTypes);
}
if (isSourceFolder(folder)) {
// loop thru registered component list inspecting respective folder and folder contents
ComponentList registeredComponents =
getComponentFactory().getEnabledRegisteredComponents(enabledComponentTypes);
for (IComponent registeredComponent : registeredComponents) {
if (Utils.isNotEmpty(enabledComponentTypes)
&& !enabledComponentTypesList.contains(registeredComponent.getComponentType())) {
if (logger.isDebugEnabled()) {
logger.debug("Skipping component type '" + registeredComponent.getComponentType()
+ "' - type not a selected object type");
}
continue;
}
String componentFolderPath =
Constants.SOURCE_FOLDER_NAME + "/" + registeredComponent.getDefaultFolder();
IFolder componentFolder = folder.getProject().getFolder(componentFolderPath);
if (componentFolder == null || !componentFolder.exists()) {
continue;
}
ComponentList tmpComponentList = getComponentsForComponentFolder(componentFolder, traverse, true);
if (Utils.isNotEmpty(tmpComponentList)) {
componentList.addAll(tmpComponentList);
}
}
} else if (isComponentFolder(folder)) {
ComponentList tmpComponentList = getComponentsForComponentFolder(folder, traverse, true);
if (Utils.isNotEmpty(tmpComponentList)) {
componentList.addAll(tmpComponentList);
}
} else if (isSubComponentFolder(folder)) {
ComponentList tmpComponentList = getComponentsForComponentFolder(folder, traverse, true);
if (Utils.isNotEmpty(tmpComponentList)) {
componentList.addAll(tmpComponentList);
}
}