All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencms.file.wrapper.CmsWrappedResource Maven / Gradle / Ivy

Go to download

OpenCms is an enterprise-ready, easy to use website content management system based on Java and XML technology. Offering a complete set of features, OpenCms helps content managers worldwide to create and maintain beautiful websites fast and efficiently.

There is a newer version: 18.0
Show newest version
/*
 * This library is part of OpenCms -
 * the Open Source Content Management System
 *
 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * For further information about Alkacon Software GmbH & Co. KG, please see the
 * company website: http://www.alkacon.com
 *
 * For further information about OpenCms, please see the
 * project website: http://www.opencms.org
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package org.opencms.file.wrapper;

import org.opencms.file.CmsFile;
import org.opencms.file.CmsResource;

/**
 * Helper class to create "virtual" resources not existing in the vfs which are
 * based on existing resources.

* * It is not possible to change a {@link CmsResource} instance. This helper class * clones a CmsResource and can change some attributes of the * CmsResource like the path, the typeId or the length.

* * @since 6.2.4 */ public class CmsWrappedResource { /** The resource this virtual resources is based on. */ private CmsResource m_base; /** Indicates if the virtual resource is a folder or not. */ private boolean m_isFolder; /** The size of the content of the virtual resource. */ private int m_length; /** The root path of the virtual resource. */ private String m_rootPath; /** The type id of the virtual resource. */ private int m_typeId; /** * Creates a new virtual resource.

* * @param res the resource this virtual resource is based on */ public CmsWrappedResource(CmsResource res) { m_base = res; m_rootPath = res.getRootPath(); m_typeId = res.getTypeId(); m_isFolder = res.isFolder(); m_length = res.getLength(); } /** * Returns the virtual resource as a file.

* * @return the virtual resource as a file */ public CmsFile getFile() { if (m_base instanceof CmsFile) { CmsFile file = (CmsFile)m_base; return new CmsFile( file.getStructureId(), file.getResourceId(), m_rootPath, m_typeId, file.getFlags(), file.getProjectLastModified(), file.getState(), file.getDateCreated(), file.getUserCreated(), file.getDateLastModified(), file.getUserLastModified(), file.getDateReleased(), file.getDateExpired(), file.getSiblingCount(), file.getLength(), file.getDateContent(), file.getVersion(), file.getContents()); } return new CmsFile(getResource()); } /** * Returns the length.

* * @return the length */ public int getLength() { return m_length; } /** * Returns the virtual resource.

* * @return the virtual resource */ public CmsResource getResource() { return new CmsResource( m_base.getStructureId(), m_base.getResourceId(), m_rootPath, m_typeId, m_isFolder, m_base.getFlags(), m_base.getProjectLastModified(), m_base.getState(), m_base.getDateCreated(), m_base.getUserCreated(), m_base.getDateLastModified(), m_base.getUserLastModified(), m_base.getDateReleased(), m_base.getDateExpired(), m_base.getSiblingCount(), m_length, m_base.getDateContent(), m_base.getVersion()); } /** * Returns the rootPath.

* * @return the rootPath */ public String getRootPath() { return m_rootPath; } /** * Returns the typeId.

* * @return the typeId */ public int getTypeId() { return m_typeId; } /** * Returns the isFolder.

* * @return the isFolder */ public boolean isFolder() { return m_isFolder; } /** * Sets the isFolder.

* * @param isFolder the isFolder to set */ public void setFolder(boolean isFolder) { m_isFolder = isFolder; if ((m_isFolder) && (!m_rootPath.endsWith("/"))) { m_rootPath += "/"; } } /** * Sets the length.

* * @param length the length to set */ public void setLength(int length) { m_length = length; } /** * Sets the rootPath.

* * @param rootPath the rootPath to set */ public void setRootPath(String rootPath) { m_rootPath = rootPath; } /** * Sets the typeId.

* * @param typeId the typeId to set */ public void setTypeId(int typeId) { m_typeId = typeId; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy