]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/SabreDAV/lib/Sabre/DAV/SimpleFile.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / lib / Sabre / DAV / SimpleFile.php
diff --git a/dav/SabreDAV/lib/Sabre/DAV/SimpleFile.php b/dav/SabreDAV/lib/Sabre/DAV/SimpleFile.php
new file mode 100644 (file)
index 0000000..58330d6
--- /dev/null
@@ -0,0 +1,121 @@
+<?php
+
+/**
+ * SimpleFile
+ *
+ * The 'SimpleFile' class is used to easily add read-only immutable files to
+ * the directory structure. One usecase would be to add a 'readme.txt' to a
+ * root of a webserver with some standard content.
+ *
+ * @package Sabre
+ * @subpackage DAV
+ * @copyright Copyright (C) 2007-2012 Rooftop Solutions. All rights reserved.
+ * @author Evert Pot (http://www.rooftopsolutions.nl/)
+ * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
+ */
+class Sabre_DAV_SimpleFile extends Sabre_DAV_File {
+
+    /**
+     * File contents
+     *
+     * @var string
+     */
+    protected $contents = array();
+
+    /**
+     * Name of this resource
+     *
+     * @var string
+     */
+    protected $name;
+
+    /**
+     * A mimetype, such as 'text/plain' or 'text/html'
+     *
+     * @var string
+     */
+    protected $mimeType;
+
+    /**
+     * Creates this node
+     *
+     * The name of the node must be passed, as well as the contents of the
+     * file.
+     *
+     * @param string $name
+     * @param string $contents
+     * @param string|null $mimeType
+     */
+    public function __construct($name, $contents, $mimeType = null) {
+
+        $this->name = $name;
+        $this->contents = $contents;
+        $this->mimeType = $mimeType;
+
+    }
+
+    /**
+     * Returns the node name for this file.
+     *
+     * This name is used to construct the url.
+     *
+     * @return string
+     */
+    public function getName() {
+
+        return $this->name;
+
+    }
+
+    /**
+     * Returns the data
+     *
+     * This method may either return a string or a readable stream resource
+     *
+     * @return mixed
+     */
+    public function get() {
+
+        return $this->contents;
+
+    }
+
+    /**
+     * Returns the size of the file, in bytes.
+     *
+     * @return int
+     */
+    public function getSize() {
+
+        return strlen($this->contents);
+
+    }
+
+    /**
+     * Returns the ETag for a file
+     *
+     * An ETag is a unique identifier representing the current version of the file. If the file changes, the ETag MUST change.
+     * The ETag is an arbitrary string, but MUST be surrounded by double-quotes.
+     *
+     * Return null if the ETag can not effectively be determined
+     * @return string
+     */
+    public function getETag() {
+
+        return '"' . md5($this->contents) . '"';
+
+    }
+
+    /**
+     * Returns the mime-type for a file
+     *
+     * If null is returned, we'll assume application/octet-stream
+     * @return string
+     */
+    public function getContentType() {
+
+        return $this->mimeType;
+
+    }
+
+}