<?php

trait UOJDataTrait {
	public $info;
	protected static $cur = null;

	public static function query() {
		return null;
	}

	public static function init() {
		$cur = call_user_func_array('static::query', func_get_args());
		if (!$cur) {
			return false;
		}
		static::$cur = $cur;
		return true;
	}

	/**
	 * @return static
	 */
	public static function cur() {
		return static::$cur;
	}
    
	public static function info($key = null) {
		if ($key === null) {
			return static::$cur->info;
		} else {
			return static::$cur->info[$key];
		}
	}

	public function setAsCur() {
		static::$cur = $this;
		return $this;
	}
}