#include "Element.hpp"
|
|
|
|
int Element::WEAK_COMPATIBILITY = -1;
|
|
int Element::NEUTRAL_COMPATIBILITY = 0;
|
|
int Element::STRONG_COMPATIBILITY = 1;
|
|
|
|
Element::Element(std::string elementName,
|
|
Element *elementWeakAgainst,
|
|
Element *elementStrongAgainst)
|
|
: name(elementName),
|
|
weakAgainst(elementWeakAgainst),
|
|
strongAgainst(elementStrongAgainst)
|
|
{
|
|
}
|
|
|
|
std::string Element::getName()
|
|
{
|
|
return this->name;
|
|
}
|
|
|
|
void Element::setStrongAgainst(Element *element)
|
|
{
|
|
this->strongAgainst = element;
|
|
}
|
|
|
|
void Element::setWeakAgainst(Element *element)
|
|
{
|
|
this->weakAgainst = element;
|
|
}
|
|
|
|
bool Element::isStrongAgainst(Element *element)
|
|
{
|
|
return this->strongAgainst == element;
|
|
}
|
|
|
|
bool Element::isWeakAgainst(Element *element)
|
|
{
|
|
return this->weakAgainst == element;
|
|
}
|
|
|
|
int Element::compatibilityAgainst(Element *element)
|
|
{
|
|
if (this->isStrongAgainst(element))
|
|
{
|
|
return Element::STRONG_COMPATIBILITY;
|
|
}
|
|
else if (this->isWeakAgainst(element))
|
|
{
|
|
return Element::WEAK_COMPATIBILITY;
|
|
}
|
|
else
|
|
{
|
|
return Element::NEUTRAL_COMPATIBILITY;
|
|
}
|
|
}
|
|
|
|
bool Element::operator<(Element &element)
|
|
{
|
|
return this->name < element.name;
|
|
}
|