/** * *Clase Linea *@author Diego del Valle *@author Diego Gonzalez */ import java.io.*; import java.net.*; import java.util.*; /** *Clase ClientData que implementa el circulo que sera dibujado en los paneles * */ public class ClientData{ /**Constructor de la Clase ClientData que almacena los datos del cliente *@param clientAddress direccion del cliente *@param port puerto desde donde se establecio la conexion del cliente *@param width tamano de ventana para el cliente *@param heigth tamano de ventana para el cliente *@param circular flag que especifica si arquitectura es circular o no *@param arquitectura tipo de arquitectura que implementara el servidor *@param clientIdentifier Numero identificador del cliente */ public ClientData(InetAddress clientAddr, int port, int width, int heigth, boolean circular, String arquitectura, int clientIdentifier){ this.clientAddr = clientAddr; this.clientPort = port; this.width = width; this.heigth = heigth; this.arquitectura = arquitectura; this.clientIdentifier = clientIdentifier; this.circular = circular; } /**Metodo que modifica los datos del cliente en base al numero de clientes que se han conectado *@param clientCounter contiene el numero maximo de clientes que se han conectado */ public void setData(int clientCounter) { if (arquitectura.equals("lineal")) { minHeigth = 0; minWidth = width * clientIdentifier; up = true; down = true; left = false; rigth = false; if (!circular) { if (clientIdentifier == 0) { left = true; } if (clientIdentifier + 1 == clientCounter) { rigth = true; } } } else { minWidth = (clientIdentifier / 2) * width; minHeigth = (clientIdentifier % 2) *heigth; left = false; rigth = false; if (clientCounter == 1) { up = true; down = true; } else { if (clientIdentifier % 2 == 0) { up = true; down = false; } else { up = false; down = true; } } if (!circular) { if (clientIdentifier == 0 || clientIdentifier == 1) left = true; if (clientIdentifier + 1 == clientCounter) rigth = true; if (clientIdentifier % 2 == 0 && clientIdentifier + 2 == clientCounter) rigth = true; } } } /**Retorna flag up del cliente, permite en el cliente pintar el borde superior *de su ventana *@return retorna verdadero o false */ public boolean getUp() { return up; } /**Retorna flag down del cliente, permite en el cliente pintar el borde superior *de su ventana *@return retorna verdadero o false */ public boolean getDown() { return down; } /**Retorna flag left del cliente, permite en el cliente pintar el borde superior *de su ventana *@return retorna verdadero o false */ public boolean getLeft() { return left; } /**Retorna flag rigth del cliente, permite en el cliente pintar el borde superior *de su ventana *@return retorna verdadero o false */ public boolean getRigth() { return rigth; } /**Retorna tamano width de ventana del cliente para crear ventana *@return retorna width */ public int getWidth() { return width; } /**Retorna tamano heigth de ventana del cliente para crear ventana *@return retorna heigth */ public int getHeigth() { return heigth; } /**Retorna tamano coordenada x inicial del cliente en mapa del servidor *@return retorna coordenada x */ public int getMinWidth() { return minWidth; } /**Retorna tamano coordenada y inicial del cliente en mapa del servidor *@return retorna coordenada y */ public int getMinHeigth() { return minHeigth; } /**Retorna direccion ip de cliente *@return retorna direccion ip del cliente */ public InetAddress getClientAddr() { return clientAddr; } /**Retorna puerto de cliente *@return retorna puerto del cliente */ public int getClientPort() { return clientPort; } //Variables privadas private InetAddress clientAddr; private int clientPort; private int width; private int heigth; private int minWidth; private int minHeigth; private String arquitectura; private int clientIdentifier; private boolean circular; private boolean up; private boolean down; private boolean left; private boolean rigth; }