package com.python.pydev.analysis.search_index;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdaptable;
import org.python.pydev.core.ModulesKey;
import org.python.pydev.shared_ui.search.ICustomModule;
/**
* Note: this one doesn't really exist as a match, it's only generated in the tree content provider.
*/
public class PyCustomModule implements IAdaptable, ICustomModule {
public final IProject project;
public final ModulesKey modulesKey;
public final PyModuleLineElement moduleLineElement;
public final IResource resource;
public PyCustomModule(PyModuleLineElement moduleLineElement) {
this.project = moduleLineElement.getProject();
this.resource = moduleLineElement.getParent();
this.modulesKey = moduleLineElement.modulesKey;
this.moduleLineElement = moduleLineElement;
}
@Override
public <T> T getAdapter(Class<T> adapter) {
return this.moduleLineElement.getAdapter(adapter);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((modulesKey == null) ? 0 : modulesKey.hashCode());
result = prime * result + ((project == null) ? 0 : project.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
PyCustomModule other = (PyCustomModule) obj;
if (modulesKey == null) {
if (other.modulesKey != null) {
return false;
}
} else if (!modulesKey.equals(other.modulesKey)) {
return false;
}
if (project == null) {
if (other.project != null) {
return false;
}
} else if (!project.equals(other.project)) {
return false;
}
return true;
}
@Override
public String toString() {
return this.modulesKey.name;
}
@Override
public Object getModuleLineElement() {
return moduleLineElement;
}
}