Package com.flowable.webdav.impl
Class WebDavFileServiceImpl
java.lang.Object
com.flowable.webdav.impl.WebDavFileServiceImpl
- All Implemented Interfaces:
WebDavFileService
public class WebDavFileServiceImpl extends java.lang.Object implements WebDavFileService
-
Field Summary
Fields Modifier and Type Field Description static int
BUFFER_SIZE
protected com.flowable.core.content.api.CoreContentService
coreContentService
protected com.flowable.core.content.api.MetadataService
metadataService
protected com.fasterxml.jackson.databind.ObjectMapper
objectMapper
protected java.io.File
webDavFolder
-
Constructor Summary
Constructors Constructor Description WebDavFileServiceImpl(com.flowable.core.content.api.CoreContentService coreContentService, com.flowable.core.content.api.MetadataService metadataService, com.fasterxml.jackson.databind.ObjectMapper objectMapper, java.io.File webDavFolder)
-
Method Summary
Modifier and Type Method Description protected long
determineTimeout(long timeout)
java.lang.String
generateEtag(com.flowable.core.content.api.CoreContentItem contentItem)
java.util.List<com.ithit.webdav.server.LockInfo>
getActiveLocks(com.flowable.core.content.api.CoreContentItem contentItem)
protected int
getLatestContentItemVersion(com.flowable.core.content.api.CoreContentItem coreContentItem)
java.util.List<com.ithit.webdav.server.Property>
getProperties(com.flowable.core.content.api.CoreContentItem contentItem, com.ithit.webdav.server.Property[] properties)
protected java.lang.String
getUniqueTempFileName(com.flowable.core.content.api.CoreContentItem contentItem)
protected boolean
hasExclusiveLock(com.flowable.core.content.api.CoreContentItem contentItem)
com.ithit.webdav.server.LockResult
lock(com.flowable.core.content.api.CoreContentItem contentItem, boolean shared, boolean deep, long timeout, java.lang.String owner)
void
readContentItem(com.flowable.core.content.api.CoreContentItem contentItem, java.io.OutputStream outputStream, long startIndex, long count)
com.ithit.webdav.server.RefreshLockResult
refreshLock(com.flowable.core.content.api.CoreContentItem contentItem, java.lang.String token, long timeout)
protected java.util.List<com.ithit.webdav.server.Property>
toProperties(com.fasterxml.jackson.databind.node.ObjectNode propertiesNode)
com.ithit.webdav.server.Property
toProperty(com.fasterxml.jackson.databind.JsonNode propertyNode)
void
unlock(com.flowable.core.content.api.CoreContentItem contentItem, java.lang.String lockToken)
void
updateProperties(com.flowable.core.content.api.CoreContentItem contentItem, com.ithit.webdav.server.Property[] setProps, com.ithit.webdav.server.Property[] delProps)
long
writeContentItem(com.flowable.core.content.api.CoreContentItem contentItem, java.io.InputStream content, java.lang.String contentType, long startIndex, long totalFileLength)
-
Field Details
-
BUFFER_SIZE
public static final int BUFFER_SIZE- See Also:
- Constant Field Values
-
coreContentService
protected com.flowable.core.content.api.CoreContentService coreContentService -
metadataService
protected com.flowable.core.content.api.MetadataService metadataService -
objectMapper
protected com.fasterxml.jackson.databind.ObjectMapper objectMapper -
webDavFolder
protected java.io.File webDavFolder
-
-
Constructor Details
-
WebDavFileServiceImpl
public WebDavFileServiceImpl(com.flowable.core.content.api.CoreContentService coreContentService, com.flowable.core.content.api.MetadataService metadataService, com.fasterxml.jackson.databind.ObjectMapper objectMapper, java.io.File webDavFolder)
-
-
Method Details
-
generateEtag
public java.lang.String generateEtag(com.flowable.core.content.api.CoreContentItem contentItem)- Specified by:
generateEtag
in interfaceWebDavFileService
-
getProperties
public java.util.List<com.ithit.webdav.server.Property> getProperties(com.flowable.core.content.api.CoreContentItem contentItem, com.ithit.webdav.server.Property[] properties)- Specified by:
getProperties
in interfaceWebDavFileService
-
toProperties
protected java.util.List<com.ithit.webdav.server.Property> toProperties(com.fasterxml.jackson.databind.node.ObjectNode propertiesNode) -
toProperty
public com.ithit.webdav.server.Property toProperty(com.fasterxml.jackson.databind.JsonNode propertyNode) -
updateProperties
public void updateProperties(com.flowable.core.content.api.CoreContentItem contentItem, com.ithit.webdav.server.Property[] setProps, com.ithit.webdav.server.Property[] delProps)- Specified by:
updateProperties
in interfaceWebDavFileService
-
getActiveLocks
public java.util.List<com.ithit.webdav.server.LockInfo> getActiveLocks(com.flowable.core.content.api.CoreContentItem contentItem)- Specified by:
getActiveLocks
in interfaceWebDavFileService
-
lock
public com.ithit.webdav.server.LockResult lock(com.flowable.core.content.api.CoreContentItem contentItem, boolean shared, boolean deep, long timeout, java.lang.String owner) throws com.ithit.webdav.server.exceptions.LockedException- Specified by:
lock
in interfaceWebDavFileService
- Throws:
com.ithit.webdav.server.exceptions.LockedException
-
refreshLock
public com.ithit.webdav.server.RefreshLockResult refreshLock(com.flowable.core.content.api.CoreContentItem contentItem, java.lang.String token, long timeout) throws com.ithit.webdav.server.exceptions.PreconditionFailedException- Specified by:
refreshLock
in interfaceWebDavFileService
- Throws:
com.ithit.webdav.server.exceptions.PreconditionFailedException
-
unlock
public void unlock(com.flowable.core.content.api.CoreContentItem contentItem, java.lang.String lockToken)- Specified by:
unlock
in interfaceWebDavFileService
-
hasExclusiveLock
protected boolean hasExclusiveLock(com.flowable.core.content.api.CoreContentItem contentItem) -
determineTimeout
protected long determineTimeout(long timeout) -
readContentItem
public void readContentItem(com.flowable.core.content.api.CoreContentItem contentItem, java.io.OutputStream outputStream, long startIndex, long count) throws java.io.IOException- Specified by:
readContentItem
in interfaceWebDavFileService
- Throws:
java.io.IOException
-
writeContentItem
public long writeContentItem(com.flowable.core.content.api.CoreContentItem contentItem, java.io.InputStream content, java.lang.String contentType, long startIndex, long totalFileLength) throws java.io.IOException- Specified by:
writeContentItem
in interfaceWebDavFileService
- Throws:
java.io.IOException
-
getUniqueTempFileName
protected java.lang.String getUniqueTempFileName(com.flowable.core.content.api.CoreContentItem contentItem) -
getLatestContentItemVersion
protected int getLatestContentItemVersion(com.flowable.core.content.api.CoreContentItem coreContentItem)
-