raniero
21-04-2006, 18:54
Ciao, vorrei spostare due metodi (guardainCassetta e prendiAttrezzi) dalla classe Operaio alla classe CassettaAttrezzi ,ma sto incontrando un problema, del tipo:
java.lang.NullPointerException
at com.officina.Operaio.riparaMacchina(Operaio.java:39)
at com.officina.Operaio.aggiusta(Operaio.java:96)
at com.officina.Operaio.run(Operaio.java:66)
come mai?
vi posto le due classi in origine e poi la mia soluzione (errata!)
origine :
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
import com.simulazione.GeneratoreDiGuasti;
import com.officina.StopWatch;
public class Operaio extends Thread{
private Macchina vetturaDaRiparare;
private CassettaAttrezzi cassettaAttrezzi;
private Guasto guasto;
private Officina officina;
private ArrayList saccaAttrezzi;
private ArrayList attrezzicheck;
static long tsimulato;
static int lavori=0;
static long TsMAX =0;
static long TempoAttL;
static long AttLMAX =0;
private boolean hoAspettato;
public Operaio(String nome, Officina officina) throws Exception{
this.saccaAttrezzi = new ArrayList();
this.setName(nome);
this.officina = officina;
this.cassettaAttrezzi = officina.prendiCassettaAttrezzi();
this.hoAspettato = false;
Main.log.writeINF("Creato meccanico <" + nome + ">");
}
public boolean guardainCassetta(Macchina m) throws Exception{
attrezzicheck = new ArrayList();
guasto = m.analizzaMacchina();
for(int i = 0; i < guasto.decidiAttrezzi().length; i++){
String nomeAttrezzo = guasto.decidiAttrezzi()[i];
attrezzicheck.add(nomeAttrezzo);
}
return cassettaAttrezzi.disponibilita(attrezzicheck);
}
public void prendiAttrezzi(ArrayList Attrezzicheck) throws Exception{
for(int i = 0; i < Attrezzicheck.size(); i++){
String nomeAttrezzo = (String)Attrezzicheck.get(i);
saccaAttrezzi.add(cassettaAttrezzi.prendiAttrezzo(nomeAttrezzo));}
Attrezzicheck.clear();
}
private void riparaMacchina() throws Exception {
StopWatch timerAttesaLav= new StopWatch();
Main.log.writeINF("Meccanico <" + getName()
+ "> ripara <" + vetturaDaRiparare.getName() + ">"
+ " con <" + guasto.datiGuasto() + ">");
timerAttesaLav.start();
long lTmp = guasto.rilevaTempoRiparazione();
Main.log.writeDBG("Meccanico <" + getName() + "> bloccato per <"
+ lTmp + "> Minuti");
timerAttesaLav.stop();
TempoAttL+= timerAttesaLav.getElapsedTime();
if (timerAttesaLav.getElapsedTime()>AttLMAX){
AttLMAX=timerAttesaLav.getElapsedTime();
}
sleep(lTmp);
tsimulato+= lTmp;
if (lTmp>TsMAX){
TsMAX=lTmp;
}
}
public void run(){
while(true){
try {
if (!hoAspettato)
vetturaDaRiparare = officina.prendiMacchinaDaRiparare();
if (this.vetturaDaRiparare!=null){
this.aggiusta();
}
// yield();
}
catch (Exception e){
e.printStackTrace();
}
}
}
private void svuotaSacca(ArrayList sacca) throws Exception{
for (int i = 0; i < sacca.size(); i++){
Attrezzo attrezzo = (Attrezzo) sacca.get(i);
cassettaAttrezzi.riponiAttrezzo(attrezzo);
}
sacca.clear();
}
private void aggiusta () throws Exception{
if (this.guardainCassetta(vetturaDaRiparare)){
this.prendiAttrezzi(attrezzicheck);
if (this.hoAspettato){
officina.setopInAttesa(false);
this.hoAspettato = false;
}
this.riparaMacchina();
this.svuotaSacca(saccaAttrezzi);
officina.riponiMacchinaRiparata(vetturaDaRiparare);
lavori++;
this.ScriviStatistiche();
}
else {
this.hoAspettato = true;
officina.setopInAttesa(true);
}
}
public void ScriviStatistiche() {
if ((GeneratoreDiGuasti.timer.getElapsedTime()%20)==0 &&(lavori != lavori+1) ){
GeneratoreDiGuasti.timer.scriviTempoTot(); }
}
}
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
public class CassettaAttrezzi{
private ArrayList attrezzi;
static long TempoAtt;
private int z =1;
static long AttMAX =0;
static long blocco=1;
boolean trovato;
public CassettaAttrezzi(){
this.attrezzi = new ArrayList();
}
public synchronized Attrezzo prendiAttrezzo(String nome) throws InterruptedException{
StopWatch timerAttesa= new StopWatch();
Main.log.writeDBG("Ho bisogno dell'attrezzo <" + nome + ">");
Attrezzo attrRet = null;
while(attrRet == null){
for (int i = 0; i < attrezzi.size(); i++){
Attrezzo attrezzo = (Attrezzo) attrezzi.get(i);
if (attrezzo.equals(nome)){
attrRet = (Attrezzo)attrezzi.remove(i);
Main.log.writeDBG("Recuperato attrezzo <" + attrRet.getName() + ">");
break;
}
}
if (attrRet == null){
timerAttesa.start();
Main.log.writeDBG("IN ATTESAAAAAAAA DELL ' ATTREZZO <" + nome + ">");
blocco++;
wait();
timerAttesa.stop();
TempoAtt+= timerAttesa.getElapsedTime();
if (timerAttesa.getElapsedTime()>AttMAX)
AttMAX=timerAttesa.getElapsedTime();
}
}
return attrRet;
}
public synchronized void riponiAttrezzo(Attrezzo attrezzo){
Main.log.writeDBG("Rilascio attrezzo <" + attrezzo.getName() + ">");
attrezzi.add(attrezzo);
notify();
}
public synchronized boolean disponibilita (ArrayList listaAttrezzicheck) throws InterruptedException {
for (int i =0;i<listaAttrezzicheck.size();i++)
{
String attrezzocheck = (String)listaAttrezzicheck.get(i);
boolean trovato = false;
for (int j=0; (!trovato) && j< attrezzi.size() ;j++)
{
Attrezzo attrezzocass = (Attrezzo) attrezzi.get(j);
if (attrezzocass.equals(attrezzocheck)) trovato = true;
}
if (!trovato) {
Main.log.writeDBG("NO PUEDO TRABAHAR");
wait();
return false ;
}
}
Main.log.writeINF ( " VEDO gli attrezzi in Cassetta --> lavoro n° " +z++); //
return true;
}
}
mia soluzione sbagliata:
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
import com.simulazione.GeneratoreDiGuasti;
import com.officina.StopWatch;
public class Operaio extends Thread{
private Macchina vetturaDaRiparare;
private CassettaAttrezzi cassettaAttrezzi;
private Guasto guasto;
private Officina officina;
private ArrayList saccaAttrezzi;
static long tsimulato;
static int lavori=0;
static long TsMAX =0;
static long TempoAttL;
static long AttLMAX =0;
private boolean hoAspettato;
public Operaio(String nome, Officina officina) throws Exception{
this.saccaAttrezzi = new ArrayList();
this.setName(nome);
this.officina = officina;
this.cassettaAttrezzi = officina.prendiCassettaAttrezzi();
this.hoAspettato = false;
Main.log.writeINF("Creato meccanico <" + nome + ">");
}
private void riparaMacchina() throws Exception {
StopWatch timerAttesaLav= new StopWatch();
Main.log.writeINF("Meccanico <" + getName()
+ "> ripara <" + vetturaDaRiparare.getName() + ">"
+ " con <" + guasto.datiGuasto() + ">");
timerAttesaLav.start();
long lTmp = guasto.rilevaTempoRiparazione();
Main.log.writeDBG("Meccanico <" + getName() + "> bloccato per <"
+ lTmp + "> Minuti");
timerAttesaLav.stop();
TempoAttL+= timerAttesaLav.getElapsedTime();
if (timerAttesaLav.getElapsedTime()>AttLMAX){
AttLMAX=timerAttesaLav.getElapsedTime();
}
sleep(lTmp);
tsimulato+= lTmp;
if (lTmp>TsMAX){
TsMAX=lTmp;
}
}
public void run(){
while(true){
try {
if (!hoAspettato)
vetturaDaRiparare = officina.prendiMacchinaDaRiparare();
if (this.vetturaDaRiparare!=null){
this.aggiusta();
}
// yield();
}
catch (Exception e){
e.printStackTrace();
}
}
}
private void svuotaSacca(ArrayList sacca) throws Exception{
for (int i = 0; i < sacca.size(); i++){
Attrezzo attrezzo = (Attrezzo) sacca.get(i);
cassettaAttrezzi.riponiAttrezzo(attrezzo);
}
sacca.clear();
}
private void aggiusta () throws Exception{
if (cassettaAttrezzi.guardainCassetta(vetturaDaRiparare, guasto)){
cassettaAttrezzi.prendiAttrezzi(cassettaAttrezzi.prendiAttrezzicheck(), saccaAttrezzi);
if (this.hoAspettato){
officina.setopInAttesa(false);
this.hoAspettato = false;
}
this.riparaMacchina();
this.svuotaSacca(saccaAttrezzi);
officina.riponiMacchinaRiparata(vetturaDaRiparare);
lavori++;
this.ScriviStatistiche();
}
else {
this.hoAspettato = true;
officina.setopInAttesa(true);
}
}
public void ScriviStatistiche() {
if ((GeneratoreDiGuasti.timer.getElapsedTime()%20)==0 &&(lavori != lavori+1) ){
GeneratoreDiGuasti.timer.scriviTempoTot(); }
}
}
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
public class CassettaAttrezzi{
private ArrayList attrezzi;
static long TempoAtt;
private int z =1;
private ArrayList attrezzicheck;
static long AttMAX =0;
static long blocco=1;
boolean trovato;
public CassettaAttrezzi(){
this.attrezzi = new ArrayList();
}
public synchronized boolean guardainCassetta(Macchina m, Guasto guasto) throws Exception{
attrezzicheck = new ArrayList();
guasto = m.analizzaMacchina();
for(int i = 0; i < guasto.decidiAttrezzi().length; i++){
String nomeAttrezzo = guasto.decidiAttrezzi()[i];
attrezzicheck.add(nomeAttrezzo);
}
return this.disponibilita(attrezzicheck);
}
public synchronized void prendiAttrezzi(ArrayList Attrezzicheck, ArrayList SaccaOperaio) throws Exception{
for(int i = 0; i < Attrezzicheck.size(); i++){
String nomeAttrezzo = (String)Attrezzicheck.get(i);
SaccaOperaio.add(this.prendiAttrezzo(nomeAttrezzo));}
Attrezzicheck.clear();
}
public synchronized Attrezzo prendiAttrezzo(String nome) throws InterruptedException{
StopWatch timerAttesa= new StopWatch();
Main.log.writeDBG("Ho bisogno dell'attrezzo <" + nome + ">");
Attrezzo attrRet = null;
while(attrRet == null){
for (int i = 0; i < attrezzi.size(); i++){
Attrezzo attrezzo = (Attrezzo) attrezzi.get(i);
if (attrezzo.equals(nome)){
attrRet = (Attrezzo)attrezzi.remove(i);
Main.log.writeDBG("Recuperato attrezzo <" + attrRet.getName() + ">");
break;
}
}
if (attrRet == null){
timerAttesa.start();
Main.log.writeDBG("IN ATTESAAAAAAAA DELL ' ATTREZZO <" + nome + ">");
blocco++;
wait();
timerAttesa.stop();
TempoAtt+= timerAttesa.getElapsedTime();
if (timerAttesa.getElapsedTime()>AttMAX)
AttMAX=timerAttesa.getElapsedTime();
}
}
return attrRet;
}
public synchronized void riponiAttrezzo(Attrezzo attrezzo){
Main.log.writeDBG("Rilascio attrezzo <" + attrezzo.getName() + ">");
attrezzi.add(attrezzo);
notify();
}
public synchronized boolean disponibilita (ArrayList listaAttrezzicheck) throws InterruptedException {
for (int i =0;i<listaAttrezzicheck.size();i++)
{
String attrezzocheck = (String)listaAttrezzicheck.get(i);
boolean trovato = false;
for (int j=0; (!trovato) && j< attrezzi.size() ;j++)
{
Attrezzo attrezzocass = (Attrezzo) attrezzi.get(j);
if (attrezzocass.equals(attrezzocheck)) trovato = true;
}
if (!trovato) {
Main.log.writeDBG("NO PUEDO TRABAHAR");
wait();
return false ;
}
}
Main.log.writeINF ( " VEDO gli attrezzi in Cassetta --> lavoro n° " +z++); //
return true;
}
public ArrayList prendiAttrezzicheck(){
return attrezzicheck;
}
}
java.lang.NullPointerException
at com.officina.Operaio.riparaMacchina(Operaio.java:39)
at com.officina.Operaio.aggiusta(Operaio.java:96)
at com.officina.Operaio.run(Operaio.java:66)
come mai?
vi posto le due classi in origine e poi la mia soluzione (errata!)
origine :
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
import com.simulazione.GeneratoreDiGuasti;
import com.officina.StopWatch;
public class Operaio extends Thread{
private Macchina vetturaDaRiparare;
private CassettaAttrezzi cassettaAttrezzi;
private Guasto guasto;
private Officina officina;
private ArrayList saccaAttrezzi;
private ArrayList attrezzicheck;
static long tsimulato;
static int lavori=0;
static long TsMAX =0;
static long TempoAttL;
static long AttLMAX =0;
private boolean hoAspettato;
public Operaio(String nome, Officina officina) throws Exception{
this.saccaAttrezzi = new ArrayList();
this.setName(nome);
this.officina = officina;
this.cassettaAttrezzi = officina.prendiCassettaAttrezzi();
this.hoAspettato = false;
Main.log.writeINF("Creato meccanico <" + nome + ">");
}
public boolean guardainCassetta(Macchina m) throws Exception{
attrezzicheck = new ArrayList();
guasto = m.analizzaMacchina();
for(int i = 0; i < guasto.decidiAttrezzi().length; i++){
String nomeAttrezzo = guasto.decidiAttrezzi()[i];
attrezzicheck.add(nomeAttrezzo);
}
return cassettaAttrezzi.disponibilita(attrezzicheck);
}
public void prendiAttrezzi(ArrayList Attrezzicheck) throws Exception{
for(int i = 0; i < Attrezzicheck.size(); i++){
String nomeAttrezzo = (String)Attrezzicheck.get(i);
saccaAttrezzi.add(cassettaAttrezzi.prendiAttrezzo(nomeAttrezzo));}
Attrezzicheck.clear();
}
private void riparaMacchina() throws Exception {
StopWatch timerAttesaLav= new StopWatch();
Main.log.writeINF("Meccanico <" + getName()
+ "> ripara <" + vetturaDaRiparare.getName() + ">"
+ " con <" + guasto.datiGuasto() + ">");
timerAttesaLav.start();
long lTmp = guasto.rilevaTempoRiparazione();
Main.log.writeDBG("Meccanico <" + getName() + "> bloccato per <"
+ lTmp + "> Minuti");
timerAttesaLav.stop();
TempoAttL+= timerAttesaLav.getElapsedTime();
if (timerAttesaLav.getElapsedTime()>AttLMAX){
AttLMAX=timerAttesaLav.getElapsedTime();
}
sleep(lTmp);
tsimulato+= lTmp;
if (lTmp>TsMAX){
TsMAX=lTmp;
}
}
public void run(){
while(true){
try {
if (!hoAspettato)
vetturaDaRiparare = officina.prendiMacchinaDaRiparare();
if (this.vetturaDaRiparare!=null){
this.aggiusta();
}
// yield();
}
catch (Exception e){
e.printStackTrace();
}
}
}
private void svuotaSacca(ArrayList sacca) throws Exception{
for (int i = 0; i < sacca.size(); i++){
Attrezzo attrezzo = (Attrezzo) sacca.get(i);
cassettaAttrezzi.riponiAttrezzo(attrezzo);
}
sacca.clear();
}
private void aggiusta () throws Exception{
if (this.guardainCassetta(vetturaDaRiparare)){
this.prendiAttrezzi(attrezzicheck);
if (this.hoAspettato){
officina.setopInAttesa(false);
this.hoAspettato = false;
}
this.riparaMacchina();
this.svuotaSacca(saccaAttrezzi);
officina.riponiMacchinaRiparata(vetturaDaRiparare);
lavori++;
this.ScriviStatistiche();
}
else {
this.hoAspettato = true;
officina.setopInAttesa(true);
}
}
public void ScriviStatistiche() {
if ((GeneratoreDiGuasti.timer.getElapsedTime()%20)==0 &&(lavori != lavori+1) ){
GeneratoreDiGuasti.timer.scriviTempoTot(); }
}
}
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
public class CassettaAttrezzi{
private ArrayList attrezzi;
static long TempoAtt;
private int z =1;
static long AttMAX =0;
static long blocco=1;
boolean trovato;
public CassettaAttrezzi(){
this.attrezzi = new ArrayList();
}
public synchronized Attrezzo prendiAttrezzo(String nome) throws InterruptedException{
StopWatch timerAttesa= new StopWatch();
Main.log.writeDBG("Ho bisogno dell'attrezzo <" + nome + ">");
Attrezzo attrRet = null;
while(attrRet == null){
for (int i = 0; i < attrezzi.size(); i++){
Attrezzo attrezzo = (Attrezzo) attrezzi.get(i);
if (attrezzo.equals(nome)){
attrRet = (Attrezzo)attrezzi.remove(i);
Main.log.writeDBG("Recuperato attrezzo <" + attrRet.getName() + ">");
break;
}
}
if (attrRet == null){
timerAttesa.start();
Main.log.writeDBG("IN ATTESAAAAAAAA DELL ' ATTREZZO <" + nome + ">");
blocco++;
wait();
timerAttesa.stop();
TempoAtt+= timerAttesa.getElapsedTime();
if (timerAttesa.getElapsedTime()>AttMAX)
AttMAX=timerAttesa.getElapsedTime();
}
}
return attrRet;
}
public synchronized void riponiAttrezzo(Attrezzo attrezzo){
Main.log.writeDBG("Rilascio attrezzo <" + attrezzo.getName() + ">");
attrezzi.add(attrezzo);
notify();
}
public synchronized boolean disponibilita (ArrayList listaAttrezzicheck) throws InterruptedException {
for (int i =0;i<listaAttrezzicheck.size();i++)
{
String attrezzocheck = (String)listaAttrezzicheck.get(i);
boolean trovato = false;
for (int j=0; (!trovato) && j< attrezzi.size() ;j++)
{
Attrezzo attrezzocass = (Attrezzo) attrezzi.get(j);
if (attrezzocass.equals(attrezzocheck)) trovato = true;
}
if (!trovato) {
Main.log.writeDBG("NO PUEDO TRABAHAR");
wait();
return false ;
}
}
Main.log.writeINF ( " VEDO gli attrezzi in Cassetta --> lavoro n° " +z++); //
return true;
}
}
mia soluzione sbagliata:
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
import com.simulazione.GeneratoreDiGuasti;
import com.officina.StopWatch;
public class Operaio extends Thread{
private Macchina vetturaDaRiparare;
private CassettaAttrezzi cassettaAttrezzi;
private Guasto guasto;
private Officina officina;
private ArrayList saccaAttrezzi;
static long tsimulato;
static int lavori=0;
static long TsMAX =0;
static long TempoAttL;
static long AttLMAX =0;
private boolean hoAspettato;
public Operaio(String nome, Officina officina) throws Exception{
this.saccaAttrezzi = new ArrayList();
this.setName(nome);
this.officina = officina;
this.cassettaAttrezzi = officina.prendiCassettaAttrezzi();
this.hoAspettato = false;
Main.log.writeINF("Creato meccanico <" + nome + ">");
}
private void riparaMacchina() throws Exception {
StopWatch timerAttesaLav= new StopWatch();
Main.log.writeINF("Meccanico <" + getName()
+ "> ripara <" + vetturaDaRiparare.getName() + ">"
+ " con <" + guasto.datiGuasto() + ">");
timerAttesaLav.start();
long lTmp = guasto.rilevaTempoRiparazione();
Main.log.writeDBG("Meccanico <" + getName() + "> bloccato per <"
+ lTmp + "> Minuti");
timerAttesaLav.stop();
TempoAttL+= timerAttesaLav.getElapsedTime();
if (timerAttesaLav.getElapsedTime()>AttLMAX){
AttLMAX=timerAttesaLav.getElapsedTime();
}
sleep(lTmp);
tsimulato+= lTmp;
if (lTmp>TsMAX){
TsMAX=lTmp;
}
}
public void run(){
while(true){
try {
if (!hoAspettato)
vetturaDaRiparare = officina.prendiMacchinaDaRiparare();
if (this.vetturaDaRiparare!=null){
this.aggiusta();
}
// yield();
}
catch (Exception e){
e.printStackTrace();
}
}
}
private void svuotaSacca(ArrayList sacca) throws Exception{
for (int i = 0; i < sacca.size(); i++){
Attrezzo attrezzo = (Attrezzo) sacca.get(i);
cassettaAttrezzi.riponiAttrezzo(attrezzo);
}
sacca.clear();
}
private void aggiusta () throws Exception{
if (cassettaAttrezzi.guardainCassetta(vetturaDaRiparare, guasto)){
cassettaAttrezzi.prendiAttrezzi(cassettaAttrezzi.prendiAttrezzicheck(), saccaAttrezzi);
if (this.hoAspettato){
officina.setopInAttesa(false);
this.hoAspettato = false;
}
this.riparaMacchina();
this.svuotaSacca(saccaAttrezzi);
officina.riponiMacchinaRiparata(vetturaDaRiparare);
lavori++;
this.ScriviStatistiche();
}
else {
this.hoAspettato = true;
officina.setopInAttesa(true);
}
}
public void ScriviStatistiche() {
if ((GeneratoreDiGuasti.timer.getElapsedTime()%20)==0 &&(lavori != lavori+1) ){
GeneratoreDiGuasti.timer.scriviTempoTot(); }
}
}
package com.officina;
import java.util.ArrayList;
import com.simulazione.Main;
public class CassettaAttrezzi{
private ArrayList attrezzi;
static long TempoAtt;
private int z =1;
private ArrayList attrezzicheck;
static long AttMAX =0;
static long blocco=1;
boolean trovato;
public CassettaAttrezzi(){
this.attrezzi = new ArrayList();
}
public synchronized boolean guardainCassetta(Macchina m, Guasto guasto) throws Exception{
attrezzicheck = new ArrayList();
guasto = m.analizzaMacchina();
for(int i = 0; i < guasto.decidiAttrezzi().length; i++){
String nomeAttrezzo = guasto.decidiAttrezzi()[i];
attrezzicheck.add(nomeAttrezzo);
}
return this.disponibilita(attrezzicheck);
}
public synchronized void prendiAttrezzi(ArrayList Attrezzicheck, ArrayList SaccaOperaio) throws Exception{
for(int i = 0; i < Attrezzicheck.size(); i++){
String nomeAttrezzo = (String)Attrezzicheck.get(i);
SaccaOperaio.add(this.prendiAttrezzo(nomeAttrezzo));}
Attrezzicheck.clear();
}
public synchronized Attrezzo prendiAttrezzo(String nome) throws InterruptedException{
StopWatch timerAttesa= new StopWatch();
Main.log.writeDBG("Ho bisogno dell'attrezzo <" + nome + ">");
Attrezzo attrRet = null;
while(attrRet == null){
for (int i = 0; i < attrezzi.size(); i++){
Attrezzo attrezzo = (Attrezzo) attrezzi.get(i);
if (attrezzo.equals(nome)){
attrRet = (Attrezzo)attrezzi.remove(i);
Main.log.writeDBG("Recuperato attrezzo <" + attrRet.getName() + ">");
break;
}
}
if (attrRet == null){
timerAttesa.start();
Main.log.writeDBG("IN ATTESAAAAAAAA DELL ' ATTREZZO <" + nome + ">");
blocco++;
wait();
timerAttesa.stop();
TempoAtt+= timerAttesa.getElapsedTime();
if (timerAttesa.getElapsedTime()>AttMAX)
AttMAX=timerAttesa.getElapsedTime();
}
}
return attrRet;
}
public synchronized void riponiAttrezzo(Attrezzo attrezzo){
Main.log.writeDBG("Rilascio attrezzo <" + attrezzo.getName() + ">");
attrezzi.add(attrezzo);
notify();
}
public synchronized boolean disponibilita (ArrayList listaAttrezzicheck) throws InterruptedException {
for (int i =0;i<listaAttrezzicheck.size();i++)
{
String attrezzocheck = (String)listaAttrezzicheck.get(i);
boolean trovato = false;
for (int j=0; (!trovato) && j< attrezzi.size() ;j++)
{
Attrezzo attrezzocass = (Attrezzo) attrezzi.get(j);
if (attrezzocass.equals(attrezzocheck)) trovato = true;
}
if (!trovato) {
Main.log.writeDBG("NO PUEDO TRABAHAR");
wait();
return false ;
}
}
Main.log.writeINF ( " VEDO gli attrezzi in Cassetta --> lavoro n° " +z++); //
return true;
}
public ArrayList prendiAttrezzicheck(){
return attrezzicheck;
}
}