package com.tandbergtv.metadatamanager.model;

import java.util.List;

public interface IField {

	public abstract String getTtvXPath();

	/**
	 * Sets the xpath. Also sets the datatype based on the xpath. Uses the
	 * datatype map created fromt the datatypemapping.dat file
	 * 
	 * @param ttvXPath
	 */
	public abstract void setTtvXPath(String ttvXPath);

	public abstract String getValue();

	/**
	 * Based on the type, this method attempts to return the value in the
	 * correct type. Returns NULL if cannot parse value to specified type.
	 * 
	 * Note: Time type is returned as a String.
	 * 
	 * @return Object
	 */
	public abstract Object getTypedValue();

	public abstract void setTypedValue(Object value);

	public abstract void setValue(String value);

	public abstract List<Integer> getIndices();

	public abstract void setIndices(List<Integer> indices);

	public abstract Asset getRoot();

	public abstract void setRoot(Asset root);

	public abstract String getStoredIndices();

	public abstract long getId();

	public abstract void setId(long id);

	public abstract String getDataType();

	public abstract Asset getParentAsset();

	public abstract void setParentAsset(Asset parentAsset);

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	public abstract String toString();

}