jawpgameservicermiclient.java

来自「Java mulitplayer strategy game. Adaptati」· Java 代码 · 共 119 行

JAVA
119
字号
package net.sf.jawp.api.service.rmi;

import java.rmi.RemoteException;
import java.util.Collection;

import net.sf.jawp.api.domain.BattleReportVO;
import net.sf.jawp.api.domain.Fleet;
import net.sf.jawp.api.domain.GameSpeed;
import net.sf.jawp.api.domain.Planet;
import net.sf.jawp.api.domain.Realm;
import net.sf.jawp.api.service.JAWPGameService;

import net.sf.jawp.util.RMIVoidWrapper;
import net.sf.jawp.util.RMIWrapper;
/**
 * Game service RMI version.
 * 
 * @author jarek
 * @version $Revision$
 *
 */
public final class JAWPGameServiceRMIClient implements JAWPGameService
{
	private final JAWPGameServiceRMI rmiService;
	
	public JAWPGameServiceRMIClient(final JAWPGameServiceRMI srv )
	{
		this.rmiService = srv;
	}
	
	public Realm getRealm()
	{
		return new RMIWrapper<JAWPGameServiceRMI , Realm>( this.rmiService )
		{
			@Override
			protected Realm perform(final JAWPGameServiceRMI rmi) throws RemoteException
			{
				return rmi.getRealm();
			}
		}.call();
	}

	public Collection<Planet> getPlanets()
	{
		return new RMIWrapper<JAWPGameServiceRMI , Collection<Planet> >( this.rmiService )
		{
			@Override
			protected Collection<Planet> perform(final JAWPGameServiceRMI rmi) throws RemoteException
			{
				return rmi.getPlanets();
			}
		}.call();
	}

	public void moveFleet(final long fromPlanetKey, final long toPlanetKey, final int size) throws IllegalArgumentException
	{
		new RMIVoidWrapper<JAWPGameServiceRMI >( this.rmiService )
		{
			@Override
			protected void performVoid(final JAWPGameServiceRMI rmi) throws RemoteException
			{
				rmi.moveFleet(fromPlanetKey, toPlanetKey, size);
			}
		}.call();
	}

	public Realm getOtherRealm(final long realmKey)
	{
		return new RMIWrapper<JAWPGameServiceRMI , Realm>( this.rmiService )
		{
			@Override
			protected Realm perform(final JAWPGameServiceRMI rmi) throws RemoteException
			{
				return rmi.getOtherRealm(realmKey);
			}
		}.call();
	}

	public Collection<Fleet> getOwnFleets()
	{
		return new RMIWrapper<JAWPGameServiceRMI , Collection<Fleet> >( this.rmiService )
		{
			@Override
			protected Collection<Fleet> perform(final JAWPGameServiceRMI rmi) throws RemoteException
			{
				return rmi.getOwnFleets();
			}
		}.call();
	}

	public GameSpeed getGameSpeed()
	{
		return new RMIWrapper<JAWPGameServiceRMI, GameSpeed >( this.rmiService )
		{
			@Override
			protected GameSpeed perform(final JAWPGameServiceRMI rmi) throws RemoteException
			{
				return rmi.getGameSpeed();
			}
		}.call();
	}

	/**
	 * {@inheritDoc}
	 */
	public Collection<BattleReportVO> getBattleReports()
	{
		return new RMIWrapper<JAWPGameServiceRMI, Collection<BattleReportVO> >( this.rmiService )
		{
			@Override
			protected Collection<BattleReportVO> perform(final JAWPGameServiceRMI rmi) throws RemoteException
			{
				return rmi.getBattleReports();
			}
		}.call();
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?