/**
*
*/
package org.limewire.ui.swing.search.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.limewire.core.api.Category;
import org.limewire.core.api.FilePropertyKey;
import org.limewire.core.api.URN;
import org.limewire.core.api.endpoint.RemoteHost;
import org.limewire.core.api.search.SearchResult;
import org.limewire.friend.api.FriendPresence;
import org.limewire.ui.swing.friends.MockFriend;
import org.limewire.ui.swing.friends.MockFriendPresence;
import org.limewire.util.FileUtils;
public class TestSearchResult implements SearchResult {
private String urn;
private String fileName;
private Map<FilePropertyKey, Object> properties;
private Category category = Category.AUDIO;
public TestSearchResult(String urn, String fileName) {
this.urn = urn;
Map<FilePropertyKey, Object> properties = new HashMap<FilePropertyKey, Object>();
properties.put(FilePropertyKey.NAME, FileUtils.getFilenameNoExtension(fileName));
this.properties = properties;
this.fileName = fileName;
}
public TestSearchResult(String urn, String fileName, Map<FilePropertyKey, Object> properties) {
this.urn = urn;
this.properties = properties;
this.fileName = fileName;
}
@Override
public String getFileExtension() {
return FileUtils.getFileExtension(getFileName());
}
@Override
public Object getProperty(FilePropertyKey key) {
return properties.get(key);
}
@Override
public long getSize() {
return 0;
}
@Override
public List<RemoteHost> getSources() {
List<RemoteHost> sources = new ArrayList<RemoteHost>();
sources.add(new RemoteHost() {
UUID randomUUID = UUID.randomUUID();
@Override
public boolean isBrowseHostEnabled() {
return false;
}
@Override
public boolean isChatEnabled() {
return false;
}
@Override
public boolean isSharingEnabled() {
return false;
}
@Override
public FriendPresence getFriendPresence() {
return new MockFriendPresence(new MockFriend(randomUUID.toString()));
}
});
return sources;
}
@Override
public URN getUrn() {
return new TestURN(urn);
}
@Override
public String toString() {
return getUrn() + " - " + getProperty(FilePropertyKey.NAME);
}
@Override
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
@Override
public boolean isSpam() {
return false;
}
@Override
public String getFileName() {
return fileName;
}
@Override
public String getFileNameWithoutExtension() {
return FileUtils.getFilenameNoExtension(getFileName());
}
@Override
public String getMagnetURL() {
return null;
}
@Override
public int getRelevance() {
return 0;
}
@Override
public boolean isLicensed() {
return false;
}
/**
* Test implementation of URN.
*/
private class TestURN implements URN {
private String urn;
public TestURN(String urn) {
this.urn = urn;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof TestURN) {
TestURN oUrn = (TestURN) obj;
return urn.equals(oUrn);
}
return false;
}
@Override
public int hashCode() {
return urn.hashCode();
}
@Override
public int compareTo(URN o) {
if (o instanceof TestURN) {
TestURN testURN = (TestURN) o;
return urn.compareTo(testURN.urn);
}
return -1;
}
@Override
public String toString() {
return urn;
}
}
}