// Path: dip/src/es/csic/iiia/fabregues/dip/board/Power.java
// public class Power {
// 	
// 	private String name;
// 	
// 	private List<Province> own;
// 	private List<Province> homes;
// 	private List<Region> control;
// 	
// 	public Power(String name) {
// 		this.name = name;
// 
// 		resetControl();
// 		
// 		resetOwn();
// 		homes = new ArrayList<Province>();
// 		
// 	}
// 	
// 	public String getName() {
// 		return name;
// 	}
// 	
// 	public void addControlledRegion(Region region){
// 		control.add(region);
// 	}
// 	
// 	public List<Region> getControlledRegions() {
// 		return control;
// 	}
// 	
// 	public boolean isControlling(Region region){
// 		return control.contains(region);
// 	}
// 	
// 	/**
// 	 * Returns true if the province is a SC owned by the power or false otherwise.
// 	 * @param Province
// 	 * @return
// 	 */
// 	public boolean isOwning(Province Province){
// 		if(Province instanceof Province){
// 			return own.contains((Province)Province);
// 		}
// 		return false;
// 	}
// 
// 	public List<Province> getOwnedSCs() {
// 		return own;
// 	}
// 	
// 	public void resetControl() {
// 		control = new Vector<Region>();
// 	}
// 
// 	public void addOwn(Province sc) {
// 		own.add(sc);
// 	}
// 	
// 	public void resetOwn() {
// 		own = new Vector<Province>();
// 	}
// 	
// 	public void addHome(Province province) {
// 		homes.add(province);
// 	}
// 
// 	public List<Province> getHomes() {
// 		return homes;
// 	}
// 	
// 	public String toString(){
// 		return name;
// 	}
// 
// 	public boolean isControlling(Province province) {
// 		for(Region region: province.getRegions()){
// 			if(isControlling(region)){
// 				return true;
// 			}
// 		}
// 		return false;
// 	}
// 	
// 	public boolean equals(Object o){
// 		if(o instanceof Power){
// 			Power power = (Power) o;
// 			return name.equals(power.getName());
// 		}
// 		return super.equals(o);
// 	}
// }
// 
// Path: dip/src/es/csic/iiia/fabregues/dip/board/Region.java
// public class Region {
// 
// 	private String name;
// 	private Province province;
// 	private Vector<Region> adjacentRegions;
// 	
// 	public Region(String name) {
// 		adjacentRegions = new Vector<Region>();
// 		this.name = name;
// 	}
// 
// 	public Province getProvince() {
// 		return province;
// 	}
// 
// 	public void setProvince(Province province) {
// 		this.province = province;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void addAdjacentRegion(Region adjNode) {
// 		adjacentRegions.add(adjNode);
// 	}
// 
// 	public Vector<Region> getAdjacentRegions() {
// 		return adjacentRegions;
// 	}
// 	
// 	public String toString() {
// 		return name;
// 	}
// 	
// 	public boolean equals(Object o){
// 		if(o instanceof Region){
// 			Region region = (Region) o;
// 			return name.equals(region.getName());
// 		}
// 		return super.equals(o);
// 	}
// }


import es.csic.iiia.fabregues.dip.board.Power;
import es.csic.iiia.fabregues.dip.board.Region;
package es.csic.iiia.fabregues.dip.orders;


/**
 * Retreate to order
 * 
 * @author Angela Fabregues, IIIA-CSIC, fabregues@iiia.csic.es
 */
public class RTOOrder extends Order {

	private Region destination;
	
	public RTOOrder(Region region, Power power, Region destination) {
		super(power, region);
		this.destination = destination;
	}
	
	public Region getDestination(){
// Path: dip/src/es/csic/iiia/fabregues/dip/board/Power.java
// public class Power {
// 	
// 	private String name;
// 	
// 	private List<Province> own;
// 	private List<Province> homes;
// 	private List<Region> control;
// 	
// 	public Power(String name) {
// 		this.name = name;
// 
// 		resetControl();
// 		
// 		resetOwn();
// 		homes = new ArrayList<Province>();
// 		
// 	}
// 	
// 	public String getName() {
// 		return name;
// 	}
// 	
// 	public void addControlledRegion(Region region){
// 		control.add(region);
// 	}
// 	
// 	public List<Region> getControlledRegions() {
// 		return control;
// 	}
// 	
// 	public boolean isControlling(Region region){
// 		return control.contains(region);
// 	}
// 	
// 	/**
// 	 * Returns true if the province is a SC owned by the power or false otherwise.
// 	 * @param Province
// 	 * @return
// 	 */
// 	public boolean isOwning(Province Province){
// 		if(Province instanceof Province){
// 			return own.contains((Province)Province);
// 		}
// 		return false;
// 	}
// 
// 	public List<Province> getOwnedSCs() {
// 		return own;
// 	}
// 	
// 	public void resetControl() {
// 		control = new Vector<Region>();
// 	}
// 
// 	public void addOwn(Province sc) {
// 		own.add(sc);
// 	}
// 	
// 	public void resetOwn() {
// 		own = new Vector<Province>();
// 	}
// 	
// 	public void addHome(Province province) {
// 		homes.add(province);
// 	}
// 
// 	public List<Province> getHomes() {
// 		return homes;
// 	}
// 	
// 	public String toString(){
// 		return name;
// 	}
// 
// 	public boolean isControlling(Province province) {
// 		for(Region region: province.getRegions()){
// 			if(isControlling(region)){
// 				return true;
// 			}
// 		}
// 		return false;
// 	}
// 	
// 	public boolean equals(Object o){
// 		if(o instanceof Power){
// 			Power power = (Power) o;
// 			return name.equals(power.getName());
// 		}
// 		return super.equals(o);
// 	}
// }
// 
// Path: dip/src/es/csic/iiia/fabregues/dip/board/Region.java
// public class Region {
// 
// 	private String name;
// 	private Province province;
// 	private Vector<Region> adjacentRegions;
// 	
// 	public Region(String name) {
// 		adjacentRegions = new Vector<Region>();
// 		this.name = name;
// 	}
// 
// 	public Province getProvince() {
// 		return province;
// 	}
// 
// 	public void setProvince(Province province) {
// 		this.province = province;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void addAdjacentRegion(Region adjNode) {
// 		adjacentRegions.add(adjNode);
// 	}
// 
// 	public Vector<Region> getAdjacentRegions() {
// 		return adjacentRegions;
// 	}
// 	
// 	public String toString() {
// 		return name;
// 	}
// 	
// 	public boolean equals(Object o){
// 		if(o instanceof Region){
// 			Region region = (Region) o;
// 			return name.equals(region.getName());
// 		}
// 		return super.equals(o);
// 	}
// }


// Path: dip/src/es/csic/iiia/fabregues/dip/orders/RTOOrder.java
import es.csic.iiia.fabregues.dip.board.Power;
import es.csic.iiia.fabregues.dip.board.Region;

package es.csic.iiia.fabregues.dip.orders;


/**
 * Retreate to order
 * 
 * @author Angela Fabregues, IIIA-CSIC, fabregues@iiia.csic.es
 */
public class RTOOrder extends Order {

	private Region destination;
	
	public RTOOrder(Region region, Power power, Region destination) {
		super(power, region);
		this.destination = destination;
	}
	
	public Region getDestination(){
		return this.destination;