interfacesFerrovia
Interface ControleFerrovia

All Superinterfaces:
DefsGlobais
All Known Implementing Classes:
Ferrovia

public interface ControleFerrovia
extends DefsGlobais

Interface para acesso aos comandos da rede ferroviária.

Author:
Fernando Vanini

Nested Class Summary
 
Nested classes/interfaces inherited from interface interfacesFerrovia.DefsGlobais
DefsGlobais.TipoAtributo, DefsGlobais.TipoElemento, DefsGlobais.TipoFalha
 
Method Summary
 int acelerarComposicao(java.lang.String idComposicao, float velocidade, boolean urgente)
          Comando para acelerar uma composicão.
 java.lang.Object consultaAtributo(java.lang.String idElemento, DefsGlobais.TipoAtributo atributo)
          Consulta um atributo de um elemento da rede.
 java.util.Map<DefsGlobais.TipoAtributo,java.lang.Object> consultaAtributosFixos(java.lang.String idElemento)
          Consulta os atributos fixos de um elemento da rede.
 float consultaDistMinParada(java.lang.String idComposicao)
          Calcula a distância mínima necessária à parada de uma composição.
 java.lang.String[] consultaElementos()
          Consulta aos elementos da rede.
 java.util.Map<DefsGlobais.TipoAtributo,java.lang.Object> consultaEstado(java.lang.String idElemento)
          Consulta o estado (formado pelo conjunto de atributos variáveis) de um elemento da rede.
 java.util.Set<DefsGlobais.TipoAtributo> consultaListaDeAtributos(java.lang.String idElemento)
          Consulta o conjunto de atributos de um dado elemento da rede.
 float consultaPosicao(java.lang.String idComposicao, int instante)
          COnsulta a posição prevista para um instante futuro.
 int consultaTempo(java.lang.String idComposicao, float posicao)
          Consulta o tempo previsto para atingir uma dada posição no trecho atual (considerando a velocidade e taxa de aceleração ou frenagem atuais).
 void defineCenario(int cenario)
          Define o cenário a ser usado na simulação.
 int frearComposicao(java.lang.String idComposicao, float velocidade, boolean urgente)
          Comando para frear a composição.
 boolean mudarChave(java.lang.String idChave, java.lang.String idTrechoA, java.lang.String idTrechoB)
          Comando para mudar o estado de uma chave.
 boolean registraTratadorDeEventos(TratadorDeEventos tratador)
          Registra um tratador para os eventos gerados pela rede ferroviária.
 void simularCenario(int t1, int t2)
          Simula um cenário pré-definido, formado por um conjunto de elementos de rede.
 

Method Detail

registraTratadorDeEventos

boolean registraTratadorDeEventos(TratadorDeEventos tratador)
Registra um tratador para os eventos gerados pela rede ferroviária. Pode-se registrar mais de um tratador

Parameters:
tratador - Objeto que implementa a interface TratadorDeEventos.
Returns:
true se o registro for feito normalmente.

consultaElementos

java.lang.String[] consultaElementos()
Consulta aos elementos da rede. Retorna uma lista contendo os id's dos elementos da rede.

Returns:
lista contendo os id's dos elementos da rede.

consultaAtributosFixos

java.util.Map<DefsGlobais.TipoAtributo,java.lang.Object> consultaAtributosFixos(java.lang.String idElemento)
Consulta os atributos fixos de um elemento da rede.

Parameters:
idElemento - identificação única do elemento.
Returns:
mapa contendo os atributos fixos do elemento.

consultaEstado

java.util.Map<DefsGlobais.TipoAtributo,java.lang.Object> consultaEstado(java.lang.String idElemento)
Consulta o estado (formado pelo conjunto de atributos variáveis) de um elemento da rede.

Parameters:
idElemento - identificação única do elemento.
Returns:
mapa que caracteriza o estado do elemento.

consultaAtributo

java.lang.Object consultaAtributo(java.lang.String idElemento,
                                  DefsGlobais.TipoAtributo atributo)
Consulta um atributo de um elemento da rede.

Parameters:
idElemento - Identificação única do elemento
atributo - Nome do atributo a ser consultado
Returns:
Object Valor do atributo

consultaListaDeAtributos

java.util.Set<DefsGlobais.TipoAtributo> consultaListaDeAtributos(java.lang.String idElemento)
Consulta o conjunto de atributos de um dado elemento da rede.

Parameters:
idElemento - Identificação única do elemento da rede.
Returns:
Conjunto de atributos (fixos e variáveis) associados ao elemento.

acelerarComposicao

int acelerarComposicao(java.lang.String idComposicao,
                       float velocidade,
                       boolean urgente)
Comando para acelerar uma composicão.

Parameters:
idComposicao - Identificação única da composição.
velocidade - Velocidade a ser atingida.
urgente - Urgente(true) ou normal(false).
Returns:
Tempo necessário para atingir a velocidade.

frearComposicao

int frearComposicao(java.lang.String idComposicao,
                    float velocidade,
                    boolean urgente)
Comando para frear a composição.

Parameters:
idComposicao - Identificação única da composição.
velocidade - Velocidade a ser atingida
urgente - Urgente(true) ou normal(false).
Returns:
Tempo necessário para realizar a operação.

consultaPosicao

float consultaPosicao(java.lang.String idComposicao,
                      int instante)
COnsulta a posição prevista para um instante futuro.

Parameters:
idComposicao - Identificação única da composição.
instante - Instante futuro a ser considerado.
Returns:
A posição prevista, no trecho atual.

consultaTempo

int consultaTempo(java.lang.String idComposicao,
                  float posicao)
Consulta o tempo previsto para atingir uma dada posição no trecho atual (considerando a velocidade e taxa de aceleração ou frenagem atuais).

Parameters:
idComposicao - Identificação única da composição.
posicao - Posição a ser atingida.
Returns:
Tempo estimado necessário para atingir a posição.

consultaDistMinParada

float consultaDistMinParada(java.lang.String idComposicao)
Calcula a distância mínima necessária à parada de uma composição.

Parameters:
idComposicao - Identificação única da composição.
Returns:
Distância mínima necessária à parada da composição.

mudarChave

boolean mudarChave(java.lang.String idChave,
                   java.lang.String idTrechoA,
                   java.lang.String idTrechoB)
Comando para mudar o estado de uma chave.

Parameters:
idChave - Identificação única da chave
idTrechoA - Identificação do trecho a ser conectado à extremidade A da chave.
idTrechoB - Identificação do trecho a ser conectado à extremidade B da chave.
Returns:
True se a operação pode ser realizada.

defineCenario

void defineCenario(int cenario)
Define o cenário a ser usado na simulação.

Parameters:
cenario - Indica o cenário a ser usado (0..nCenarios-1)

simularCenario

void simularCenario(int t1,
                    int t2)
                    throws java.lang.Exception
Simula um cenário pré-definido, formado por um conjunto de elementos de rede.

Parameters:
t1 - Instante de início da simulação (quase sempre zero).
t2 - Instante de término da simulação.
Throws:
java.lang.Exception