#pragma once

#include <map>
#include "Protein.hpp"

class ResidueConnection
{
public:
	ResidueConnection(const std::string residueFileName);
	Protein addConnectionsWithinResidues(const Protein &protein);
	Protein addConnectionsWithinChain(const Protein &protein);

private:
	std::map<std::string, Protein> cachedBasicResidues;
	void cacheBasicResidues(const std::string residueFileName);
	void fillResidue(Residue &residue);
	static bool doesConnectionExist(const Atom &residue, int connection);
};