public function getRemoteHistoryContaos($criteria = null, PropelPDO $con = null)
    {
        $partial = $this->collRemoteHistoryContaosPartial && !$this->isNew();
        if (null === $this->collRemoteHistoryContaos || null !== $criteria  || $partial) {
            if ($this->isNew() && null === $this->collRemoteHistoryContaos) {
                // return empty collection
                $this->initRemoteHistoryContaos();
            } else {
                $collRemoteHistoryContaos = RemoteHistoryContaoQuery::create(null, $criteria)
                    ->filterByRemoteApp($this)
                    ->find($con);
                if (null !== $criteria) {
                    if (false !== $this->collRemoteHistoryContaosPartial && count($collRemoteHistoryContaos)) {
                      $this->initRemoteHistoryContaos(false);

                      foreach ($collRemoteHistoryContaos as $obj) {
                        if (false == $this->collRemoteHistoryContaos->contains($obj)) {
                          $this->collRemoteHistoryContaos->append($obj);
                        }
                      }

                      $this->collRemoteHistoryContaosPartial = true;
                    }

                    $collRemoteHistoryContaos->getInternalIterator()->rewind();

                    return $collRemoteHistoryContaos;
                }

                if ($partial && $this->collRemoteHistoryContaos) {
                    foreach ($this->collRemoteHistoryContaos as $obj) {
                        if ($obj->isNew()) {
                            $collRemoteHistoryContaos[] = $obj;
                        }
                    }
                }

                $this->collRemoteHistoryContaos = $collRemoteHistoryContaos;
                $this->collRemoteHistoryContaosPartial = false;
            }
        }

        return $this->collRemoteHistoryContaos;
    }