00001 package plp.expressions1.expression; 00002 00007 public abstract class ExpBinaria implements Expressao { 00008 00012 private Expressao esq; 00013 00017 private Expressao dir; 00018 00022 private String operador; 00023 00034 public ExpBinaria(Expressao esq, Expressao dir, String operador) { 00035 this.esq = esq; 00036 this.dir = dir; 00037 this.operador = operador; 00038 } 00039 00045 public Expressao getEsq() { 00046 return esq; 00047 } 00048 00054 public Expressao getDir() { 00055 return dir; 00056 } 00057 00063 public String getOperador() { 00064 return operador; 00065 } 00066 00072 @Override 00073 public String toString() { 00074 return String.format("%s %s %s", esq, operador, dir); 00075 } 00076 00083 public boolean checaTipo() { 00084 boolean result; 00085 if (!getEsq().checaTipo() || !getDir().checaTipo()) { 00086 result = false; 00087 } else { 00088 result = this.checaTipoElementoTerminal(); 00089 } 00090 return result; 00091 } 00092 00097 protected abstract boolean checaTipoElementoTerminal(); 00098 00099 }
1.5.8