package org.ourgrid.matchers; import org.easymock.EasyMock; import org.easymock.IArgumentMatcher; import org.ourgrid.broker.communication.actions.HereIsFileInfoMessageHandle; import org.ourgrid.common.filemanager.FileInfo; import br.edu.ufcg.lsd.commune.processor.filetransfer.TransferHandle; public class HereIsFileInfoMessageHandleMatcher implements IArgumentMatcher{ private String fileDigest; private String filePath; private TransferHandle transferHandle; private HereIsFileInfoMessageHandleMatcher(TransferHandle transferHandle, FileInfo fileInfo) { this.transferHandle = transferHandle; this.fileDigest = fileInfo.getFileDigest(); this.filePath = fileInfo.getFilePath(); } public boolean matches(Object arg0) { if(!HereIsFileInfoMessageHandle.class.isInstance(arg0)){ return false; } if (arg0 == null) { return false; } HereIsFileInfoMessageHandle other = (HereIsFileInfoMessageHandle) arg0; long handlerId = other.getHandlerId(); if(this.transferHandle != null){ if(handlerId == 0 || handlerId != this.transferHandle.getId()) { return false; } } FileInfo fileInfoOther = other.getFileInfo(); if(fileInfoOther == null) { return false; }else{ if(!fileInfoOther.getFileDigest().equals(this.fileDigest)) { return false; } if(!fileInfoOther.getFilePath().equals(this.filePath)) { return false; } } return true; } public void appendTo(StringBuffer arg0) { } public static HereIsFileInfoMessageHandle eqMatcher(TransferHandle transferHandle, FileInfo fileInfo) { EasyMock.reportMatcher(new HereIsFileInfoMessageHandleMatcher(transferHandle, fileInfo)); return null; } }