/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package cache; import java.util.Arrays; /** * * @author Juninho Carlos */ public class Bloco { private boolean isDirty; private Boolean[] palavraComErro; private boolean valido; private boolean firstWrite; private long limiteInf; //valor do menor endereço do bloco private long limiteSuperior; // valor do maior endereço do bloco private boolean cachavel; public Bloco(){ this.cachavel = true; this.firstWrite = true; this.valido = false; this.isDirty = false; this.palavraComErro = new Boolean[32]; Arrays.fill(palavraComErro, Boolean.FALSE); } public void setarComoInvalido(){ this.cachavel = false; } public boolean isCachavel(){ return this.cachavel; } public void inserirErro(int palavra){ this.palavraComErro[palavra] = true; } public boolean isFirstWrite(){ return this.firstWrite; } public Boolean[] getErroDasPalavraDoBloco(){ return this.palavraComErro; } public boolean isSujo(){ return this.isDirty; } public boolean hasErrorInBloco() { Boolean[] palavras = this.palavraComErro; for (Boolean erro : palavras) { if (erro == true) { return true; } } return false; } public void setLimitesDoBloco(long limInf,long limSup){ this.limiteInf = limInf; this.limiteSuperior = limSup; } public boolean getErroFromPalavra(int palavra){ return this.palavraComErro[palavra]; } public boolean verificaBloco(long address){ return address >= limiteInf && address < limiteSuperior+4; } public void setValidadeDoBloco(boolean validade){ this.valido = validade; } public void setSujeira(boolean dirty){ this.isDirty = dirty; } public boolean isValido(){ return this.valido; } @Override public String toString() { String s; s = "Sujo: " + this.isDirty +"\n"; s += "Valido: " + this.valido + "\n"; s += "Erro: " + this.hasErrorInBloco() + "\n"; s += "Cachavel: " + this.cachavel + "\n"; s += "range: " + "[ " + this.limiteInf + " - " + this.limiteSuperior + " ]\n"; /* s += "Palavras com erro: "; int i = 0; for (Boolean boolean1 : palavraComErro) { s += i + " " + boolean1 + "\n"; i++; } */ return s; } }