Package org.scotlandyard.impl.engine.boardmap

Source Code of org.scotlandyard.impl.engine.boardmap.BoardMapFactory

package org.scotlandyard.impl.engine.boardmap;

import org.scotlandyard.engine.GameException;
import org.scotlandyard.engine.boardmap.BoardMap;
import org.scotlandyard.engine.boardmap.Coordinate;
import org.scotlandyard.engine.boardmap.Link;
import org.scotlandyard.engine.constants.TransportationMethod;
import org.scotlandyard.impl.engine.GameEngine;


/**
* Factory class for vending standard BoardMap objects and sub-objects.
* Wherever possible, this factory will hand out references to shared BoardMap instances.
*
* @author Hussain Al-Mutawa
* @version 1.0
* @since Sun Sep 18, 2011
*/
public final class BoardMapFactory {

  @Override
  public String toString(){
    return getClass().getName() +" : adsg31267uyydg821367uayge82367KJSDH87236e";
  }
 
  private static BoardMap defaultBoardMap;

  public static BoardMap createBoardMap(final String name) throws GameException{
    if(name==null){
      throw new GameException("Board Map name can not be null");
    }
    BoardMap boardMap = GameEngine.instance().getBoardMaps().get(name);
    if(boardMap==null){
      boardMap = BoardMapImpl.getNewInstance(name);
    }
    return boardMap;
  }

  private static Coordinate createCoordinate(final BoardMap boardMap, final double xCoord,final  double yCoord) throws GameException{
    return new CoordinateImpl(boardMap, xCoord, yCoord);
  }

  public static Coordinate createCoordinate(final double latitude,final double longtitude) throws GameException{
    return new CoordinateImpl(BoardMapFactory.defaultBoardMap, latitude, longtitude);
  }

  public static Link createLink(final BoardMap boardMap,
      final TransportationMethod transportation,
      final double xCoord1,final double yCoord1,final double xCoord2,final double yCoord2) throws GameException{

      return new LinkImpl(boardMap, transportation,
          BoardMapFactory.createCoordinate(boardMap,xCoord1, yCoord1), BoardMapFactory.createCoordinate(boardMap,xCoord2, yCoord2));

  }

  public static Link createLink(final TransportationMethod transportation,final Coordinate coordinateA,final Coordinate coordinateB) throws GameException{
    //if(BoardMapFactory.defaultBoardMap==null){BoardMapFactory.getBoardMap("Palmerston North");}
    return new LinkImpl(BoardMapFactory.defaultBoardMap, transportation, coordinateA, coordinateB);
  }

  public static Link createLink(
      final TransportationMethod transportation,
      final double xCoord1,final double yCoord1,final double xCoord2,final double yCoord2) throws GameException{
   
                return BoardMapFactory.createLink(BoardMapFactory.defaultBoardMap, transportation, xCoord1, yCoord1, xCoord2, yCoord2);
   
  }
  public static BoardMap getDefaultBoardMap(){
    return BoardMapFactory.defaultBoardMap;
  }

  public static void setDefaultBoardMap(final BoardMap boardMap){
    BoardMapFactory.defaultBoardMap=boardMap;
  }
  private BoardMapFactory(){}
}
TOP

Related Classes of org.scotlandyard.impl.engine.boardmap.BoardMapFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.