@Override
protected T parse(DeploymentUnit unit, String name, String suffix, T root) throws Exception
{
if (name == null && isIncludeDeploymentFile())
name = unit.getName();
VFSDeploymentUnit vfsDeploymentUnit = (VFSDeploymentUnit) unit;
VirtualFile file = getMetadataFile(vfsDeploymentUnit, getOutput(), name, false);
if (file != null)
return parseAndInit(vfsDeploymentUnit, file, root, true);
List<VirtualFile> files = vfsDeploymentUnit.getMetaDataFiles(name, suffix, getMetaDataTypeFilter(unit));
switch (files.size())
{
case 0 :
return null;
case 1 :
return parseAndInit(vfsDeploymentUnit, files.get(0), root, true);
default :
return handleMultipleFiles(vfsDeploymentUnit, root, files);
}
}