Skip to content

Commit

Permalink
add blank methods in command factory
Browse files Browse the repository at this point in the history
  • Loading branch information
furtherLee committed Mar 13, 2012
1 parent 68fad4f commit 60649bb
Show file tree
Hide file tree
Showing 3 changed files with 206 additions and 4 deletions.
198 changes: 196 additions & 2 deletions src/e3gtp/command/CommandFactory.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package e3gtp.command;

import java.util.Arrays;

import e3gtp.exception.SyntaxException;
import e3gtp.command.*;
import e3gtp.entity.*;

public class CommandFactory {

private static CommandFactory instance;
Expand All @@ -14,10 +20,198 @@ private CommandFactory(){
}

public Command parseCommand(String str){
Command cmd = null;
Integer id = null;

int offset = 0;

str = str.trim();

String[] params = str.split(" ");

if (isInteger(params[0]))
id = Integer.parseInt(params[offset++]);

String commandName = params[offset++];

String[] args = Arrays.copyOfRange(params, offset, params.length);

if(commandName.equals(BoardSize.name))
return buildBoardSize(id, args);
else if(commandName.equals(ClearBoard.name))
return buildClearBoard(id, args);
else if(commandName.equals(FixedHandicap.name))
return buildFixedHandicap(id, args);
else if(commandName.equals(GenMove.name))
return buildGenMove(id, args);
else if(commandName.equals(Komi.name))
return buildKomi(id, args);
else if(commandName.equals(KownCommand.name))
return buildKownCommand(id, args);
else if(commandName.equals(ListCommands.name))
return buildListCommands(id, args);
else if(commandName.equals(LoadSGF.name))
return buildLoadSGF(id, args);
else if(commandName.equals(Name.name))
return buildName(id, args);
else if(commandName.equals(PlaceFreeHandicap.name))
return buildPlaceFreeHandicap(id, args);
else if(commandName.equals(Play.name))
return buildPlay(id, args);
else if(commandName.equals(ProtocolVersion.name))
return buildProtocolVersion(id, args);
else if(commandName.equals(Quit.name))
return buildQuit(id, args);
else if(commandName.equals(RegGenMove.name))
return buildRegGenMove(id, args);
else if(commandName.equals(SetFreeHandicap.name))
return buildSetFreeHandicap(id, args);
else if(commandName.equals(Version.name))
return buildVersion(id, args);
else
throw new SyntaxException(commandName + " is not supported.");

}

private Command buildVersion(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildSetFreeHandicap(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildRegGenMove(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildQuit(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildPlay(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildProtocolVersion(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildPlaceFreeHandicap(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildName(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildLoadSGF(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildListCommands(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildKownCommand(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildKomi(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildGenMove(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildFixedHandicap(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildClearBoard(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private Command buildBoardSize(Integer id, String[] args) {
// TODO Auto-generated method stub
return null;
}

private BOOLEAN parseBoolean(String str){
if(str.trim().equals("true"))
return new BOOLEAN(true);
else if(str.trim().equals("false"))
return new BOOLEAN(false);
else throw new SyntaxException(str + " is neither true nor false.");
}

private COLOR parseColor(String str){
if(str.trim().equals("white") || str.trim().equals("w"))
return new COLOR(COLOR.Type.WHITE);
else if(str.trim().equals("black") || str.trim().equals("b"))
return new COLOR(COLOR.Type.BLACK);
else throw new SyntaxException(str + " is neither white nor black.");
}

private FLOAT parseFloat(String str){
// TODO
}

private INT parseInt(String str){
// TODO
}

private MOVE parseMove(String str){
// TODO
}

private VERTEX parseVertex(String str){
// TODO
}

private STRING parseString(String str){
return new STRING(str);
}

boolean isComment(String str, boolean interrupt){
if (str.trim().startsWith("#")){
if (interrupt)
throw new SyntaxException("A Comment Appear incorrectly");
return true;
}
return false;
}



boolean isComment(String str){
return isComment(str, false);
}

private boolean isInteger(String str){

return cmd;
try{
Integer.parseInt(str);
}
catch(NumberFormatException e){
return false;
}
return true;
}

}
5 changes: 3 additions & 2 deletions src/e3gtp/connection/Connection.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,13 @@ public void send(String str) throws IOException{
}

public String read() throws IOException{

return in.readLine();
}

public void abort(){
public void abort() throws IOException{
working = false;
in.close();
out.close();
this.in = null;
this.out = null;
}
Expand Down
7 changes: 7 additions & 0 deletions src/e3gtp/exception/SyntaxException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package e3gtp.exception;

public class SyntaxException extends RuntimeException{
public SyntaxException(String error){
super(error);
}
}

0 comments on commit 60649bb

Please sign in to comment.