package es.uv.saic.domain;

import java.util.ArrayList;
import java.util.List;

public class Dimension {

	private String titulacion;
	private String dimension;
	private List<Indicador> indicadores;
	
	public Dimension(){}
	public Dimension(String titulacion, String dimension) {
		this.titulacion = titulacion;
		this.dimension = dimension;
		this.indicadores = new ArrayList<Indicador>();
	}
	
	public String getTitulacion() {
		return titulacion;
	}
	
	public void setTitulacion(String titulacion) {
		this.titulacion = titulacion;
	}
	
	public String getDimension() {
		return dimension;
	}
	
	public void setDimension(String dimension) {
		this.dimension = dimension;
	}
	public List<Indicador> getIndicadores() {
		return indicadores;
	}
	
	public void setIndicadores(List<Indicador> indicadores) {
		this.indicadores = indicadores;
	}
	
	public boolean add(Indicador arg0) {
		return indicadores.add(arg0);
	}
	
	public Indicador get(int arg0) {
		return indicadores.get(arg0);
	}
	
	public boolean isEmpty() {
		return indicadores.isEmpty();
	}
	
	public Indicador set(int arg0, Indicador arg1) {
		return indicadores.set(arg0, arg1);
	}
	
	public int size() {
		return indicadores.size();
	}

	public Indicador newIndicador(String indicador) {
		return new Indicador(indicador);
	}

	public class Indicador{
		private String indicador;
		private List<Indicador> subindicadores;
		private List<CursoValor> valores;
		
		public Indicador(){}
		public Indicador(String indicador){
			this.indicador = indicador;
			this.valores = new ArrayList<CursoValor>();
			this.subindicadores = new ArrayList<Indicador>();
		}

		public String getIndicador() {
			return this.indicador;
		}
		
		public void setIndicador(String indicador) {
			this.indicador = indicador;
		}
		
		public List<CursoValor> getValores() {
			return this.valores;
		}
	
		public boolean add(CursoValor arg0) {
			return this.valores.add(arg0);
		}
	
		public boolean isEmpty() {
			return this.valores.isEmpty();
		}
	
		public int size() {
			return this.valores.size();
		}
		
		public boolean addCursoValor(String curso, String valor) {
			return this.add(new CursoValor(curso, valor));
		}

		public boolean addSubindicador(Indicador arg0) {
			return this.subindicadores.add(arg0);
		}
		
		public List<Indicador> getSubindicadores(){
			return this.subindicadores;
		}

		public class CursoValor{
			private String curso;
			private String valor;
			
			public CursoValor(){ }
			
			public CursoValor(String curso, String valor) {
				this.curso = curso;
				this.valor = valor;
			}
			
			public String getCurso() {
				return curso;
			}
			public void setCurso(String curso) {
				this.curso = curso;
			}
			public String getValor() {
				return valor;
			}
			public void setValor(String valor) {
				this.valor = valor;
			}
		}
	}
	
}
