br.uerj.petrinetanalyzer.engine
Class PetriNetProperties

java.lang.Object
  extended by br.uerj.petrinetanalyzer.engine.PetriNetProperties
All Implemented Interfaces:
IntfEngineConstants, IntfPetriNetProperties

public class PetriNetProperties
extends java.lang.Object
implements IntfPetriNetProperties, IntfEngineConstants

Possui métodos que retornam um conjunto de propriedades verificadas na Rede de Petri

Author:
Felipe Lino
Data: 25/02/2007
Atualizado: 25/02/2007

Field Summary
private  boolean ehConservativa
          Informa se a rede é ou não conservativa.
private  boolean ehLimitada
          Informa se a rede é ou não limitada.
private  boolean ehViva
          Informa se a rede é ou não viva.
private  int limite
          Limite da rede, caso ela seja limitada.
private  java.util.ArrayList listDeadLock
          Array com as seqüências de disparos que levam a deadlock.
private  java.util.ArrayList listDeadLockStates
          Array com os Estados finais após a seqüência de disparos, estados de deadlock.
private  java.lang.String nome
          Nome da Rede de Petri
private  int totalFichas
          Total de fichas na rede
 
Fields inherited from interface br.uerj.petrinetanalyzer.common.interfaces.IntfEngineConstants
ERROR_CODE, STATE_DUPLICADO, STATE_FRONTEIRA, STATE_INTERIOR, STATE_TERMINAL, TOKEN_INFINITO
 
Constructor Summary
PetriNetProperties()
          Construtor que seta inicialmente os valores com as caracteristicas da Rede de Petri.
PetriNetProperties(java.lang.String nome)
          Construtor que seta inicialmente os valores com as caracteristicas da Rede de Petri.
 
Method Summary
 void addDeadLock(int[] arrfireSequence, int idEstado)
          Adiciona uma seqüência de disparos que levam a Rede a um estado de DeadLock, e qual o identificador do Estado final.
 boolean ehConservativa()
          Informa se a Rede é ou não conservativa.
 boolean ehLimitada()
          Informa se a Rede é ou não limitada.
 boolean ehViva()
          Informa se a Rede é ou não viva.
 int getDeadLockState(int pos)
          Retorna o Estado final de uma seqüência de disparo que levou a rede a deadlock.
 int[] getFireSequenceDeadLock(int pos)
          Retorna a seqüência de disparos que levam a deadlock especificados pela posição.
 int getLimite()
          Retorna o Limite da Rede.
 java.lang.String getNomeRedePetri()
          Retorna o nome da Rede de Petri
 int getTotalDeadLockStates()
          Retorna o total de estados de deadlock
 int getTotalFichas()
          Retorna o total de fichas na rede quando ela é conservativa.
 void setEhConservativa(boolean ehConservativa)
          Informa se a Rede é ou não conservativa, ou seja se o número de tokens é constante em cada estado.
 void setEhViva(boolean ehViva)
          Informa se a Rede de Petri é ou não viva.
 void setLimite(int limite)
          Informa o Limite da Rede de Petri.
 void setNomeRedePetri(java.lang.String nome)
          Seta o nome da Rede de Petri.
 void setTotalFichas(int totalFichas)
          Seta o total de fichas na rede, quando ela é conservativa.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface br.uerj.petrinetanalyzer.common.interfaces.IntfPetriNetProperties
toString
 

Field Detail

nome

private java.lang.String nome
Nome da Rede de Petri


ehViva

private boolean ehViva
Informa se a rede é ou não viva. Uma rede viva é aquela que em todos os estados possui alguma transição habilitada para disparo.


ehLimitada

private boolean ehLimitada
Informa se a rede é ou não limitada. Uma rede é limitada quando é possível encontrar um valor máximo de fichas nos Lugares, ou seja, não existe um acumulo indefinido de fichas em nenhum lugar da rede.


ehConservativa

private boolean ehConservativa
Informa se a rede é ou não conservativa. Uma Rede é conservativa quando o número total de fichas na rede é constante em todos os estados. Uma rede conservativa é também limitada.


