<commit_before>package mpicbg.spim.data.sequence;

import mpicbg.spim.data.generic.base.ViewSetupAttributes;
import mpicbg.spim.data.generic.sequence.BasicViewSetup;
import net.imglib2.Dimensions;

/**
 * A collection of parameters describing the setup for a particular stack coming
 * from a SPIM microscope (angle, illumination direction, etc). A
 * {@link ViewSetup} is a {@link BasicViewSetup} that must have a channel,
 * angle, and illumination direction.
 *
 * @author <NAME> <<EMAIL>>
 */
public class ViewSetup extends BasicViewSetup implements Comparable< ViewSetup >
{
	private Channel channel;

	private Angle angle;

	private Illumination illumination;

	protected static String channelAttributeKey = ViewSetupAttributes.getNameForClass( Channel.class );

	protected static String angleAttributeKey = ViewSetupAttributes.getNameForClass( Angle.class );

	protected static String illuminationAttributeKey = ViewSetupAttributes.getNameForClass( Illumination.class );

	/**
	 * TODO
	 *
	 * @param id
	 * @param name
	 * @param size
	 * @param voxelSize
	 * @param channel
	 * @param angle
	 * @param illumination
	 */
	public ViewSetup(
			final int id,
			final String name,
			final Dimensions size,
			final VoxelDimensions voxelSize,
			final Channel channel,
			final Angle angle,
			final Illumination illumination )
	{
		super( id, name, size, voxelSize );
		setChannel( channel );
		setAngle( angle );
		setIllumination( illumination );
	}

	/**
	 * Get the unique id of this {@link ViewSetup}.
	 *
	 * @return unique id.
	 */
	@Override
	public int getId()
	{
		return super.getId();
	}

	/**
	 * Whether this setup has has a {@link #getName()}.
	 *
	 * @return true, if this setup has a name.
	 */
	@Override
	public boolean hasName()
	{
		return super.hasName();
	}

	/**
	 * Get the name of this setup.
	 *
	 * @return the name of this setup or null if it is not set.
	 */
	@Override
	public String getName()
	{
		return super.getName();
	}

	/**
	 * Whether this setup has has a {@link #getSize()}.
	 *
	 * @return true, if this setup has a size.
	 */
	@Override
	public boolean hasSize()
	{
		return super.hasSize();
	}

	/**
	 * Get the {@link Dimensions} of images from this setup.
	 *
	 * @return the {@link Dimensions} of images from this setup or null if it
	 *         is not set.
	 */
	@Override
	public Dimensions getSize()
	{
		return super.getSize();
	}

	/**
	 * Whether this setup has has a {@link #getVoxelSize()}.
	 *
	 * @return true, if this setup has a voxel size.
	 */
	@Override
	public boolean hasVoxelSize()
	{
		return super.hasVoxelSize();
	}

	/**
	 * Get the {@link VoxelDimensions} of images from this setup.
	 *
	 * @return The {@link VoxelDimensions} of images from this setup or null if it is
	 * not set.
	 */
	@Override
	public VoxelDimensions getVoxelSize()
	{
		return super.getVoxelSize();
	}

	/**
	 * Get the {@link Channel}.
	 *
	 * @return the channel
	 */
	public Channel getChannel()
	{
		return channel;
	}

