<?php
namespace App\Utils\BaseParser\Structure\StructureParser\Structures\Base;

/**
 * Base structure. This will get extended by Document, Itinerary, Passenger, Price, etc
 * @author Lucian Sirbu
 */
abstract class Base
{
	/**
	 * The parent transaction object
	 * @var \App\Sabre\StructureParser\Structures\Transaction|\App\Galileo\StructureParser\Structures\Transaction|\App\Utils\BaseParser\Structure\StructureParser\Structures\Transaction
	 */
	protected $transaction = null;

	/**
	 * Build the main object
	 */
	public function __construct(\App\Utils\BaseParser\Structure\StructureParser\Structures\Transaction $transaction)
	{
		$this->transaction = 	$transaction;
	}

	/**
	 * Initialize the object
	 */
	public function initialize()
	{
		// do nothing at this point
	}

	/**
	 * Destroy the object
	 */
	public function destroy()
	{
		$this->transaction = null;
	}

	/**
	 * Get the data gathered for this stucture
	 */
	abstract public function getData();
}
