/**
 * Multiplicity.java
 * Created Feb 19, 2009
 * Copyright (c) Tandberg Television 2009
 */
package com.tandbergtv.watchpoint.pmm.title.conf;

/**
 * Multiplicity of title-asset
 * 
 * @author Sahil Verma
 */
public enum Multiplicity {
	ANY("any"),
	ONE("one"),
	NONE_OR_ONE("none-or-one"),
	ONE_OR_MORE("one-or-more");

	private String value;
	
	Multiplicity(String value) {
		this.value = value;
	}

	/* (non-Javadoc)
	 * @see java.lang.Enum#toString()
	 */
	@Override
	public String toString() {
		return this.value;
	}

	/**
	 * Calculates the Multiplicity based on the values specified by minimum and maximum values
	 * 
	 * @param min The minimum count
	 * @param max The maximum count (use value -1 for unlimited)
	 * @return the multiplicity for the minimum and maximum counts
	 */
	public static Multiplicity getMultiplicity(int min, int max) {
		Multiplicity multiplicity = ANY;
		if (min == 0 && max == 1)
			multiplicity = NONE_OR_ONE;
		else if (min == 1 && max == 1)
			multiplicity = ONE;
		else if (min == 1)
			multiplicity = ONE_OR_MORE;

		return multiplicity;
	}
}
