package org.infoglue.cms.util.webdav;
import org.apache.log4j.Logger;
import com.bradmcevoy.common.Path;
import com.bradmcevoy.http.FileResource;
import com.bradmcevoy.http.FolderResource;
import com.bradmcevoy.http.Resource;
/**
* This class is responsible for parsing and getting the resource in question. Not sure this is the way to go.
*
* @author mattiasbogeblad
*
*/
public class InfogluePathResolver
{
private final static Logger logger = Logger.getLogger(InfogluePathResolver.class.getName());
public static Resource resolvePath(Path path, RepositoryResourceFactory resourceFactory)
{
Resource resource = null;
int i=0;
for(String part : path.getParts())
{
i++;
if(logger.isInfoEnabled())
logger.info("part:" + part + ":" + path.getParts().length + ":" + i);
if(part.startsWith("webdavedit") || (part.startsWith("repositories") && i < 3))
resource = new AllRepositoryResource(resourceFactory);
else
{
if(logger.isInfoEnabled())
logger.info("resource:" + resource + ":" + (resource instanceof FolderResource));
if(resource instanceof FolderResource)
{
FolderResource folderResource = (FolderResource)resource;
resource = folderResource.child(part);
if(logger.isInfoEnabled())
logger.info("resource child:" + resource);
}
else if(resource instanceof FileResource)
{
if(logger.isInfoEnabled())
logger.info("resource was a file:" + resource);
}
}
}
return resource;
}
}