/**
* Aptana Studio
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions).
* Please see the license.html included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.aptana.editor.php.internal.model.impl;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.aptana.editor.php.core.model.IModelElement;
import com.aptana.editor.php.core.model.ISourceModule;
import com.aptana.editor.php.internal.core.builder.IBuildPath;
import com.aptana.editor.php.internal.core.builder.IDirectory;
import com.aptana.editor.php.internal.core.builder.IModule;
import com.aptana.editor.php.internal.model.ISourceFolder;
/**
* SourceFolder
*
* @author Denis Denisenko
*/
public class SourceFolder extends AbstractResourceElement implements ISourceFolder
{
/**
* SourceFolder constructor.
*
* @param directory
* - directory.
*/
public SourceFolder(IDirectory directory)
{
super(directory);
}
/**
* {@inheritDoc}
*/
public int getElementType()
{
return FOLDER;
}
/**
* {@inheritDoc}
*/
public List<IModelElement> getChildren()
{
IBuildPath buildPath = getBPResource().getBuildPath();
if (buildPath == null)
{
return Collections.emptyList();
}
List<IDirectory> subdirectories = buildPath.getSubdirectoriesByPath(getBPResource().getPath());
List<IModule> modules = buildPath.getModulesByPath(getBPResource().getPath());
List<IModelElement> result = new ArrayList<IModelElement>();
if (subdirectories != null)
{
for (IDirectory subdirectory : subdirectories)
{
ISourceFolder folder = new SourceFolder(subdirectory);
result.add(folder);
}
}
if (modules != null)
{
for (IModule module : modules)
{
ISourceModule mdl = new SourceModule(module);
result.add(mdl);
}
}
return result;
}
/**
* {@inheritDoc}
*/
public boolean hasChildren()
{
IBuildPath buildPath = getBPResource().getBuildPath();
if (buildPath == null)
{
return false;
}
List<IDirectory> subdirectories = buildPath.getSubdirectoriesByPath(getBPResource().getPath());
List<IModule> modules = buildPath.getModulesByPath(getBPResource().getPath());
if (subdirectories != null && subdirectories.size() > 0)
{
return true;
}
if (modules != null && modules.size() > 0)
{
return true;
}
return false;
}
protected IDirectory getDirectory()
{
return (IDirectory) getBPResource();
}
}