removed superclass for packet, interface looks better

This commit is contained in:
Maxmtg
2013-04-14 10:59:04 +00:00
parent 3eed2f993b
commit 07fbc7c6a9
14 changed files with 57 additions and 43 deletions

2
.gitattributes vendored
View File

@@ -14301,8 +14301,8 @@ src/main/java/forge/net/package-info.java -text
src/main/java/forge/net/protocol/incoming/AuthorizePacket.java -text src/main/java/forge/net/protocol/incoming/AuthorizePacket.java -text
src/main/java/forge/net/protocol/incoming/ChatPacket.java -text src/main/java/forge/net/protocol/incoming/ChatPacket.java -text
src/main/java/forge/net/protocol/incoming/EchoPacket.java -text src/main/java/forge/net/protocol/incoming/EchoPacket.java -text
src/main/java/forge/net/protocol/incoming/IPacket.java -text
src/main/java/forge/net/protocol/incoming/IncorrectPacket.java -text src/main/java/forge/net/protocol/incoming/IncorrectPacket.java -text
src/main/java/forge/net/protocol/incoming/Packet.java -text
src/main/java/forge/net/protocol/incoming/PacketOpcode.java -text src/main/java/forge/net/protocol/incoming/PacketOpcode.java -text
src/main/java/forge/net/protocol/incoming/UnknownPacket.java -text src/main/java/forge/net/protocol/incoming/UnknownPacket.java -text
src/main/java/forge/net/protocol/incoming/package-info.java -text src/main/java/forge/net/protocol/incoming/package-info.java -text

View File

