package org.erlide.project.model.impl;
import com.google.common.base.Objects;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.erlide.common.util.ErlLogger;
import org.erlide.project.model.ICodeUnit;
import org.erlide.project.model.IErlangModelElement;
import org.erlide.project.model.IErlangProject;
import org.erlide.project.model.impl.ErlangModelElement;
@SuppressWarnings("all")
public class CodeUnit extends ErlangModelElement implements ICodeUnit {
private IErlangProject folder;
private String name;
private IFile file;
public CodeUnit(final IErlangProject folder, final String name) {
this.folder = folder;
this.name = name;
}
@Override
public IPath getPath() {
return null;
}
@Override
public String getName() {
return this.name;
}
@Override
public IErlangModelElement getParent() {
return this.folder;
}
@Override
public IResource getResource() {
boolean _equals = Objects.equal(this.file, null);
if (_equals) {
IWorkspace _workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot _root = _workspace.getRoot();
IPath _path = this.getPath();
final List<IFile> possibleFiles = (List<IFile>)Conversions.doWrapArray(_root.findFilesForLocation(_path));
int _size = possibleFiles.size();
boolean _equals_1 = (_size == 1);
if (_equals_1) {
IFile _head = IterableExtensions.<IFile>head(possibleFiles);
this.file = _head;
}
ErlLogger _instance = ErlLogger.getInstance();
IPath _path_1 = this.getPath();
_instance.warn("not able to find file %s", _path_1);
}
return this.file;
}
}