Cabinet avocatura

Un cabinet de avocatura este caracterizat de numele avocatului (string), un numar de cazuri care sunt in derulare(int), si un tablou care contine titlul tuturor cazurilor in derulare(string-uri). Numele avocatului se da printr-un parametru la crearea unui cabinet, iar la inceput cabinetul nu are niciun caz. Pentru simplitate, un cabinet poate avea un numar maxim de 40 de cazuri. Pe un cabinet se pot realiza urmatoarele operatii:

    • adugaCaz: primeste doua siruri de caractere, primul reprezentand reclamantul, iar al doilea acuzatul. Se adauga cazul la lista de cazuri in derulare, sub forma de "Reclamant vs Acuzat". Daca nu mai este loc nu se intampla nimic.

    • formeazaAlianta: doua cabinete pot forma o alianta, ceea ce inseamna crearea unui nou cabinet de avocatura. Metoda primeste ca prametru un cabinet si incearca sa creeze o alianta cu cabinetul pe care este apelata. Noul cabinet contine lista de cazuri din ambele cabinete, si evident, aceasta operatie se poate executa doar in cazul in care nu se trece peste limita maxima de cazuri. Daca se poate realiza alianta, se va returna un nou cabinet avand numele celor doi avocati sub forma: "Avocat1 - Avocat2" si lista de cazuri din ambele cabinete. Altfel metoda va returna null.

    • toString: returneaza un sir de caractere avand pe o linie numele avocatului si pe o linie separata fiecare caz in parte.

Implementati clasa CabinetAvocatura, iar apoi creati o clasa separata care contine o metoda main in care sa creati cel putin 2 cabinete, adaugati 2 respectiv 3 cazuri in ele, si formati o alianta. Apoi afisati noul cabinet pe ecran.

class CabinetAvocatura{

private String numeAvocat;

private int nr_cazuri;

private String[] cazuri;

public CabinetAvocatura(String numeAvocat){

this.numeAvocat=numeAvocat;

this.nr_cazuri=0;

this.cazuri=new String[40];

}

public void adaugaCaz(String reclamantul, String acuzatul){

if(this.nr_cazuri<=40){

this.cazuri[this.nr_cazuri]=reclamantul + " vs " +acuzatul;

this.nr_cazuri++;

}

}

public CabinetAvocatura formeazaAlianta(CabinetAvocatura c1){

if(this.nr_cazuri+c1.nr_cazuri<=40){

CabinetAvocatura c2=new CabinetAvocatura(this.numeAvocat +" - "+c1.numeAvocat);

for(int i=0;i<this.nr_cazuri;i++){

c2.cazuri[c2.nr_cazuri]=this.cazuri[i];

c2.nr_cazuri++;

}

for(int i=0;i<c1.nr_cazuri;i++){

c2.cazuri[c2.nr_cazuri]=c1.cazuri[i];

c2.nr_cazuri++;

}

return c2;

}

return null;

}

public String toString(){

String result="";

result=result+this.numeAvocat+"\n";

for(int i=0;i<this.nr_cazuri;i++){

result=result+this.cazuri[i]+"\n";

}

return result;

}

}

public class Main {

public static void main(String args[]) {

CabinetAvocatura c1=new CabinetAvocatura("Avocat 1");

CabinetAvocatura c2=new CabinetAvocatura("Avocat 2");

c1.adaugaCaz("Reclamant 1", "Acuzat 1");

c1.adaugaCaz("Reclamant 2", "Acuzat 2");

c2.adaugaCaz("Reclamant 3", "Acuzat 3");

c2.adaugaCaz("Reclamant 4", "Acuzat 4");

c2.adaugaCaz("Reclamant 5", "Acuzat 5");

CabinetAvocatura c3;

c3=c1.formeazaAlianta(c2);

System.out.print(c3);

}

}