listDeadLock

private java.util.ArrayList listDeadLock
Array com as seqüências de disparos que levam a deadlock.


listDeadLockStates

private java.util.ArrayList listDeadLockStates
Array com os Estados finais após a seqüência de disparos, estados de deadlock.


limite

private int limite
Limite da rede, caso ela seja limitada.


totalFichas

private int totalFichas
Total de fichas na rede

Constructor Detail

PetriNetProperties

public PetriNetProperties()
Construtor que seta inicialmente os valores com as caracteristicas da Rede de Petri.


PetriNetProperties

public PetriNetProperties(java.lang.String nome)
Construtor que seta inicialmente os valores com as caracteristicas da Rede de Petri.

Parameters:
nome - Nome da Rede de Petri.
Method Detail

setNomeRedePetri

public void setNomeRedePetri(java.lang.String nome)
Seta o nome da Rede de Petri.

Parameters:
nome - Nome da Rede de Petri.

setEhViva

public void setEhViva(boolean ehViva)
Informa se a Rede de Petri é ou não viva.

Parameters:
ehViva -

setLimite

public void setLimite(int limite)
Informa o Limite da Rede de Petri. Se Limite for infinito, então rede é Ilimitada.

Parameters:
limite - Limite de Tokens na Rede

setEhConservativa

public void setEhConservativa(boolean ehConservativa)
Informa se a Rede é ou não conservativa, ou seja se o número de tokens é constante em cada estado.

Parameters:
ehConservativa -

getNomeRedePetri

public java.lang.String getNomeRedePetri()
Retorna o nome da Rede de Petri

Specified by:
getNomeRedePetri in interface IntfPetriNetProperties
Returns:
Nomde da Rede de Petri

ehLimitada

public boolean ehLimitada()
Informa se a Rede é ou não limitada.

Specified by:
ehLimitada in interface IntfPetriNetProperties
Returns:
Retorna true caso a Rede seja Limitada.

ehConservativa

public boolean ehConservativa()
Informa se a Rede é ou não conservativa.

Specified by:
ehConservativa in interface IntfPetriNetProperties
Returns:
Retorna true caso a Rede seja conservativa.

ehViva

public boolean ehViva()
Informa se a Rede é ou não viva.

Specified by:
ehViva in interface IntfPetriNetProperties
Returns:
Retorna true caso a Rede seja viva.

getLimite

public int getLimite()
Retorna o Limite da Rede. Limite é o máximo de fichas que podem existir na Rede.

Specified by:
getLimite in interface IntfPetriNetProperties
Returns:
Retorna um inteiro que é o Limite. Retorna -1 caso o limite seja Infinito.

getTotalFichas

public int getTotalFichas()
Retorna o total de fichas na rede quando ela é conservativa.

Returns:
Total de fichas na rede quando ela é conservativa

setTotalFichas

public void setTotalFichas(int totalFichas)
Seta o total de fichas na rede, quando ela é conservativa.

Parameters:
totalFichas - Total de fichas na rede.

addDeadLock

public void addDeadLock(int[] arrfireSequence,
                        int idEstado)
Adiciona uma seqüência de disparos que levam a Rede a um estado de DeadLock, e qual o identificador do Estado final.

Parameters:
arrfireSequence - Array com a Seqüência de disparo
idEstado - Identificador do Estado final após os disparos

getFireSequenceDeadLock

public int[] getFireSequenceDeadLock(int pos)
Retorna a seqüência de disparos que levam a deadlock especificados pela posição.

Parameters:
pos - Posição
Returns:
Seqüência de disparos que levam a deadlock especificados pela posição

getDeadLockState

public int getDeadLockState(int pos)
Retorna o Estado final de uma seqüência de disparo que levou a rede a deadlock.

Parameters:
pos - Posição
Returns:
Estado final de uma seqüência de disparo que levou a rede a deadlock

getTotalDeadLockStates

public int getTotalDeadLockStates()
Retorna o total de estados de deadlock

Returns:
Total de estados de deadlock