import java.util.Calendar;

//clase con funciones estáticas para el formato del log
public class Misc
{
	//variable estatica de la clase
	private static String ind = "";

	//metodo que devuelve una cadena para encabezar una linea del log
	public static String ind()
	{
		return "[" + getTimestamp() + "]-> " + ind;
	}

	//metodo que aumenta la indentacion de la cabecera
	public static void aumentarInd()
	{
		ind = ind + "   ";
	}

	//metodo que reduce la indentacion de la cabecera
	public static void reducirInd()
	{
		//comprobamos que la cadena no tenta el tamaño mínimo
		if (ind.length() > 0)
			ind = ind.substring(3);
	}

	//metodo que genera una cadena con la hora del sistema
	public static String getTimestamp()
	{
		String timestamp;
		Calendar calendar = Calendar.getInstance();
		//generamos la hora
		int hour = calendar.get(Calendar.HOUR_OF_DAY);
		//damos formato a la hora
		String hourStr = formatTime(hour);
		//generamos los minutos
		int minute = calendar.get(Calendar.MINUTE);
		//damos formato a los minutos
		String minuteStr = formatTime(minute);
		//generamos los segundos
		int second = calendar.get(Calendar.SECOND);
		//damos formato a los segundos
		String secondStr = formatTime(second);
		//damos formato a la cadena final
		timestamp = hourStr + ":" + minuteStr + ":" + secondStr;
		//devolvemos la cadena
		return timestamp;
	}

	//método que da formato
	private static String formatTime(int time)
	{
		String timeStr;

		//si el valor es menor que 10 añadimos un 0 a la izquierda
		if(time < 10)
		{
			timeStr = "0" + time;
		}
		//sino no añadimos nada
		else
		{
			timeStr = "" + time;
		}

		//devolvemos la cadena con formato
		return timeStr;
	}
}
