org.alfresco.service.cmr.repository.datatype.TypeConverter

Here are the examples of the java api class org.alfresco.service.cmr.repository.datatype.TypeConverter taken from open source projects.

1. PropFindMethod#generateAllPropertiesResponse()

Project: community-edition
File: PropFindMethod.java
/**
     * Generates the XML response for a PROPFIND request that asks for all known
     * properties
     * 
     * @param xml XMLWriter
     * @param nodeInfo FileInfo
     * @param isDir boolean
     */
protected void generateAllPropertiesResponse(XMLWriter xml, FileInfo nodeInfo, boolean isDir) throws Exception {
    // Get the properties for the node
    Map<QName, Serializable> props = nodeInfo.getProperties();
    // Output the start of the properties element
    Attributes nullAttr = getDAVHelper().getNullAttributes();
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_PROPSTAT, WebDAV.XML_NS_PROPSTAT, nullAttr);
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_PROP, WebDAV.XML_NS_PROP, nullAttr);
    // Generate a lock status report, if locked
    generateLockDiscoveryResponse(xml, nodeInfo, isDir);
    // Output the supported lock types
    writeLockTypes(xml);
    // If the node is a folder then return as a collection type
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_RESOURCE_TYPE, WebDAV.XML_NS_RESOURCE_TYPE, nullAttr);
    if (isDir)
        xml.write(DocumentHelper.createElement(WebDAV.XML_NS_COLLECTION));
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_RESOURCE_TYPE, WebDAV.XML_NS_RESOURCE_TYPE);
    // Get the node name
    Object davValue = WebDAV.getDAVPropertyValue(props, WebDAV.XML_DISPLAYNAME);
    TypeConverter typeConv = DefaultTypeConverter.INSTANCE;
    // Output the node name
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_DISPLAYNAME, WebDAV.XML_NS_DISPLAYNAME, nullAttr);
    if (davValue != null) {
        String name = typeConv.convert(String.class, davValue);
        if (name == null || name.length() == 0) {
            logger.error("WebDAV name is null, value=" + davValue.getClass().getName() + ", node=" + nodeInfo.getNodeRef());
        }
        xml.write(name);
    }
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_DISPLAYNAME, WebDAV.XML_NS_DISPLAYNAME);
    // Output the source
    //
    // NOTE: source is always a no content element in our implementation
    xml.write(DocumentHelper.createElement(WebDAV.XML_NS_SOURCE));
    // Get the creation date
    davValue = WebDAV.getDAVPropertyValue(props, WebDAV.XML_CREATION_DATE);
    // Output the creation date
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_CREATION_DATE, WebDAV.XML_NS_CREATION_DATE, nullAttr);
    if (davValue != null)
        xml.write(WebDAV.formatCreationDate(typeConv.convert(Date.class, davValue)));
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_CREATION_DATE, WebDAV.XML_NS_CREATION_DATE);
    // Get the modifed date/time
    davValue = WebDAV.getDAVPropertyValue(props, WebDAV.XML_GET_LAST_MODIFIED);
    // Output the last modified date of the node
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_GET_LAST_MODIFIED, WebDAV.XML_NS_GET_LAST_MODIFIED, nullAttr);
    if (davValue != null)
        xml.write(WebDAV.formatModifiedDate(typeConv.convert(Date.class, davValue)));
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_GET_LAST_MODIFIED, WebDAV.XML_NS_GET_LAST_MODIFIED);
    if (isDir == false) {
        // Get the content language
        // TODO:
        // Output the content language
        xml.startElement(WebDAV.DAV_NS, WebDAV.XML_GET_CONTENT_LANGUAGE, WebDAV.XML_NS_GET_CONTENT_LANGUAGE, nullAttr);
        // TODO:
        xml.endElement(WebDAV.DAV_NS, WebDAV.XML_GET_CONTENT_LANGUAGE, WebDAV.XML_NS_GET_CONTENT_LANGUAGE);
        // Get the content type
        davValue = WebDAV.getDAVPropertyValue(props, WebDAV.XML_GET_CONTENT_TYPE);
        // Output the content type
        xml.startElement(WebDAV.DAV_NS, WebDAV.XML_GET_CONTENT_TYPE, WebDAV.XML_NS_GET_CONTENT_TYPE, nullAttr);
        if (davValue != null)
            xml.write(typeConv.convert(String.class, davValue));
        xml.endElement(WebDAV.DAV_NS, WebDAV.XML_GET_CONTENT_TYPE, WebDAV.XML_NS_GET_CONTENT_TYPE);
        // Output the etag
        xml.startElement(WebDAV.DAV_NS, WebDAV.XML_GET_ETAG, WebDAV.XML_NS_GET_ETAG, nullAttr);
        xml.write(getDAVHelper().makeETag(nodeInfo));
        xml.endElement(WebDAV.DAV_NS, WebDAV.XML_GET_ETAG, WebDAV.XML_NS_GET_ETAG);
    }
    // Get the content length, if it's not a folder
    long len = 0;
    if (isDir == false) {
        ContentData contentData = (ContentData) props.get(ContentModel.PROP_CONTENT);
        if (contentData != null)
            len = contentData.getSize();
    }
    // Output the content length
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_GET_CONTENT_LENGTH, WebDAV.XML_NS_GET_CONTENT_LENGTH, nullAttr);
    xml.write("" + len);
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_GET_CONTENT_LENGTH, WebDAV.XML_NS_GET_CONTENT_LENGTH);
    // Print out all the custom properties
    SessionUser davUser = (SessionUser) m_request.getSession().getAttribute(AuthenticationFilter.AUTHENTICATION_USER);
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_ALF_AUTHTICKET, WebDAV.XML_NS_ALF_AUTHTICKET, nullAttr);
    if (davUser != null)
        xml.write(davUser.getTicket());
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_ALF_AUTHTICKET, WebDAV.XML_NS_ALF_AUTHTICKET);
    // Close off the response
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_PROP, WebDAV.XML_NS_PROP);
    xml.startElement(WebDAV.DAV_NS, WebDAV.XML_STATUS, WebDAV.XML_NS_STATUS, nullAttr);
    xml.write(WebDAV.HTTP1_1 + " " + HttpServletResponse.SC_OK + " " + WebDAV.SC_OK_DESC);
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_STATUS, WebDAV.XML_NS_STATUS);
    xml.endElement(WebDAV.DAV_NS, WebDAV.XML_PROPSTAT, WebDAV.XML_NS_PROPSTAT);
}

