/*******************************************************************************
* Copyright (c) 2011 Angelo ZERR.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
*******************************************************************************/
package com.liferay.ide.xml.search.ui.descriptors;
import com.liferay.ide.core.util.CoreUtil;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.wst.xml.search.core.queryspecifications.container.IResourceProvider;
import org.eclipse.wst.xml.search.core.queryspecifications.requestor.IXMLSearchRequestorProvider;
public abstract class AbstractWebInfQuerySpecification implements IResourceProvider, IXMLSearchRequestorProvider
{
/*
* (non-Javadoc)
* @see org.eclipse.wst.xml.search.core.queryspecifications.container.
* IResourceProvider#getResource(java.lang.Object, org.eclipse.core.resources.IResource)
*/
public IResource getResource( Object selectedNode, IResource resource )
{
// Search WEB-INF folder.
final IContainer folder = resource.getParent();
if( "WEB-INF".equals( folder.getName() ) )
{
return folder;
}
IFolder docrootfolder = CoreUtil.getDefaultDocrootFolder( resource.getProject() );
if( docrootfolder != null )
{
final IFolder webInf = docrootfolder.getFolder( "WEB-INF" );
if( webInf.exists() )
{
return webInf;
}
}
else
{
return folder;
}
return null;
}
}