/*******************************************************************************
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
*******************************************************************************/
package com.liferay.ide.adt.core.model.internal;
import com.liferay.ide.adt.core.ADTCore;
import com.liferay.ide.adt.core.model.GenerateCustomServicesOp;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.sapphire.DefaultValueService;
/**
* @author Kuo Zhang
*/
public class JavaPackageNameDefaultValueService extends DefaultValueService
{
@Override
protected String compute()
{
final IJavaProject project = op().adapt(IJavaProject.class);
try
{
final IPackageFragmentRoot[] roots = project.getPackageFragmentRoots();
for (IPackageFragmentRoot root : roots)
{
if( root.getKind() != IPackageFragmentRoot.K_BINARY )
{
for( IJavaElement element : root.getChildren() )
{
if( element instanceof IPackageFragment )
{
final IPackageFragment fragment = (IPackageFragment) element;
if( ! fragment.isDefaultPackage() && ! fragment.hasSubpackages() )
{
return fragment.getElementName();
}
}
}
}
}
}
catch( Exception e )
{
ADTCore.logError( e.getMessage(), e );
}
return null;
}
private GenerateCustomServicesOp op()
{
return context( GenerateCustomServicesOp.class );
}
}