forked from IF-LK-2020/wordle
Diagramme hinzugefügt
This commit is contained in:
228
Queue.java
228
Queue.java
@@ -16,127 +16,127 @@
|
|||||||
* @version Generisch_02 2014-02-21
|
* @version Generisch_02 2014-02-21
|
||||||
*/
|
*/
|
||||||
public class Queue<ContentType> {
|
public class Queue<ContentType> {
|
||||||
|
|
||||||
/* --------- Anfang der privaten inneren Klasse -------------- */
|
/* --------- Anfang der privaten inneren Klasse -------------- */
|
||||||
|
|
||||||
private class QueueNode {
|
private class QueueNode {
|
||||||
|
|
||||||
private ContentType content = null;
|
private ContentType content = null;
|
||||||
private QueueNode nextNode = null;
|
private QueueNode nextNode = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
* Ein neues Objekt vom Typ QueueNode<ContentType> wird erschaffen.
|
||||||
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
* Der Inhalt wird per Parameter gesetzt. Der Verweis ist leer.
|
||||||
*
|
*
|
||||||
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
* @param pContent das Inhaltselement des Knotens vom Typ ContentType
|
||||||
*/
|
*/
|
||||||
public QueueNode(ContentType pContent) {
|
public QueueNode(ContentType pContent) {
|
||||||
content = pContent;
|
content = pContent;
|
||||||
nextNode = null;
|
nextNode = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
* Der Verweis wird auf das Objekt, das als Parameter uebergeben wird,
|
||||||
* gesetzt.
|
* gesetzt.
|
||||||
*
|
*
|
||||||
* @param pNext der Nachfolger des Knotens
|
* @param pNext der Nachfolger des Knotens
|
||||||
*/
|
*/
|
||||||
public void setNext(QueueNode pNext) {
|
public void setNext(QueueNode pNext) {
|
||||||
nextNode = pNext;
|
nextNode = pNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Liefert das naechste Element des aktuellen Knotens.
|
* Liefert das naechste Element des aktuellen Knotens.
|
||||||
*
|
*
|
||||||
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
* @return das Objekt vom Typ QueueNode, auf das der aktuelle Verweis zeigt
|
||||||
*/
|
*/
|
||||||
public QueueNode getNext() {
|
public QueueNode getNext() {
|
||||||
return nextNode;
|
return nextNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
* Liefert das Inhaltsobjekt des Knotens vom Typ ContentType.
|
||||||
*
|
*
|
||||||
* @return das Inhaltsobjekt des Knotens
|
* @return das Inhaltsobjekt des Knotens
|
||||||
*/
|
*/
|
||||||
public ContentType getContent() {
|
public ContentType getContent() {
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------- Ende der privaten inneren Klasse -------------- */
|
/* ----------- Ende der privaten inneren Klasse -------------- */
|
||||||
|
|
||||||
private QueueNode head;
|
private QueueNode head;
|
||||||
private QueueNode tail;
|
private QueueNode tail;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Eine leere Schlange wird erzeugt.
|
* Eine leere Schlange wird erzeugt.
|
||||||
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
* Objekte, die in dieser Schlange verwaltet werden, muessen vom Typ
|
||||||
* ContentType sein.
|
* ContentType sein.
|
||||||
*/
|
*/
|
||||||
public Queue() {
|
public Queue() {
|
||||||
head = null;
|
head = null;
|
||||||
tail = null;
|
tail = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
* Die Anfrage liefert den Wert true, wenn die Schlange keine Objekte enthaelt,
|
||||||
* sonst liefert sie den Wert false.
|
* sonst liefert sie den Wert false.
|
||||||
*
|
*
|
||||||
* @return true, falls die Schlange leer ist, sonst false
|
* @return true, falls die Schlange leer ist, sonst false
|
||||||
*/
|
*/
|
||||||
public boolean isEmpty() {
|
public boolean isEmpty() {
|
||||||
return head == null;
|
return head == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das Objekt pContentType wird an die Schlange angehaengt.
|
* Das Objekt pContentType wird an die Schlange angehaengt.
|
||||||
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
* Falls pContentType gleich null ist, bleibt die Schlange unveraendert.
|
||||||
*
|
*
|
||||||
* @param pContent
|
* @param pContent
|
||||||
* das anzuhaengende Objekt vom Typ ContentType
|
* das anzuhaengende Objekt vom Typ ContentType
|
||||||
*/
|
*/
|
||||||
public void enqueue(ContentType pContent) {
|
public void enqueue(ContentType pContent) {
|
||||||
if (pContent != null) {
|
if (pContent != null) {
|
||||||
QueueNode newNode = new QueueNode(pContent);
|
QueueNode newNode = new QueueNode(pContent);
|
||||||
if (this.isEmpty()) {
|
if (this.isEmpty()) {
|
||||||
head = newNode;
|
head = newNode;
|
||||||
tail = newNode;
|
tail = newNode;
|
||||||
} else {
|
} else {
|
||||||
tail.setNext(newNode);
|
tail.setNext(newNode);
|
||||||
tail = newNode;
|
tail = newNode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das erste Objekt wird aus der Schlange entfernt.
|
* Das erste Objekt wird aus der Schlange entfernt.
|
||||||
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
* Falls die Schlange leer ist, wird sie nicht veraendert.
|
||||||
*/
|
*/
|
||||||
public void dequeue() {
|
public void dequeue() {
|
||||||
if (!this.isEmpty()) {
|
if (!this.isEmpty()) {
|
||||||
head = head.getNext();
|
head = head.getNext();
|
||||||
if (this.isEmpty()) {
|
if (this.isEmpty()) {
|
||||||
head = null;
|
head = null;
|
||||||
tail = null;
|
tail = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Die Anfrage liefert das erste Objekt der Schlange.
|
* Die Anfrage liefert das erste Objekt der Schlange.
|
||||||
* Die Schlange bleibt unveraendert.
|
* Die Schlange bleibt unveraendert.
|
||||||
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
* Falls die Schlange leer ist, wird null zurueckgegeben.
|
||||||
*
|
*
|
||||||
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
* @return das erste Objekt der Schlange vom Typ ContentType oder null,
|
||||||
* falls die Schlange leer ist
|
* falls die Schlange leer ist
|
||||||
*/
|
*/
|
||||||
public ContentType front() {
|
public ContentType front() {
|
||||||
if (this.isEmpty()) {
|
if (this.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return head.getContent();
|
return head.getContent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
106
Server.java
106
Server.java
@@ -244,16 +244,16 @@ public abstract class Server
|
|||||||
|
|
||||||
public boolean isOpen()
|
public boolean isOpen()
|
||||||
{
|
{
|
||||||
return(connectionHandler.active);
|
return(connectionHandler.active);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isConnectedTo(String pClientIP, int pClientPort)
|
public boolean isConnectedTo(String pClientIP, int pClientPort)
|
||||||
{
|
{
|
||||||
ClientMessageHandler aMessageHandler = findClientMessageHandler(pClientIP, pClientPort);
|
ClientMessageHandler aMessageHandler = findClientMessageHandler(pClientIP, pClientPort);
|
||||||
if (aMessageHandler != null)
|
if (aMessageHandler != null)
|
||||||
return(aMessageHandler.active);
|
return(aMessageHandler.active);
|
||||||
else
|
else
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void send(String pClientIP, int pClientPort, String pMessage)
|
public void send(String pClientIP, int pClientPort, String pMessage)
|
||||||
@@ -265,15 +265,15 @@ public abstract class Server
|
|||||||
|
|
||||||
public void sendToAll(String pMessage)
|
public void sendToAll(String pMessage)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
messageHandlers.getContent().send(pMessage);
|
messageHandlers.getContent().send(pMessage);
|
||||||
messageHandlers.next();
|
messageHandlers.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void closeConnection(String pClientIP, int pClientPort)
|
public void closeConnection(String pClientIP, int pClientPort)
|
||||||
@@ -294,15 +294,15 @@ public abstract class Server
|
|||||||
|
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
ClientMessageHandler aMessageHandler;
|
ClientMessageHandler aMessageHandler;
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
aMessageHandler = messageHandlers.getContent();
|
aMessageHandler = messageHandlers.getContent();
|
||||||
processClosingConnection(aMessageHandler.getClientIP(), aMessageHandler.getClientPort());
|
processClosingConnection(aMessageHandler.getClientIP(), aMessageHandler.getClientPort());
|
||||||
aMessageHandler.close();
|
aMessageHandler.close();
|
||||||
messageHandlers.remove();
|
messageHandlers.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -314,46 +314,46 @@ public abstract class Server
|
|||||||
|
|
||||||
private void addNewClientMessageHandler(Socket pClientSocket)
|
private void addNewClientMessageHandler(Socket pClientSocket)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
messageHandlers.append(new Server.ClientMessageHandler(pClientSocket));
|
messageHandlers.append(new Server.ClientMessageHandler(pClientSocket));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeClientMessageHandler(ClientMessageHandler pClientMessageHandler)
|
private void removeClientMessageHandler(ClientMessageHandler pClientMessageHandler)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
if (pClientMessageHandler == messageHandlers.getContent())
|
if (pClientMessageHandler == messageHandlers.getContent())
|
||||||
{
|
{
|
||||||
messageHandlers.remove();
|
messageHandlers.remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
messageHandlers.next();
|
messageHandlers.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClientMessageHandler findClientMessageHandler(String pClientIP, int pClientPort)
|
private ClientMessageHandler findClientMessageHandler(String pClientIP, int pClientPort)
|
||||||
{
|
{
|
||||||
synchronized(messageHandlers)
|
synchronized(messageHandlers)
|
||||||
{
|
{
|
||||||
ClientMessageHandler aMessageHandler;
|
ClientMessageHandler aMessageHandler;
|
||||||
messageHandlers.toFirst();
|
messageHandlers.toFirst();
|
||||||
|
|
||||||
while (messageHandlers.hasAccess())
|
while (messageHandlers.hasAccess())
|
||||||
{
|
{
|
||||||
aMessageHandler = messageHandlers.getContent();
|
aMessageHandler = messageHandlers.getContent();
|
||||||
if (aMessageHandler.getClientIP().equals(pClientIP) && aMessageHandler.getClientPort() == pClientPort)
|
if (aMessageHandler.getClientIP().equals(pClientIP) && aMessageHandler.getClientPort() == pClientPort)
|
||||||
return (aMessageHandler);
|
return (aMessageHandler);
|
||||||
messageHandlers.next();
|
messageHandlers.next();
|
||||||
}
|
}
|
||||||
return (null);
|
return (null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
145
Wordle Diagramme/Objektdiagramm Wordle Projekt.uxf
Normal file
145
Wordle Diagramme/Objektdiagramm Wordle Projekt.uxf
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<diagram program="umlet" version="14.3.0">
|
||||||
|
<zoom_level>8</zoom_level>
|
||||||
|
<element>
|
||||||
|
<id>UMLClass</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>224</x>
|
||||||
|
<y>400</y>
|
||||||
|
<w>360</w>
|
||||||
|
<h>128</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_object: WordleServer_
|
||||||
|
--
|
||||||
|
+ int DEFAULT_PORT
|
||||||
|
+ DatabaseConnector db
|
||||||
|
--
|
||||||
|
+ WordleServer
|
||||||
|
+ WordleServer(int pPort)
|
||||||
|
+ processNewConnection(String pClientIP, int pClientPort)
|
||||||
|
+ processClosingConnection(String pClientIP, int pClientPort)
|
||||||
|
+ processMessage(String pClientIP, int pClientPort, String pMessage)</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLClass</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>312</x>
|
||||||
|
<y>272</y>
|
||||||
|
<w>168</w>
|
||||||
|
<h>56</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_object: Server_
|
||||||
|
--
|
||||||
|
|
||||||
|
</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLClass</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>80</x>
|
||||||
|
<y>632</y>
|
||||||
|
<w>168</w>
|
||||||
|
<h>56</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_object: Queue<ContentType>_
|
||||||
|
--
|
||||||
|
</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLClass</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>320</x>
|
||||||
|
<y>632</y>
|
||||||
|
<w>168</w>
|
||||||
|
<h>56</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_object: DatabaseConnector_
|
||||||
|
--
|
||||||
|
</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLClass</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>312</x>
|
||||||
|
<y>136</y>
|
||||||
|
<w>168</w>
|
||||||
|
<h>56</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_object: List<ContentType>_
|
||||||
|
--
|
||||||
|
</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLClass</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>552</x>
|
||||||
|
<y>632</y>
|
||||||
|
<w>168</w>
|
||||||
|
<h>56</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_object: QueryResult_
|
||||||
|
--
|
||||||
|
</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>392</x>
|
||||||
|
<y>320</y>
|
||||||
|
<w>24</w>
|
||||||
|
<h>96</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<<<-</panel_attributes>
|
||||||
|
<additional_attributes>10.0;100.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>392</x>
|
||||||
|
<y>184</y>
|
||||||
|
<w>24</w>
|
||||||
|
<h>104</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<..</panel_attributes>
|
||||||
|
<additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>392</x>
|
||||||
|
<y>520</y>
|
||||||
|
<w>24</w>
|
||||||
|
<h>128</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<..</panel_attributes>
|
||||||
|
<additional_attributes>10.0;140.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>240</x>
|
||||||
|
<y>648</y>
|
||||||
|
<w>96</w>
|
||||||
|
<h>24</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<..</panel_attributes>
|
||||||
|
<additional_attributes>10.0;10.0;100.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>480</x>
|
||||||
|
<y>648</y>
|
||||||
|
<w>88</w>
|
||||||
|
<h>24</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<..</panel_attributes>
|
||||||
|
<additional_attributes>90.0;10.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
</diagram>
|
||||||
169
Wordle Diagramme/Sequenzdiagramm Wordle Projekt.uxf
Normal file
169
Wordle Diagramme/Sequenzdiagramm Wordle Projekt.uxf
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<diagram program="umlet" version="14.3.0">
|
||||||
|
<zoom_level>8</zoom_level>
|
||||||
|
<element>
|
||||||
|
<id>UMLGeneric</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>584</x>
|
||||||
|
<y>160</y>
|
||||||
|
<w>80</w>
|
||||||
|
<h>24</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_Client 2_</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLGeneric</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>120</x>
|
||||||
|
<y>160</y>
|
||||||
|
<w>80</w>
|
||||||
|
<h>24</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_Client 1_</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLGeneric</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>352</x>
|
||||||
|
<y>160</y>
|
||||||
|
<w>80</w>
|
||||||
|
<h>24</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>_Wordle Server_</panel_attributes>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>152</x>
|
||||||
|
<y>176</y>
|
||||||
|
<w>24</w>
|
||||||
|
<h>536</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=.</panel_attributes>
|
||||||
|
<additional_attributes>10.0;650.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>384</x>
|
||||||
|
<y>176</y>
|
||||||
|
<w>24</w>
|
||||||
|
<h>536</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=.</panel_attributes>
|
||||||
|
<additional_attributes>10.0;650.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>616</x>
|
||||||
|
<y>176</y>
|
||||||
|
<w>24</w>
|
||||||
|
<h>536</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=.</panel_attributes>
|
||||||
|
<additional_attributes>10.0;650.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLGeneric</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>376</x>
|
||||||
|
<y>240</y>
|
||||||
|
<w>16</w>
|
||||||
|
<h>56</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes/>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>152</x>
|
||||||
|
<y>216</y>
|
||||||
|
<w>240</w>
|
||||||
|
<h>40</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<-</panel_attributes>
|
||||||
|
<additional_attributes>280.0;30.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>152</x>
|
||||||
|
<y>288</y>
|
||||||
|
<w>240</w>
|
||||||
|
<h>40</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<-</panel_attributes>
|
||||||
|
<additional_attributes>10.0;30.0;280.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>400</x>
|
||||||
|
<y>280</y>
|
||||||
|
<w>240</w>
|
||||||
|
<h>48</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<-</panel_attributes>
|
||||||
|
<additional_attributes>10.0;40.0;280.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>400</x>
|
||||||
|
<y>352</y>
|
||||||
|
<w>240</w>
|
||||||
|
<h>48</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<-</panel_attributes>
|
||||||
|
<additional_attributes>280.0;40.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLGeneric</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>392</x>
|
||||||
|
<y>312</y>
|
||||||
|
<w>16</w>
|
||||||
|
<h>48</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes/>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>152</x>
|
||||||
|
<y>328</y>
|
||||||
|
<w>240</w>
|
||||||
|
<h>48</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<-</panel_attributes>
|
||||||
|
<additional_attributes>280.0;40.0;10.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>UMLGeneric</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>376</x>
|
||||||
|
<y>360</y>
|
||||||
|
<w>16</w>
|
||||||
|
<h>48</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes/>
|
||||||
|
<additional_attributes/>
|
||||||
|
</element>
|
||||||
|
<element>
|
||||||
|
<id>Relation</id>
|
||||||
|
<coordinates>
|
||||||
|
<x>152</x>
|
||||||
|
<y>400</y>
|
||||||
|
<w>240</w>
|
||||||
|
<h>40</h>
|
||||||
|
</coordinates>
|
||||||
|
<panel_attributes>lt=<-</panel_attributes>
|
||||||
|
<additional_attributes>10.0;30.0;280.0;10.0</additional_attributes>
|
||||||
|
</element>
|
||||||
|
</diagram>
|
||||||
@@ -4,14 +4,14 @@
|
|||||||
*/
|
*/
|
||||||
public class WordleServer extends Server {
|
public class WordleServer extends Server {
|
||||||
|
|
||||||
publib static final int DEFAULT_PORT = 1000;
|
public static final int DEFAULT_PORT = 1000;
|
||||||
|
|
||||||
public static void main( String[] args ) {
|
public static void main( String[] args ) {
|
||||||
new WordleServer();
|
new WordleServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private DatabaseConnector db;
|
private DatabaseConnector db;
|
||||||
|
|
||||||
|
|
||||||
public WordleServer() {
|
public WordleServer() {
|
||||||
|
|||||||
122
package.bluej
122
package.bluej
@@ -1,91 +1,79 @@
|
|||||||
#BlueJ package file
|
#BlueJ package file
|
||||||
dependency1.from=DecisionNode
|
dependency1.from=DatabaseConnector
|
||||||
dependency1.to=Dataset
|
dependency1.to=QueryResult
|
||||||
dependency1.type=UsesDependency
|
dependency1.type=UsesDependency
|
||||||
dependency2.from=Classification
|
dependency2.from=DatabaseConnector
|
||||||
dependency2.to=Dataset
|
dependency2.to=Queue
|
||||||
dependency2.type=UsesDependency
|
dependency2.type=UsesDependency
|
||||||
dependency3.from=Decision
|
dependency3.from=Server
|
||||||
dependency3.to=Dataset
|
dependency3.to=List
|
||||||
dependency3.type=UsesDependency
|
dependency3.type=UsesDependency
|
||||||
dependency4.from=DecisionTreeBuilder
|
dependency4.from=WordleServer
|
||||||
dependency4.to=BinaryTree
|
dependency4.to=DatabaseConnector
|
||||||
dependency4.type=UsesDependency
|
dependency4.type=UsesDependency
|
||||||
dependency5.from=DecisionTreeBuilder
|
editor.fx.0.height=1017
|
||||||
dependency5.to=DecisionNode
|
editor.fx.0.width=854
|
||||||
dependency5.type=UsesDependency
|
editor.fx.0.x=-7
|
||||||
dependency6.from=DecisionTreeBuilder
|
editor.fx.0.y=0
|
||||||
dependency6.to=Classification
|
objectbench.height=96
|
||||||
dependency6.type=UsesDependency
|
objectbench.width=653
|
||||||
dependency7.from=DecisionTreeBuilder
|
|
||||||
dependency7.to=Decision
|
|
||||||
dependency7.type=UsesDependency
|
|
||||||
dependency8.from=DecisionTreeBuilder
|
|
||||||
dependency8.to=Dataset
|
|
||||||
dependency8.type=UsesDependency
|
|
||||||
editor.fx.0.height=722
|
|
||||||
editor.fx.0.width=800
|
|
||||||
editor.fx.0.x=388
|
|
||||||
editor.fx.0.y=50
|
|
||||||
objectbench.height=66
|
|
||||||
objectbench.width=1201
|
|
||||||
package.divider.horizontal=0.6
|
package.divider.horizontal=0.6
|
||||||
package.divider.vertical=0.8983286908077994
|
package.divider.vertical=0.8876772082878953
|
||||||
package.editor.height=622
|
package.editor.height=794
|
||||||
package.editor.width=1078
|
package.editor.width=542
|
||||||
package.editor.x=39
|
package.editor.x=0
|
||||||
package.editor.y=24
|
package.editor.y=0
|
||||||
package.frame.height=776
|
package.frame.height=1017
|
||||||
package.frame.width=1241
|
package.frame.width=693
|
||||||
package.numDependencies=8
|
package.numDependencies=4
|
||||||
package.numTargets=6
|
package.numTargets=6
|
||||||
package.showExtends=true
|
package.showExtends=true
|
||||||
package.showUses=true
|
package.showUses=true
|
||||||
project.charset=UTF-8
|
project.charset=UTF-8
|
||||||
readme.height=58
|
readme.height=60
|
||||||
readme.name=@README
|
readme.name=@README
|
||||||
readme.width=47
|
readme.width=49
|
||||||
readme.x=10
|
readme.x=10
|
||||||
readme.y=10
|
readme.y=10
|
||||||
target1.height=40
|
target1.height=70
|
||||||
target1.name=Classification
|
target1.name=DatabaseConnector
|
||||||
target1.showInterface=false
|
target1.showInterface=false
|
||||||
target1.type=ClassTarget
|
target1.type=ClassTarget
|
||||||
target1.width=210
|
target1.width=150
|
||||||
target1.x=40
|
target1.x=410
|
||||||
target1.y=460
|
target1.y=100
|
||||||
target2.height=50
|
target2.height=70
|
||||||
target2.name=Decision
|
target2.name=QueryResult
|
||||||
target2.showInterface=false
|
target2.showInterface=false
|
||||||
target2.type=ClassTarget
|
target2.type=ClassTarget
|
||||||
target2.width=190
|
target2.width=120
|
||||||
target2.x=300
|
target2.x=300
|
||||||
target2.y=460
|
target2.y=190
|
||||||
target3.height=120
|
target3.height=70
|
||||||
target3.name=BinaryTree
|
target3.name=Server
|
||||||
target3.showInterface=false
|
target3.showInterface=false
|
||||||
target3.type=ClassTarget
|
target3.type=AbstractTarget
|
||||||
target3.width=440
|
target3.width=120
|
||||||
target3.x=890
|
target3.x=540
|
||||||
target3.y=250
|
target3.y=410
|
||||||
target4.height=40
|
target4.height=70
|
||||||
target4.name=Dataset
|
target4.name=WordleServer
|
||||||
target4.showInterface=false
|
target4.showInterface=false
|
||||||
target4.type=ClassTarget
|
target4.type=ClassTarget
|
||||||
target4.width=270
|
target4.width=120
|
||||||
target4.x=430
|
target4.x=530
|
||||||
target4.y=30
|
target4.y=240
|
||||||
target5.height=50
|
target5.height=70
|
||||||
target5.name=DecisionNode
|
target5.name=List
|
||||||
target5.showInterface=false
|
target5.showInterface=false
|
||||||
target5.type=AbstractTarget
|
target5.type=ClassTarget
|
||||||
target5.width=110
|
target5.width=150
|
||||||
target5.x=210
|
target5.x=290
|
||||||
target5.y=290
|
target5.y=530
|
||||||
target6.height=60
|
target6.height=70
|
||||||
target6.name=DecisionTreeBuilder
|
target6.name=Queue
|
||||||
target6.showInterface=false
|
target6.showInterface=false
|
||||||
target6.type=ClassTarget
|
target6.type=ClassTarget
|
||||||
target6.width=270
|
target6.width=160
|
||||||
target6.x=580
|
target6.x=280
|
||||||
target6.y=230
|
target6.y=420
|
||||||
|
|||||||
Reference in New Issue
Block a user