<?php

/**
 * Generated by phpSPO model generator 2020-05-26T22:35:11+00:00 
 */
namespace Office365\Graph;

use Office365\Runtime\ClientObject;
use Office365\Runtime\ResourcePath;
/**
 *  "The list resource represents a list in a site."
 */
class SharePointList extends ClientObject
{
    /**
     * @return string
     */
    public function getDisplayName()
    {
        if (!$this->isPropertyAvailable("DisplayName")) {
            return null;
        }
        return $this->getProperty("DisplayName");
    }
    /**
     * @var string
     */
    public function setDisplayName($value)
    {
        $this->setProperty("DisplayName", $value, true);
    }
    /**
     * @return Drive
     */
    public function getDrive()
    {
        if (!$this->isPropertyAvailable("Drive")) {
            $this->setProperty("Drive", new Drive($this->getContext(), new ResourcePath("Drive", $this->getResourcePath())));
        }
        return $this->getProperty("Drive");
    }
    /**
     * @return ListInfo
     */
    public function getList()
    {
        if (!$this->isPropertyAvailable("List")) {
            return null;
        }
        return $this->getProperty("List");
    }
    /**
     * @var ListInfo
     */
    public function setList($value)
    {
        $this->setProperty("List", $value, true);
    }
    /**
     * @return SharepointIds
     */
    public function getSharepointIds()
    {
        if (!$this->isPropertyAvailable("SharepointIds")) {
            return null;
        }
        return $this->getProperty("SharepointIds");
    }
    /**
     * @var SharepointIds
     */
    public function setSharepointIds($value)
    {
        $this->setProperty("SharepointIds", $value, true);
    }
    /**
     * @return SystemFacet
     */
    public function getSystem()
    {
        if (!$this->isPropertyAvailable("System")) {
            return null;
        }
        return $this->getProperty("System");
    }
    /**
     * @var SystemFacet
     */
    public function setSystem($value)
    {
        $this->setProperty("System", $value, true);
    }
    /**
     * @return ListItemCollection
     */
    public function getItems()
    {
        if (!$this->isPropertyAvailable("Items")) {
            $this->setProperty("Items", new ListItemCollection($this->getContext(), new ResourcePath("Items", $this->getResourcePath())));
        }
        return $this->getProperty("Items");
    }
}