public function update(Common\ISource $source, $isGroupJoin, IFilter $filter = null, $hasDefault = false)
{
if ($this->source === $source && $this->isGroupJoin === $isGroupJoin && $this->filter === $filter && $this->hasDefault === $hasDefault) {
return $this;
}
return new self($source, $isGroupJoin, $filter, $hasDefault, $this->defaultValueId, $this->defaultKeyId);
}