	/**
	 * Set the {@link Channel}.
	 *
	 * @param channel
	 *            the channel
	 */
	protected void setChannel( final Channel channel )
	{
		this.channel = channel;<commit_msg>make ViewSetup.setSize() and setVoxelSize() public. I would rather keep these immutable but saw no quick way of fixing spimreconstruction metadata handling. Maybe we can revert this later with help from Steffi.<commit_after>package mpicbg.spim.data.sequence;

import mpicbg.spim.data.generic.base.ViewSetupAttributes;
import mpicbg.spim.data.generic.sequence.BasicViewSetup;
import net.imglib2.Dimensions;

/**
 * A collection of parameters describing the setup for a particular stack coming
 * from a SPIM microscope (angle, illumination direction, etc). A
 * {@link ViewSetup} is a {@link BasicViewSetup} that must have a channel,
 * angle, and illumination direction.
 *
 * @author <NAME> <<EMAIL>>
 */
public class ViewSetup extends BasicViewSetup implements Comparable< ViewSetup >
{
	private Channel channel;

	private Angle angle;

	private Illumination illumination;

	protected static String channelAttributeKey = ViewSetupAttributes.getNameForClass( Channel.class );

	protected static String angleAttributeKey = ViewSetupAttributes.getNameForClass( Angle.class );

	protected static String illuminationAttributeKey = ViewSetupAttributes.getNameForClass( Illumination.class );

	/**
	 * TODO
	 *
	 * @param id
	 * @param name
	 * @param size
	 * @param voxelSize
	 * @param channel
	 * @param angle
	 * @param illumination
	 */
	public ViewSetup(
			final int id,
			final String name,
			final Dimensions size,
			final VoxelDimensions voxelSize,
			final Channel channel,
			final Angle angle,
			final Illumination illumination )
	{
		super( id, name, size, voxelSize );
		setChannel( channel );
		setAngle( angle );
		setIllumination( illumination );
	}

	/**
	 * Get the unique id of this {@link ViewSetup}.
	 *
	 * @return unique id.
	 */
	@Override
	public int getId()
	{
		return super.getId();
	}

	/**
	 * Whether this setup has has a {@link #getName()}.
	 *
	 * @return true, if this setup has a name.
	 */
	@Override
	public boolean hasName()
	{
		return super.hasName();
	}

	/**
	 * Get the name of this setup.
	 *
	 * @return the name of this setup or null if it is not set.
	 */
	@Override
	public String getName()
	{
		return super.getName();
	}

	/**
	 * Whether this setup has has a {@link #getSize()}.
	 *
	 * @return true, if this setup has a size.
	 */
	@Override
	public boolean hasSize()
	{
		return super.hasSize();
	}

	/**
	 * Get the {@link Dimensions} of images from this setup.
	 *
	 * @return the {@link Dimensions} of images from this setup or null if it
	 *         is not set.
	 */
	@Override
	public Dimensions getSize()
	{
		return super.getSize();
	}

	/**
	 * Set the {@link Dimensions} of images from this setup.
	 */
	@Override
	public void setSize( final Dimensions size )
	{
		super.setSize( size );
	}

	/**
	 * Whether this setup has has a {@link #getVoxelSize()}.
	 *
	 * @return true, if this setup has a voxel size.
	 */
	@Override
	public boolean hasVoxelSize()
	{
		return super.hasVoxelSize();
	}

	/**
	 * Get the {@link VoxelDimensions} of images from this setup.
	 *
	 * @return The {@link VoxelDimensions} of images from this setup or null if it is
	 * not set.
	 */
	@Override
	public VoxelDimensions getVoxelSize()
	{
		return super.getVoxelSize();
	}

	/**
	 * Set the {@link VoxelDimensions} of images from this setup.
	 */
	@Override
	public void setVoxelSize( final VoxelDimensions voxelSize )
	{
		super.setVoxelSize( voxelSize );
	}

	/**
	 * Get the {@link Channel}.
	 *
	 * @return the channel
	 */
	public Channel getChannel()
	{
		return channel;
	}

	/**
	 * Set the {@link Channel}.
	 *
	 * @param channel
	 *            the channel
	 */
	protected void setChannel( final Channel channel )
	{
		this.channel = channel;
{'fraction_non_alphanumeric': 0.10596993139687637, 'fraction_numerical': 0.00029192818566632606, 'mean_word_length': 3.295924764890282, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5559464', 'n_tokens_mistral': 2292, 'n_tokens_neox': 2051, 'n_words': 725}