/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.web.webdav; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import org.apache.jackrabbit.util.Text; import org.apache.jackrabbit.webdav.DavResource; import org.apache.jackrabbit.webdav.DavResourceIterator; import org.apache.jackrabbit.webdav.io.OutputContext; import com.enonic.cms.core.product.ProductVersion; final class DavFolderIndexWriter { private final DavResource resource; public DavFolderIndexWriter( final DavResource resource ) { this.resource = resource; } public void write( final OutputContext out ) throws IOException { out.setModificationTime( System.currentTimeMillis() ); out.setContentType( "text/html" ); if ( out.hasStream() ) { write( out.getOutputStream() ); } } private void write( final OutputStream out ) throws IOException { final PrintWriter writer = new PrintWriter( out ); write( writer ); writer.flush(); writer.close(); } private void write( final PrintWriter out ) throws IOException { out.print( "<html><head><title>" ); out.print( this.resource.getResourcePath() ); out.print( "</title></head>" ); out.print( "<body><h2>" ); out.print( "WebDav " + this.resource.getResourcePath() ); out.print( "</h2><ul>" ); if ( !this.resource.getResourcePath().equals( "/" ) ) { out.print( "<li><a href=\"..\">..</a></li>" ); } final DavResourceIterator it = this.resource.getMembers(); while ( it.hasNext() ) { final DavResource child = it.nextResource(); final String label = Text.getName( child.getResourcePath() ); out.print( "<li><a href=\"" ); out.print( child.getHref() ); out.print( "\">" ); out.print( label ); out.print( "</a></li>" ); } out.print( "</ul><hr size=\"1\"><em>Powered by " ); out.print( ProductVersion.getFullTitleAndVersion() ); out.print( "</em></body></html>" ); } }