for (IDefinition definition : getAllExternallyVisibleDefinitions(compilationUnits))
{
if (!(definition instanceof IClassDefinition))
continue;
IClassDefinition classDefinition = (IClassDefinition)definition;
IMetaTag iconFileMetaTag = classDefinition.getMetaTagByName(IMetaAttributeConstants.ATTRIBUTE_ICON_FILE);
String iconFilePath = classDefinition.getIconFile();
if (iconFilePath == null)
continue;
String packageName = classDefinition.getPackageName();
String key = packageName.replaceAll("\\.", "/") + "/" + iconFilePath;
ICompilationUnit cu = project.getScope().getCompilationUnitForDefinition(classDefinition);
IBinaryFileSpecification fileSpec = null;
if (cu.getCompilationUnitType() == UnitType.SWC_UNIT)
{
ISWC swc = project.getWorkspace().getSWCManager().get(new File(cu.getAbsoluteFilename()));
ISWCFileEntry swcFileEntry = swc.getFile(key);
fileSpec = new SWCFileSpecification(key, swcFileEntry);
}
else
{
String sourcePath = classDefinition.getSourcePath();
iconFilePath = FilenameUtils.getFullPath(sourcePath) + iconFilePath;
fileSpec = project.getWorkspace().getLatestBinaryFileSpecification(iconFilePath);
}
FileEntryValue value = new FileEntryValue(fileSpec, iconFileMetaTag);