import org.pentaho.di.core.Result; //導入方法依賴的package包/類
public Result execute(Result previousResult, int nr, Repository rep, Job parentJob)
{
LogWriter log = LogWriter.getInstance();
Result result = previousResult;
result.setResult(false);
if(previousResult!=null)
{
try
{
int size=previousResult.getResultFiles().size();
if(log.isBasic())
log.logBasic(toString(),Messages.getString("JobEntryDeleteResultFilenames.log.FilesFound",""+size));
if(!specifywildcard)
{
// Delete all files
previousResult.getResultFiles().clear();
if(log.isDetailed()) log.logDetailed(toString(),Messages.getString("JobEntryDeleteResultFilenames.log.DeletedFiles",""+size));
}
else
{
List resultFiles = result.getResultFilesList();
if (resultFiles != null && resultFiles.size() > 0)
{
for (Iterator it = resultFiles.iterator(); it.hasNext() && !parentJob.isStopped();)
{
ResultFile resultFile = (ResultFile) it.next();
FileObject file = resultFile.getFile();
if (file != null && file.exists())
{
if(CheckFileWildcard(file.getName().getBaseName(), environmentSubstitute(wildcard),true)
&& !CheckFileWildcard(file.getName().getBaseName(), environmentSubstitute(wildcardexclude),false))
{
// Remove file from result files list
result.getResultFiles().remove(resultFile.getFile().toString());
if(log.isDetailed()) log.logDetailed(toString(),Messages.getString("JobEntryDeleteResultFilenames.log.DeletedFile",file.toString()));
}
}
}
}
}
result.setResult(true);
}
catch(Exception e)
{
log.logError(toString(), Messages.getString("JobEntryDeleteResultFilenames.Error",e.toString()));
}
}
return result;
}
此博客展示了一段Java代码,主要实现了对Result文件的删除逻辑。代码导入相关包,在execute方法中,根据条件判断是否删除所有文件或按通配符删除部分文件,同时处理异常情况,最终返回处理后的Result对象。
1512

被折叠的 条评论
为什么被折叠?



