/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * 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. */ package com.liferay.portal.kernel.webdav; import com.liferay.portal.kernel.lock.Lock; import com.liferay.portal.kernel.util.ContentTypes; import com.liferay.portal.kernel.util.FastDateFormatFactoryUtil; import com.liferay.portal.kernel.util.HttpUtil; import com.liferay.portal.kernel.util.LocaleUtil; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.TimeZoneUtil; import com.liferay.portal.kernel.util.URLCodec; import com.liferay.portal.kernel.util.Validator; import java.io.InputStream; import java.text.Format; import java.util.Date; /** * @author Brian Wing Shun Chan * @author Alexander Chow */ public class BaseResourceImpl implements Resource { public BaseResourceImpl(String parentPath, long name, long displayName) { this(parentPath, String.valueOf(name), String.valueOf(displayName)); } public BaseResourceImpl(String parentPath, long name, String displayName) { this(parentPath, String.valueOf(name), displayName); } public BaseResourceImpl( String parentPath, String name, String displayName) { this(parentPath, name, displayName, null, null); } public BaseResourceImpl( String parentPath, String name, String displayName, Date createDate, Date modifiedDate) { this(parentPath, name, displayName, createDate, modifiedDate, 0); } public BaseResourceImpl( String parentPath, String name, String displayName, Date createDate, Date modifiedDate, long size) { _displayName = displayName; _size = size; String href = HttpUtil.encodePath(parentPath); if (Validator.isNotNull(name)) { href += StringPool.SLASH + URLCodec.encodeURL(name, true); } _href = href; if (createDate == null) { _createDate = new Date(); } else { _createDate = createDate; } if (modifiedDate == null) { _modifiedDate = new Date(); } else { _modifiedDate = modifiedDate; } } @Override public String getClassName() { return _className; } @Override @SuppressWarnings("unused") public InputStream getContentAsStream() throws WebDAVException { return null; } @Override public String getContentType() { return ContentTypes.HTTPD_UNIX_DIRECTORY; } @Override public String getCreateDate() { return _createDateFormatter.format(_createDate); } @Override public String getDisplayName() { return _displayName; } @Override public String getHREF() { return _href; } @Override public Lock getLock() { return null; } @Override public Object getModel() { return _model; } @Override public String getModifiedDate() { return _modifiedDateFormatter.format(_modifiedDate); } @Override public long getPrimaryKey() { return _primaryKey; } @Override public long getSize() { return _size; } @Override public boolean isCollection() { return true; } @Override public boolean isLocked() { return false; } @Override public void setClassName(String className) { _className = className; } @Override public void setModel(Object model) { _model = model; } @Override public void setPrimaryKey(long primaryKey) { _primaryKey = primaryKey; } private static final Format _createDateFormatter = FastDateFormatFactoryUtil.getSimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss'Z'", LocaleUtil.US, TimeZoneUtil.GMT); private static final Format _modifiedDateFormatter = FastDateFormatFactoryUtil.getSimpleDateFormat( "EEE, dd MMM yyyy HH:mm:ss zzz", LocaleUtil.US, TimeZoneUtil.GMT); private String _className; private final Date _createDate; private final String _displayName; private final String _href; private Object _model; private final Date _modifiedDate; private long _primaryKey = -1; private final long _size; }