2. GetMethod#checkPreConditions()

Project: community-edition
File: GetMethod.java
/**
     * Checks the If header conditions
     * 
     * @param nodeInfo the node to check
     * @throws WebDAVServerException if a pre-condition is not met
     */
private void checkPreConditions(FileInfo nodeInfo) throws WebDAVServerException {
    // Make an etag for the node
    String strETag = getDAVHelper().makeQuotedETag(nodeInfo);
    TypeConverter typeConv = DefaultTypeConverter.INSTANCE;
    if (ifMatchTags != null) {
        if (ifMatchTags.contains(WebDAV.ASTERISK) == false && ifMatchTags.contains(strETag) == false) {
            throw new WebDAVServerException(HttpServletResponse.SC_PRECONDITION_FAILED);
        }
    }
    if (ifNoneMatchTags != null) {
        if (ifNoneMatchTags.contains(WebDAV.ASTERISK) || ifNoneMatchTags.contains(strETag)) {
            throw new WebDAVServerException(HttpServletResponse.SC_NOT_MODIFIED);
        }
    }
    if (m_ifModifiedSince != null && ifNoneMatchTags == null) {
        Date lastModifiedDate = nodeInfo.getModifiedDate();
        long fileLastModified = lastModifiedDate != null ? typeConv.longValue(lastModifiedDate) : 0L;
        long modifiedSince = m_ifModifiedSince.getTime();
        if (fileLastModified != 0L && fileLastModified <= modifiedSince) {
            throw new WebDAVServerException(HttpServletResponse.SC_NOT_MODIFIED);
        }
    }
    if (m_ifUnModifiedSince != null) {
        Date lastModifiedDate = nodeInfo.getModifiedDate();
        long fileLastModified = lastModifiedDate != null ? typeConv.longValue(lastModifiedDate) : 0L;
        long unModifiedSince = m_ifUnModifiedSince.getTime();
        if (fileLastModified >= unModifiedSince) {
            throw new WebDAVServerException(HttpServletResponse.SC_PRECONDITION_FAILED);
        }
    }
}