TipoPrimitivo.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1.util;
00002 
00003 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1;
00004 import plp.orientadaObjetos1.expressao.leftExpression.Id;
00005 
00009 public class TipoPrimitivo implements Tipo {
00010 
00014     public static final int INTEIRO = 1;
00015 
00019     public static final int BOOLEANO = 2;
00020 
00024     public static final int STRING = 4;
00025 
00029     public static final Tipo TIPO_INTEIRO = new TipoPrimitivo(INTEIRO);
00030 
00031 
00035     public static final Tipo TIPO_BOOLEANO = new TipoPrimitivo(BOOLEANO);
00036 
00040     public static final Tipo TIPO_STRING = new TipoPrimitivo(STRING);
00041 
00045     public static final Id TIPO_ID_int = new Id("int");
00046 
00050     public static final Id TIPO_ID_string = new Id("string");
00051 
00055     public static final Id TIPO_ID_boolean = new Id("boolean");
00056 
00060     private int tipo;
00061 
00070     public TipoPrimitivo(int tipo) {
00071         this.tipo = tipo;
00072     }
00073 
00082      public Id getTipo(){
00083 
00084         Id resposta = new Id("undefined");
00085         switch(tipo) {
00086             case(INTEIRO):
00087                 resposta = TIPO_ID_int;
00088                 break;
00089             case(BOOLEANO):
00090                 resposta = TIPO_ID_boolean;
00091                 break;
00092             case(STRING):
00093                 resposta = TIPO_ID_string;
00094                 break;
00095         }
00096         return resposta;
00097     }
00098 
00105     public boolean eInteiro() {
00106         return tipo == INTEIRO;
00107     }
00108 
00115     public boolean eBooleano() {
00116         return tipo == BOOLEANO;
00117     }
00118 
00125     public boolean eString() {
00126         return tipo == STRING;
00127     }
00128 
00135     public boolean eValido(AmbienteCompilacaoOO1 ambiente){
00136         return tipo == STRING || tipo == BOOLEANO || tipo == INTEIRO;
00137     }
00138 
00145     public boolean eValido() {
00146         return tipo == STRING || tipo == BOOLEANO || tipo == INTEIRO;
00147     }
00148 
00155     public boolean equals(Object obj) {
00156         if (obj instanceof TipoPrimitivo) {
00157             return ((TipoPrimitivo) obj).tipo == this.tipo;
00158         }
00159         return false;
00160     }
00165     public String toString() {
00166         String resposta = "undefined";
00167         switch(tipo) {
00168             case(INTEIRO):
00169                 resposta = "int";
00170                 break;
00171             case(BOOLEANO):
00172                 resposta = "boolean";
00173                 break;
00174             case(STRING):
00175                 resposta = "string";
00176                 break;
00177         }
00178         return resposta;
00179     }
00180 
00181 }

Generated on Tue Sep 12 21:52:09 2006 for PLP by  doxygen 1.4.7