@@ -9,7 +9,7 @@ import forge.net.IConnectionObserver;
import forge.net.client.state.ConnectedClientState; import forge.net.client.state.ConnectedClientState;
import forge.net.client.state.UnauthorizedClientState; import forge.net.client.state.UnauthorizedClientState;
import forge.net.client.state.IClientState; import forge.net.client.state.IClientState;
import forge.net.protocol.incoming.Packet; import forge.net.protocol.incoming.IPacket;
import forge.net.protocol.incoming.PacketOpcode; import forge.net.protocol.incoming.PacketOpcode;
import forge.net.protocol.outcoming.IMessage; import forge.net.protocol.outcoming.IMessage;
@@ -46,7 +46,7 @@ public class NetClient implements IConnectionObserver, INetClient{
/** Receives input from network client */ /** Receives input from network client */
@Override @Override
public void onMessage(String data) { public void onMessage(String data) {
Packet p = PacketOpcode.decode(data); IPacket p = PacketOpcode.decode(data);
for(IClientState s : state) { for(IClientState s : state) {
if ( s.processPacket(p) ) if ( s.processPacket(p) )
break; break;

View File

@@ -3,7 +3,7 @@ package forge.net.client.state;
import forge.net.client.INetClient; import forge.net.client.INetClient;
import forge.net.protocol.incoming.EchoPacket; import forge.net.protocol.incoming.EchoPacket;
import forge.net.protocol.incoming.IncorrectPacket; import forge.net.protocol.incoming.IncorrectPacket;
import forge.net.protocol.incoming.Packet; import forge.net.protocol.incoming.IPacket;
import forge.net.protocol.outcoming.EchoMessage; import forge.net.protocol.outcoming.EchoMessage;
import forge.net.protocol.outcoming.IncorrectPacketMessage; import forge.net.protocol.outcoming.IncorrectPacketMessage;
import forge.net.protocol.outcoming.UnknownPacketMessage; import forge.net.protocol.outcoming.UnknownPacketMessage;
@@ -19,7 +19,7 @@ public class ConnectedClientState implements IClientState {
} }
@Override @Override
public boolean processPacket(Packet packet ) { public boolean processPacket(IPacket packet ) {
switch( packet.getOpCode() ) { switch( packet.getOpCode() ) {
case Echo: case Echo:
EchoPacket pe = (EchoPacket)packet; EchoPacket pe = (EchoPacket)packet;

View File

@@ -1,11 +1,11 @@
package forge.net.client.state; package forge.net.client.state;
import forge.net.protocol.incoming.Packet; import forge.net.protocol.incoming.IPacket;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public interface IClientState { public interface IClientState {
boolean processPacket(Packet data); boolean processPacket(IPacket data);
} }

View File

@@ -1,7 +1,7 @@
package forge.net.client.state; package forge.net.client.state;
import forge.net.client.INetClient; import forge.net.client.INetClient;
import forge.net.protocol.incoming.Packet; import forge.net.protocol.incoming.IPacket;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
@@ -15,7 +15,7 @@ public class InLobbyClientState implements IClientState {
} }
@Override @Override
public boolean processPacket(Packet data) { public boolean processPacket(IPacket data) {
return false; return false;
} }
} }

View File

@@ -4,7 +4,7 @@ import forge.game.player.LobbyPlayer;
import forge.game.player.PlayerType; import forge.game.player.PlayerType;
import forge.net.client.INetClient; import forge.net.client.INetClient;
import forge.net.protocol.incoming.AuthorizePacket; import forge.net.protocol.incoming.AuthorizePacket;
import forge.net.protocol.incoming.Packet; import forge.net.protocol.incoming.IPacket;
import forge.net.protocol.incoming.PacketOpcode; import forge.net.protocol.incoming.PacketOpcode;
import forge.net.protocol.outcoming.AuthorizationSuccessfulMessage; import forge.net.protocol.outcoming.AuthorizationSuccessfulMessage;
@@ -25,7 +25,7 @@ public class UnauthorizedClientState implements IClientState {
@Override @Override
public boolean processPacket(Packet packet) { public boolean processPacket(IPacket packet) {
if( packet.getOpCode() == PacketOpcode.Authorize ) { if( packet.getOpCode() == PacketOpcode.Authorize ) {
AuthorizePacket p = (AuthorizePacket)packet; AuthorizePacket p = (AuthorizePacket)packet;
if( true ) { // check credentials here! if( true ) { // check credentials here!

View File

@@ -8,12 +8,11 @@ import forge.util.TextUtil;
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class AuthorizePacket extends Packet { public class AuthorizePacket implements IPacket {
private final String username; private final String username;
private final String password; private final String password;
private AuthorizePacket(String name, String pass) { private AuthorizePacket(String name, String pass) {
super(PacketOpcode.Authorize);
username = name; username = name;
password = pass; password = pass;
} }
@@ -27,7 +26,7 @@ public class AuthorizePacket extends Packet {
} }
public static Packet parse(String data) { public static IPacket parse(String data) {
String[] parts = TextUtil.splitWithParenthesis(data, ' ', '\"', '\"'); String[] parts = TextUtil.splitWithParenthesis(data, ' ', '\"', '\"');
if(parts.length == 1 || parts.length == 2) { if(parts.length == 1 || parts.length == 2) {
if(!StringUtils.isAlphanumericSpace(parts[0])) if(!StringUtils.isAlphanumericSpace(parts[0]))
@@ -43,4 +42,9 @@ public class AuthorizePacket extends Packet {
return UnknownPacket.parse(data); return UnknownPacket.parse(data);
} }
@Override
public PacketOpcode getOpCode() {
return PacketOpcode.Authorize;
}
} }

View File

@@ -5,14 +5,19 @@ package forge.net.protocol.incoming;
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class ChatPacket extends Packet { public class ChatPacket implements IPacket {
private final String message; private final String message;
public ChatPacket(String data) { public ChatPacket(String data) {
super(PacketOpcode.Chat);
message = data; message = data;
} }
public String getMessage() { public String getMessage() {
return message; return message;
} }
@Override
public PacketOpcode getOpCode() {
return PacketOpcode.Chat;
}
} }

View File

@@ -5,11 +5,10 @@ package forge.net.protocol.incoming;
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class EchoPacket extends Packet { public class EchoPacket implements IPacket {
private final String message; private final String message;
private EchoPacket(String data) { private EchoPacket(String data) {
super(PacketOpcode.Echo);
message = data; message = data;
} }
@@ -21,4 +20,9 @@ public class EchoPacket extends Packet {
return message; return message;
} }
@Override
public PacketOpcode getOpCode() {
return PacketOpcode.Echo;
}
} }

View File

@@ -0,0 +1,10 @@
package forge.net.protocol.incoming;
/**
* TODO: Write javadoc for this type.
*
*/
public interface IPacket {
PacketOpcode getOpCode();
}

View File

@@ -4,14 +4,13 @@ package forge.net.protocol.incoming;
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class IncorrectPacket extends Packet { public class IncorrectPacket implements IPacket {
private final PacketOpcode intendedCode; private final PacketOpcode intendedCode;
private final int index; private final int index;
private final String sParam; private final String sParam;
public IncorrectPacket(PacketOpcode code, int iParameter, String value) { public IncorrectPacket(PacketOpcode code, int iParameter, String value) {
super(PacketOpcode.Incorrect);
intendedCode = code; intendedCode = code;
index = iParameter; index = iParameter;
sParam = value; sParam = value;
@@ -29,4 +28,9 @@ public class IncorrectPacket extends Packet {
return intendedCode; return intendedCode;
} }
@Override
public PacketOpcode getOpCode() {
return PacketOpcode.Incorrect;
}
} }

View File

@@ -1,18 +0,0 @@
package forge.net.protocol.incoming;
/**
* TODO: Write javadoc for this type.
*
*/
public abstract class Packet {
private final PacketOpcode opCode;
public Packet(PacketOpcode code) {
opCode = code;
}
public final PacketOpcode getOpCode() {
return opCode;
}
}

View File

@@ -30,7 +30,7 @@ public enum PacketOpcode {
* @param data * @param data
* @return * @return
*/ */
public static Packet decode(String data) { public static IPacket decode(String data) {
for(PacketOpcode s : PacketOpcode.values()) { for(PacketOpcode s : PacketOpcode.values()) {
if ( s.opcode != null && data.startsWith(s.opcode) ) if ( s.opcode != null && data.startsWith(s.opcode) )
return decodePacket(s, data.substring(s.opcode.length()).trim()); return decodePacket(s, data.substring(s.opcode.length()).trim());
@@ -42,7 +42,7 @@ public enum PacketOpcode {
} }
private static Packet decodePacket(PacketOpcode code, String data) { private static IPacket decodePacket(PacketOpcode code, String data) {
switch(code) { switch(code) {
case Echo: case Echo:
return EchoPacket.parse(data); return EchoPacket.parse(data);

View File

@@ -5,11 +5,10 @@ package forge.net.protocol.incoming;
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *
*/ */
public class UnknownPacket extends Packet { public class UnknownPacket implements IPacket {
private final String message; private final String message;
private UnknownPacket(String data) { private UnknownPacket(String data) {
super(PacketOpcode.Unknown);
message = data; message = data;
} }
public String getMessage() { public String getMessage() {
@@ -20,8 +19,14 @@ public class UnknownPacket extends Packet {
* @param substring * @param substring
* @return * @return
*/ */
public static Packet parse(String substring) { public static IPacket parse(String substring) {
return new UnknownPacket(substring); return new UnknownPacket(substring);
} }
@Override
public PacketOpcode getOpCode() {
return PacketOpcode.Unknown;
}
} }