Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.sun.jdi.InterfaceType;
- import javax.swing.event.MouseInputListener;
- import java.net.*;
- import java.io.*;
- import java.rmi.*;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class MulticastServer extends Thread {
- private String MULTICAST_ADDRESS = "224.3.2.3";
- private String RMI_ADDRESS = "224.3.2.2";
- private int PORT = 4321;
- private int RMI_PORT = 4322;
- private int RMI_PORT_ONLINE = 2222;
- private long SLEEP_TIME = 5000;
- public static int id;
- public ArrayList<Utilizador> users = new ArrayList<Utilizador>();
- public ArrayList<Artista> artistas = new ArrayList<Artista>();
- public static void main(String[] args) {
- MulticastServer server = new MulticastServer();
- server.start();
- }
- public void run() {
- artistas=leArtista();
- users=leUtilizadores();
- //users.add(new Utilizador("admin","admin"));
- //users.get(0).editor=1;
- for (Utilizador u : users){
- System.out.println(u.username);
- }
- System.out.println("Numero deste servidor ? : ");
- Scanner sc= new Scanner(System.in);
- this.id = sc.nextInt();
- new TCPServer(id).start();
- MulticastSocket socket = null;
- long counter = 0;
- System.out.println("Server " + this.id + " running...");
- try {
- socket = new MulticastSocket(PORT); // create socket without binding it (only for sending)
- InetAddress group = InetAddress.getByName(MULTICAST_ADDRESS);
- socket.joinGroup(group);
- while (true) {
- byte[] buffer = new byte[256];
- DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
- socket.receive(packet);
- String message = new String(packet.getData(), 0, packet.getLength());
- System.out.println(message);
- String[] result = message.split(";");
- String[] pref = result[0].split("\\|");
- DatagramSocket aSocket = null;
- DatagramSocket socketOnline = null;
- try {
- aSocket = new DatagramSocket();
- socketOnline = new DatagramSocket();
- String stringEnviar="";
- String processada="";
- if(pref[1].equals("null")){ // para verificar
- stringEnviar+="sv|"+Integer.toString(id);
- if (result[1].split("\\|")[1].equals("check_online")){
- processada=processaType(result);
- enviarOnline(socketOnline,packet.getAddress(),stringEnviar+processada);
- }
- else {
- if (!result[1].split("\\|")[1].equals(Integer.toString(id))){
- String[] copia = new String [result.length-1];
- for (int i =0 ; i< copia.length;i++){
- copia[i]=result[i+1];
- }
- processaType(copia);
- }
- }
- }
- else if(Integer.parseInt(pref[1])==id){
- //stringEnviar+="sv|"+Integer.toString(id)+";username|"+result[1].split("\\|")[1];
- stringEnviar+="sv|"+Integer.toString(id);
- enviaParaRmi(aSocket,packet.getAddress(),stringEnviar+processaType(result));
- // // parte de enviar para os outros servidores multicast
- String stringNova = "sv|null;sv_sender|"+id;
- for (int i=1;i<result.length;i++){
- stringNova+=";"+result[i];
- }
- byte[] buffer2 = stringNova.getBytes();
- DatagramPacket packet2 = new DatagramPacket(buffer2, buffer2.length, InetAddress.getByName(MULTICAST_ADDRESS),PORT);
- socket.send(packet2);
- }
- /* Nao considerar os casos fora do protocolo ?
- else{
- }
- */
- escreveArtistas(artistas);
- escreveUtilizadores(users);
- }
- catch (SocketException e){
- System.out.println("Socket: " + e.getMessage());
- }
- catch (NumberFormatException n){
- System.out.println("Nao foi possivel fazer parseInt da mensagem"); // nao esta a dar bem
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- socket.close();
- }
- }
- public void enviaParaRmi(DatagramSocket aSocket, InetAddress address, String stringEnviar){
- try {
- byte[] buffer2 = stringEnviar.getBytes();
- DatagramPacket packet2 = new DatagramPacket(buffer2, buffer2.length, address,RMI_PORT);
- aSocket.send(packet2);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public void enviarOnline(DatagramSocket socketOnline, InetAddress address, String stringEnviar){
- try {
- byte[] buffer2 = stringEnviar.getBytes();
- DatagramPacket packet2 = new DatagramPacket(buffer2, buffer2.length, address,RMI_PORT_ONLINE);
- socketOnline.send(packet2);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public String processaType(String[] result){
- String[] type = result[1].split("\\|");
- System.out.println(type[1]);
- if (type[1].equals("login")){
- String[] password= result[3].split("\\|");
- String[] username= result[2].split("\\|");
- return ";type|login;success|"+login(username[1],password[1]);
- }
- else if (type[1].equals("add_artist")){
- String[] artista= result[2].split("\\|");
- String[] desc= result[3].split("\\|");
- return adicionaArtista(artista[1],desc[1]);
- }
- else if (type[1].equals("register")){
- String[] username= result[2].split("\\|");
- String[] password= result[3].split("\\|");
- return register(username[1],password[1]);
- }
- else if (type[1].equals("queary_artist")){
- String[] nome_artista= result[2].split("\\|");
- return consultaPorArtista(nome_artista[1]);
- }
- else if (type[1].equals("add_album")){
- String[] nome_editor= result[2].split("\\|");
- String[] nome_artista= result[3].split("\\|");
- String[] nome_album= result[4].split("\\|");
- String[] descricao= result[5].split("\\|");
- return adicionaAlbum(nome_editor[1],nome_artista[1],nome_album[1],descricao[1]);
- }
- else if (type[1].equals("add_song")){
- String[] nome_artista= result[2].split("\\|");
- String[] nome_album= result[3].split("\\|");
- String[] nome_musica= result[4].split("\\|");
- String[] duracao= result[5].split("\\|");
- return adicionaMusica(nome_artista[1],nome_album[1],nome_musica[1],duracao[1]);
- }
- else if (type[1].equals("queary_album")){
- String[] nome_artista= result[2].split("\\|");
- String[] nome_album= result[3].split("\\|");
- return consultaPorAlbum(nome_artista[1],nome_album[1]);
- }
- else if (type[1].equals("search")){
- String[] word= result[2].split("\\|");
- return pesquisaPorAlbumArtistaMusica(word[1]);
- }
- else if (type[1].equals("check_online")){
- return ";type|online";
- }
- else if (type[1].equals("give_privelege")){
- String[] name =result[2].split("\\|");
- return givePrivelege(name[1]);
- }
- else if (type[1].equals("check_admin")){
- String[] name =result[2].split("\\|");
- return checkAdmin(name[1]);
- }
- else if (type[1].equals("write_critic")){
- String[] user =result[2].split("\\|");
- String[] nameArtist =result[3].split("\\|");
- String[] nameAlbum =result[4].split("\\|");
- String[] score =result[5].split("\\|");
- String[] critic =result[6].split("\\|");
- return escreveCritica(user[1],nameArtist[1],nameAlbum[1],Integer.parseInt(score[1]),critic[1]);
- }
- else if (type[1].equals("edit_album")){
- String[] editor =result[2].split("\\|");
- String[] nameArtist =result[3].split("\\|");
- String[] nameAlbum =result[4].split("\\|");
- String[] newAlbumName =result[5].split("\\|");
- String[] desc =result[6].split("\\|");
- return editAlbum(editor[1],nameArtist[1],nameAlbum[1],newAlbumName[1],desc[1]);
- }
- else if (type[1].equals("edit_artist")){
- String[] name =result[2].split("\\|");
- String[] new_name =result[3].split("\\|");
- String[] new_desc =result[4].split("\\|");
- return editArtist(name[1],new_name[1],new_desc[1]);
- }
- else if (type[1].equals("remove_artist")){
- String[] name =result[2].split("\\|");
- return removeArtist(name[1]);
- }
- else if (type[1].equals("remove_album")){
- String[] artist_name =result[2].split("\\|");
- String[] album_name =result[3].split("\\|");
- return removeAlbum(artist_name[1],album_name[1]);
- }
- else if (type[1].equals("remove_song")){
- String[] artist_name =result[2].split("\\|");
- String[] album_name =result[3].split("\\|");
- String[] song_name =result[4].split("\\|");
- return removeSong(artist_name[1],album_name[1],song_name[1]);
- }
- else if (type[1].equals("download")){
- String[] song_name =result[2].split("\\|");
- String[] port =result[2].split("\\|");
- return enviaMusica(song_name[1],port[1]);
- }
- return null;
- }
- public String login(String username,String password){
- for (Utilizador user:users){
- if (user.username.equals(username)){
- if (user.password.equals(password)){
- System.out.println("Login de "+username);
- return "true";
- }
- }
- }
- System.out.println("Tentiva de login falhada");
- return "false";
- }
- public String register(String username,String password){
- if (checkRegister(username)){
- users.add(new Utilizador(username,password));
- System.out.println("Novo utilizador "+username);
- return ";success|true";
- }
- return ";success|false";
- }
- public String adicionaArtista(String nome,String desc){
- if (checkArtist(nome)){
- artistas.add(new Artista(nome,desc));
- System.out.println("Artista " + nome + " adicionado");
- return ";success|true";
- }
- return ";success|false";
- }
- public String adicionaAlbum(String nomeEditor,String nome_artista,String nome_album,String descricao) {
- for(Artista art : artistas ){
- if (art.nome.equals(nome_artista)){
- art.albuns.add(new Album(nome_album,descricao,nomeEditor));
- System.out.println("Album adicionado");
- return ";success|true";
- }
- }
- return ";success|false";
- }
- public String adicionaMusica(String nomeArtista,String nomeAlbum,String nomeMusica,String duracao){
- for (Artista art :artistas){
- if (art.nome.equals(nomeArtista)){
- for (Album alb :art.albuns){
- if (alb.nome.equals(nomeAlbum)){
- alb.musicas.add(new Musica(nomeMusica,Float.parseFloat(duracao)));
- return ";success|true";
- }
- }
- return ";success|false";
- }
- }
- return ";success|false";
- }
- public String consultaPorArtista(String nomeArtista){
- String stRetornar="";
- for (Artista art : artistas){
- if(art.nome.equals(nomeArtista)){
- stRetornar+=";desc|"+art.des;
- int intAlb=0;
- stRetornar +=";num_albuns|"+art.albuns.size();
- for(Album album : art.albuns){
- int intMus=0;
- stRetornar+=";alb_"+intAlb+"_name|"+album.nome;
- //stRetornar+=";desc|"+album.descricao;
- stRetornar+=";num_mus|"+album.musicas.size();
- for (Musica mus: album.musicas){
- stRetornar+=";mus_"+intMus+"_name";
- stRetornar+="|"+mus.nome;
- intMus++;
- }
- intAlb++;
- }
- return ";success|true"+stRetornar;
- }
- }
- return ";success|false";
- }
- public String consultaPorAlbum(String nomeArtista,String nomeAlbum){
- String adicionar="";
- String preAdicionar="";
- for (Artista art :artistas){
- if (art.nome.equals(nomeArtista)){
- for (Album alb :art.albuns){
- if (alb.nome.equals(nomeAlbum)){
- adicionar+=";album_name|"+alb.nome;
- adicionar+=";art_name|"+art.nome;
- adicionar+=";desc|"+alb.descricao;
- adicionar+=";avg|"+String.valueOf(alb.mediaCriticas());
- adicionar+=";num_crits|"+alb.criticas.size();
- int numCrit=0;
- for (Critica critica:alb.criticas){
- adicionar+=";crit_"+numCrit+"|"+critica.just;
- numCrit++;
- }
- adicionar+=";num_mus|"+alb.musicas.size();
- int numMusicas=0;
- for (Musica mus: alb.musicas){
- adicionar+=";num_mus"+numMusicas+"|"+mus.nome;
- adicionar+=";dur_"+numMusicas+"|"+Float.toString(mus.duracao);
- numMusicas++;
- }
- }
- }
- break;
- }
- }
- if (adicionar.equals("")){ // nao foi encontrado nenhum album
- return ";success|false";
- }
- return ";success|true"+preAdicionar+adicionar;
- }
- public String pesquisaPorAlbumArtistaMusica(String nome){
- int numArtistas=0;
- String adicionarArtistas="";
- String preAdicionarArtistas="";
- for (Artista art:artistas){
- String[] artNome = art.nome.split(" ");
- for (String sub: artNome){
- if (sub.equals(nome)){
- adicionarArtistas+=";artist_"+numArtistas+"_name|"+art.nome;
- numArtistas++;
- }
- }
- }
- preAdicionarArtistas+=";num_artists|"+numArtistas;
- String adicionarAlbuns="";
- String preAdicionarAlbuns="";
- int numAlbuns=0;
- for(Artista art:artistas){
- for (Album alb :art.albuns){
- String[] albNome = alb.nome.split(" ");
- for(String sub : albNome){
- if (sub.equals(nome)){
- adicionarAlbuns+=";album_"+numAlbuns+"_name|"+alb.nome;
- numAlbuns++;
- }
- }
- }
- }
- preAdicionarAlbuns+=";num_albuns|"+numAlbuns;
- String adicionarMusicas="";
- String preAdicionarMusicas="";
- int numMusicas=0;
- for(Artista art:artistas){
- for (Album alb :art.albuns){
- for (Musica mus:alb.musicas){
- String[] musNone = mus.nome.split(" ");
- for (String sub : musNone){
- if (sub.equals(nome)){
- adicionarMusicas+=";music_"+numMusicas+"_name|"+mus.nome;
- numMusicas++;
- }
- }
- }
- }
- }
- preAdicionarMusicas+=";num_musics|"+numMusicas;
- if (adicionarAlbuns.equals("")&&adicionarArtistas.equals("")&&adicionarMusicas.equals("")){ // nao foi encontrado nenhum album
- return ";success|false";
- }
- return ";success|true"+preAdicionarArtistas+adicionarArtistas+preAdicionarAlbuns+adicionarAlbuns+preAdicionarMusicas+adicionarMusicas;
- }
- public String escreveCritica(String user,String artista,String nomeAlbum ,int pontuacao,String des){
- for (Artista art :artistas){
- if (art.nome.equals(artista)){
- for (Album alb : art.albuns){
- if (alb.nome.equals(nomeAlbum)){
- alb.criticas.add(new Critica(user,pontuacao,des));
- return ";success|true";
- }
- }
- }
- }
- return ";success|false";
- }
- public String givePrivelege(String nome){
- for (Utilizador user : users){
- if (user.username.equals(nome)){
- user.editor=1;
- return ";success|true";
- }
- }
- return ";success|false";
- }
- public String checkAdmin(String nome){
- for (Utilizador user : users){
- if (user.username.equals(nome)){
- if(user.editor==1){
- return ";check_admin|true";
- }
- return ";check_admin|false";
- }
- }
- return ";check_admin|false";
- }
- public boolean checkRegister(String nome){
- for (Utilizador u: users){
- if (u.username.equals(nome)){
- return false;
- }
- }
- return true;
- }
- public boolean checkArtist(String nome){
- for (Artista art:artistas){
- if (art.nome.equals(nome)){
- return false;
- }
- }
- return true;
- }
- public String editAlbum(String nomeEditor, String nomeArtista,String nomeAlbum ,String novoNome, String novaDescricao){
- String adicionar="";
- for(Artista art:artistas ){
- if (art.nome.equals(nomeArtista)){
- for (Album alb:art.albuns){
- if (alb.nome.equals(nomeAlbum)){
- alb.nome=novoNome;
- alb.descricao=novaDescricao;
- adicionar+=";success|true";
- if (alb.editores.contains(nomeEditor)){
- alb.editores.remove(nomeEditor);
- }
- adicionar+=";num_editors|"+alb.editores.size();
- int numEditores =0;
- for(String edit: alb.editores){
- adicionar+=";editor_"+numEditores+"|"+edit;
- numEditores++;
- }
- alb.editores.add(nomeEditor);
- return adicionar;
- }
- return ";success|false";
- }
- }
- }
- return ";success|false";
- }
- public String editArtist(String name,String new_name, String new_desc){
- for (Artista art: artistas){
- if (art.nome.equals(name)){
- art.nome=new_name;
- art.des=new_desc;
- return ";success|true";
- }
- }
- return ";success|false";
- }
- public String removeArtist(String name){
- for (Artista art: artistas){
- if (art.nome.equals(name)){
- artistas.remove(art);
- return ";success|true";
- }
- }
- return ";success|false";
- }
- public String removeAlbum(String artist_name,String album_name){
- for (Artista art: artistas){
- if (artist_name.equals(art.nome)){
- for (Album alb:art.albuns){
- if (alb.nome.equals(album_name)){
- art.albuns.remove(alb);
- return ";success|yes";
- }
- }
- return ";success|no";
- }
- }
- return ";success|no";
- }
- public String removeSong(String artist_name,String album_name,String song_name){
- for (Artista art:artistas){
- if (art.nome.equals(artist_name)){
- for (Album alb: art.albuns){
- if (alb.nome.equals(album_name)){
- for (Musica mus:alb.musicas){
- if (mus.nome.equals(song_name)){
- alb.musicas.remove(mus);
- return ";success|true";
- }
- }
- return ";success|false";
- }
- }
- return ";success|false";
- }
- }
- return ";success|false";
- }
- public String enviaMusica(String song,String port){
- new Cliente(6000-Integer.parseInt(port),"/Users/joaomendes/Desktop/SDProjeto/ficheiros_server/"+song);
- return "true";
- }
- private void escreveArtistas(ArrayList<Artista> artistas){
- ObjectOutputStream oos ;
- FileOutputStream fout;
- try{
- fout = new FileOutputStream("artistas");
- oos = new ObjectOutputStream(fout);
- oos.writeObject(artistas);
- oos.close();
- fout.close();
- }catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void escreveUtilizadores(ArrayList<Utilizador> users){
- ObjectOutputStream oos ;
- FileOutputStream fout;
- try{
- fout = new FileOutputStream("utilizadores");
- oos = new ObjectOutputStream(fout);
- oos.writeObject(users);
- oos.close();
- fout.close();
- }catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static ArrayList<Artista> leArtista() {
- ObjectInputStream ois ;
- FileInputStream fin;
- ArrayList<Artista> artistas;
- try{
- fin = new FileInputStream("artistas");
- ois = new ObjectInputStream(fin);
- artistas=(ArrayList<Artista>) ois.readObject();
- ois.close();
- fin.close();
- return artistas;
- }catch (IOException e) {
- e.printStackTrace();
- return null ;
- }catch (ClassNotFoundException c ){
- c.printStackTrace();
- return null;
- }
- }
- public static ArrayList<Utilizador> leUtilizadores() {
- ObjectInputStream ois ;
- FileInputStream fin;
- ArrayList<Utilizador> users;
- try{
- fin = new FileInputStream("utilizadores");
- ois = new ObjectInputStream(fin);
- users=(ArrayList<Utilizador>) ois.readObject();
- ois.close();
- fin.close();
- return users;
- }catch (IOException e) {
- e.printStackTrace();
- return null ;
- }catch (ClassNotFoundException c ){
- c.printStackTrace();
- return null;
- }
- }
- }
- class TCPServer extends Thread{
- private final static String fileOutput = "/Users/joaomendes/Desktop/SDProjeto/download/ficheiro.mp3";
- private final int id ;
- public TCPServer(int id){
- this.id=id;
- }
- public void run(){
- int numero=0;
- try{
- int serverPort = 6000+id;
- ServerSocket listenSocket = new ServerSocket(serverPort);
- System.out.println("LISTEN SOCKET="+listenSocket);
- File myFile = new File(fileOutput);
- while(true) {
- Socket clientSocket = listenSocket.accept(); // BLOQUEANTE
- System.out.println("CLIENT_SOCKET (created at accept())="+clientSocket);
- numero ++;
- new Connection(clientSocket, numero);
- }
- }catch(IOException e)
- {System.out.println("Listen:" + e.getMessage());}
- }
- }
- class TCPClient {
- private final static String serverIP = "127.0.0.1";
- private final static int serverPort = 5555;
- private final static String fileInput = "/Users/joaomendes/Desktop/Download/c/ficheiro.mp3";
- public static void main(String args[]) throws IOException {
- Socket sock = new Socket(serverIP, serverPort);
- File f = new File(fileInput);
- byte[] mybytearray = new byte[(int) f.length()];
- BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileInput));
- bis.read(mybytearray, 0, mybytearray.length);
- OutputStream os = sock.getOutputStream();
- int count;
- os.write(mybytearray, 0, mybytearray.length);
- os.flush();
- sock.close();
- }
- }
- //= Thread para tratar de cada canal de comunicação com um cliente
- class Connection extends Thread {
- DataInputStream in;
- DataOutputStream out;
- Socket clientSocket;
- int thread_number;
- public Connection (Socket aClientSocket, int numero) {
- thread_number = numero;
- try{
- clientSocket = aClientSocket;
- in = new DataInputStream(clientSocket.getInputStream());
- out = new DataOutputStream(clientSocket.getOutputStream());
- this.start();
- }catch(IOException e){System.out.println("Connection:" + e.getMessage());}
- }
- //=============================
- public void run(){
- String resposta;
- try{
- //byte[] mybytearray = new byte[(int) myFile.length()];
- byte[] mybytearray = new byte[8192];
- InputStream is = clientSocket.getInputStream();
- int bytesRead;
- int ite=0;
- String nomeFicheiro = in.readUTF();
- System.out.println(nomeFicheiro);
- FileOutputStream fis = new FileOutputStream(nomeFicheiro);
- BufferedOutputStream bos = new BufferedOutputStream(fis);
- while ( (bytesRead = is.read(mybytearray, 0, mybytearray.length)) !=-1){
- System.out.println(bytesRead);
- bos.write(mybytearray, 0, bytesRead);
- }
- bos.close();
- clientSocket.close();
- }catch(EOFException e){System.out.println("EOF:" + e);
- }catch(IOException e){System.out.println("IO:" + e);}
- }
- }
- class Cliente extends Thread{
- private String serverIP = "127.0.0.1";
- private int serverPort = 6001;
- private String fileInput="";
- public Cliente(int id,String fileInput){
- this.fileInput=fileInput;
- this.serverPort=6000+id;
- this.start();
- }
- public void run() {
- Socket sock = null;
- try {
- sock = new Socket(serverIP, serverPort);
- File f = new File(fileInput);
- byte[] mybytearray = new byte[(int) f.length()];
- BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileInput+".mp3"));
- bis.read(mybytearray, 0, mybytearray.length);
- DataOutputStream out = new DataOutputStream(sock.getOutputStream());
- OutputStream os = sock.getOutputStream();
- int count;
- /*while ((count = bis.read(mybytearray)) > 0)
- {
- os.write(mybytearray, 0, count);
- }*/
- String nome = "ficheiro2.mp3";
- byte[] b = nome.getBytes();
- out.writeUTF(nome);
- //os.write(b,0,b.length);
- os.write(mybytearray, 0, mybytearray.length);
- os.flush();
- sock.close();
- } catch (IOException e) {
- System.out.println("Ficheiro Inexistente");
- }
- }
- }
- class Utilizador implements Serializable {
- String username;
- String password;
- int editor;
- Utilizador(String username,String password){
- this.username=username;
- this.password=password;
- this.editor=0;
- }
- }
- class Artista implements Serializable{
- String des;
- String nome;
- ArrayList<Album> albuns;
- Artista(String nome,String des){
- this.des=des;
- this.nome=nome;
- this.albuns = new ArrayList<Album>();
- }
- }
- class Album implements Serializable{
- String nome ;
- String descricao;
- String genero;
- ArrayList<String> editores;
- ArrayList<Critica> criticas;
- ArrayList<Musica> musicas;
- Album(String nome,String descricao,String nomeEditor){
- this.editores = new ArrayList<String>();
- this.editores.add(nomeEditor);
- this.nome=nome;
- this.descricao=descricao;
- criticas = new ArrayList<Critica>();
- musicas = new ArrayList<Musica>();
- }
- float mediaCriticas(){
- float soma=0;
- if (criticas.size()==0)
- return 0;
- for(Critica crit : this.criticas){
- soma+=crit.pontuacao;
- }
- return soma/criticas.size();
- }
- }
- class Musica implements Serializable{
- String nome;
- float duracao;
- public Musica(String nomeMusica, float v) {
- this.nome=nomeMusica;
- this.duracao=v;
- }
- }
- class Critica implements Serializable{
- String user;
- int pontuacao;
- String just;
- Critica(String user,int pontuacao,String just){
- this.user=user;
- this.pontuacao=pontuacao;
- this.just=just;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement