package com.tandbergtv.watchpoint.pmm.core;


/**
 * Holds mapping information for asset mapping.
 * 
 * @author Raj Prakash
 */
public class AssetMapInfo {
	private static final String TITLEID_PREFIX = "titleId:";

	public enum Status {
		MATCHED_TITLE_UPDATED,
		NO_MATCH,
		MULTIPLE_MATCHES
	}
	
	private Status status;
	private StringBuffer mappedTitles;
	
	/**
	 * Constructor
	 */
	public AssetMapInfo(Status status) {
		this.status = status;
		mappedTitles = new StringBuffer();
	}
	
	/**
	 * @return the status
	 */
	public Status getStatus() {
		return status;
	}

	/**
	 * @param status the status to set
	 */
	public void setStatus(Status status) {
		this.status = status;
	}

	public void addMappedTitle(Long titleId, boolean validationSuccess, String titleName) {
		if(mappedTitles.length() > 0)
			mappedTitles.append(", ");
		mappedTitles.append("[")
				.append(TITLEID_PREFIX).append(titleId)
				.append("|")
				.append("Validation ").append(validationSuccess ? "Success" : "Failure")
				.append("|")
				.append(titleName)
				.append("]");
	}
	
	public String getMappedTitles() {
		return mappedTitles.toString();
	}
	
	@Override
	public String toString() {
		StringBuffer sb = new StringBuffer();
		sb.append("Status: ").append(status).append(" | ");
		sb.append("Mapped Titles: ").append(mappedTitles);
		return sb.toString();
	}
}
