import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.IntStream;
public class Archivio {
private Clienti[] clienti;
private Automobile[] automobili;
public Archivio() {
this.clienti = new Clienti[5];
this.automobili = new Automobile[5];
}
public void addCliente(String nome) {
int x = freePosition(this.clienti);
if (x != -1)
this.clienti[x] = new Clienti(nome);
else
System.out.println("Pieno per clienti");
}
public void getClienti() {
Arrays.stream(clienti)
.filter(Objects::nonNull)
.forEach(System.out::println);
}
private int freePosition(Object[] unNome) {
return IntStream.range(0, unNome.length)
.filter(i -> unNome[i] == null)
.findFirst()
.orElse(-1);
}
public void addAutomobile(int targa, String nome) {
Automobile t = new Automobile();
t.setNumeroTarga(targa);
t.setProprietario(new Clienti(nome));
int x = freePosition(automobili);
if (x != -1)
automobili[x] = t;
}
public void getAutomobili() {
Arrays.stream(automobili)
.filter(Objects::nonNull)
.forEach(System.out::println);
}
public void setAutomobili(Automobile[] automobili) {
this.automobili = automobili;
}
public void removeAutomobile(int targa) {
int pos = -1;
for (int i = 0; i < this.automobili.length; i++) {
if (this.automobili[i].getTarga() == targa) {
pos = i;
break;
} else
System.err.println("Targa Inesistente");
}
if (pos != -1)
this.automobili[pos] = null;
}
public void clienteTarga(int targa) {
for (Automobile x : this.automobili) {
if (x.getTarga() == targa)
System.out.println("La targa inserita è di: " + x.getProprietario().getNominativo());
break;
}
}
public void returnTarga(String nome) {
for (Automobile x : this.automobili) {
if (x != null && x.getProprietario().getNominativo().equals(nome))
System.out.println("Dal nome " + nome + " ha la seguente macchina: " + x.getTarga());
}
}
public void contaAuto(String nome) {
int count = 0;
for (Automobile x : this.automobili) {
if (x != null && x.getProprietario().getNominativo().equals(nome))
count++;
}
System.out.println(nome + " ha totale macchine: " + count);
}
public void removeCliente(String nome) {
for (int x = 0; x < this.automobili.length; x++) {
if (this.automobili[x] != null && this.automobili[x].getProprietario().getNominativo().equals(nome)) {
this.automobili[x] = null;
}
}
for (int x = 0; x < this.clienti.length; x++) {
if (this.clienti[x] != null && this.clienti[x].getNominativo().equals(nome)) {
this.clienti[x] = null;
}
}
}
public void maxAuto() {
int count = 0;
String str = "";
for (int x = 0; x < this.automobili.length; x++) {
if (this.automobili[x] == null);
for (int a = 0; x < this.clienti.length; x++) {
String temp = this.clienti[a].getNominativo();
count = 0;
if (this.automobili[x].getProprietario().getNominativo().equals(temp)) {
count++;
str = temp;
}
}
System.out.println("Cliente con maggior auto assiurate è: " + str);
}
}
}