All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.oliviercailloux.j_voting.profiles.StrictProfile Maven / Gradle / Ivy

The newest version!
package io.github.oliviercailloux.j_voting.profiles;

import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

import io.github.oliviercailloux.j_voting.Alternative;

/**
 * A StrictProfile represents a complete StrictProfile. The preferences are
 * strict. The preferences are about the same alternatives exactly.
 *
 */
public interface StrictProfile extends StrictProfileI, Profile {

	/**
	 * @param i not null the ith alternative to get from Voters in the
	 *          profile
	 * @return a List of Alternatives
	 */
	public List getIthAlternatives(int i);

	/**
	 * @param i not null the ith alternative to get from Voters with
	 *          different Preferences in the profile
	 * @return a List of Alternatives
	 */
	public List getIthAlternativesOfUniquePreferences(int i);

	/**
	 * writes the strict and complete profile into a new file with the SOC format.
	 */
	public void writeToSOC(OutputStream output) throws IOException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy