/*
 * IsoVolSet.java
 *
 * Copyright (c) 2007  Vreixo Formoso
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * See COPYING file for details.
 */

package org.pykix.libburnia.libisofs;

import org.pykix.libburnia.bindings.Proxy;
import org.pykix.libburnia.libburn.BurnSource;
import org.pykix.libburnia.libburn.Source;

/**
 * A set of data volumes.
 * 
 * <p>
 * You will need an <code>IsoVolSet</code> object to create an ISO image
 * from a {@link IsoVolume}.
 * 
 * <p>
 * For actually burn (or write to a file) the image, you will need to create
 * a new {@link Source} with this Volume Set.
 * 
 * @see BurnSource
 * @see Source
 * @see IsoVolume
 * 
 * @author Vreixo Formoso
 * @since 0.1
 */
public class IsoVolSet extends Proxy {

	/**
	 * Create a new Volume Set consisting of only one volume.
	 * @param volume
	 * 		The first and only volume for the volset to contain.
	 * @param volsetId
	 * 		The Volume Set ID.
	 */
	public IsoVolSet(IsoVolume volume, String volsetId) {
		super( iso_volset_new( pointerOf(volume), volsetId) );
	}
	
	@Override
	protected void finalize() throws Throwable {
		super.finalize();
		iso_volset_free( pointerOf(this) );
	}

	private static native void iso_volset_free(long volume);

	private static native long iso_volset_new(long volume, String volsetId);
	
}
