package org.ops4j.pax.exam.quickbuild.internal; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Iterator; import java.util.List; import org.ops4j.pax.exam.quickbuild.Snapshot; import static org.ops4j.pax.exam.quickbuild.internal.DefaultSnapshotBuilder.LINE_DELIM; import org.ops4j.pax.exam.quickbuild.SnapshotElement; /** * @author Toni Menzel */ public class DefaultSnapshot implements Snapshot { final private List<SnapshotElement> m_elements; final private long m_timestamp; public DefaultSnapshot( List<SnapshotElement> elements ) { m_elements = elements; m_timestamp = System.currentTimeMillis(); } public long timestamp() { return m_timestamp; } public void write( OutputStream out ) throws IOException { BufferedWriter writer = new BufferedWriter( new OutputStreamWriter( out ) ); try { for( SnapshotElement element : m_elements ) { writer.write( element.name() + LINE_DELIM + element.checksum() + LINE_DELIM + element.reference() + LINE_DELIM + element.type().name() ); writer.newLine(); } } finally { writer.close(); } } public Iterator<SnapshotElement> iterator() { return m_elements.iterator(); } }