--- /dev/null
+<?php
+
+abstract class SugarObject {
+
+ /** @var SugarWrapper */
+ private $sugarWrapper;
+
+ public function __construct(SugarWrapper $sugarWrapper) {
+ $this->sugarWrapper = $sugarWrapper;
+ }
+
+ abstract public function synchronize();
+
+ abstract public function getModuleName();
+
+ abstract public function getFieldsToRetrieve();
+
+ public function getLinkFieldsToRetrieve() {
+ return array();
+ }
+
+ protected function getSugarWrapper(){
+ return $this->sugarWrapper;
+ }
+
+ public function listObject() {
+ return $this->getSugarWrapper()->simpleRetrieve(
+ $this->getModuleName(),
+ $this->getFieldsToRetrieve(),
+ $this->getLinkFieldsToRetrieve()
+ );
+ }
+
+}
\ No newline at end of file