package org.erlide.engine.internal.model.erlang;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.erlide.engine.model.erlang.ErlangFunction;
import org.erlide.engine.model.erlang.IErlImportExport;
import org.erlide.engine.model.root.IErlElement;
import com.ericsson.otp.erlang.OtpErlangList;
import com.ericsson.otp.erlang.OtpErlangObject;
import com.ericsson.otp.erlang.OtpErlangTuple;
import com.google.common.collect.Lists;
public abstract class ErlImportExport extends ErlMember implements IErlImportExport {
protected List<ErlangFunction> fFunctions;
protected ErlImportExport(final IErlElement parent, final String name,
final OtpErlangList functionList) {
super(parent, name);
fFunctions = new ArrayList<ErlangFunction>(functionList.arity());
for (final OtpErlangObject object : functionList) {
fFunctions.add(new ErlangFunction((OtpErlangTuple) object));
}
}
@Override
public boolean hasFunction(final ErlangFunction f) {
return fFunctions.contains(f);
}
@Override
public Collection<ErlangFunction> getFunctions() {
return Collections.unmodifiableCollection(Lists.newArrayList(fFunctions));
}
}