DomainI {{ }} InstanceI {{ double valid(SolutionI solution, Config config); double quality(SolutionI solution); }} SolutionI {{ }} InstanceSetI {{ Option belongsTo(InstanceI instance); Option valid(Config config); }} ProtocolI {{ double getResult(Claim claim, SolutionI[] solutions, InstanceI[] instances); ProtocolSpec getProtocolSpec(); boolean strengthenP(Claim oldClaim, Claim strengthenedClaim); double getStrengthenedClaimQuality(double quality, double minStrengthening); }} Claim {{ public Claim(InstanceSetI instanceSet, ProtocolI protocol, double quality, double confidence){ this(new RWrap(instanceSet), new RWrap(protocol), quality, confidence); } public ProtocolI getProtocol(){ return getProtocolWrapper().getWrapee(); } public InstanceSetI getInstanceSet(){ return getInstanceSetWrapper().getWrapee(); } }} SolveRequest {{ public SolveRequest(InstanceI instance, Option claim){ this(new RWrap(instance), claim); } public InstanceI getInstance(){ return getInstanceWrapper().getWrapee(); } }} ProvideResponse {{ public ProvideResponse(InstanceI instance){ this(new RWrap(instance)); } public InstanceI getInstance(){ return getInstanceWrapper().getWrapee(); } }} SolveResponse {{ public SolveResponse(SolutionI solution){ this(new RWrap(solution)); } public SolutionI getSolution(){ return getSolutionWrapper().getWrapee(); } }} Config {{ public Config(SCGConfig scgConfig, DomainConfigI domainConfig){ this(scgConfig, new RWrap(domainConfig)); } public DomainConfigI getDomainConfig(){ return getDomainConfigWrapper().getWrapee(); } }} SCGConfig {{ private static SCGConfig DEFAULT_SCG_CONFIG; static{ try{ DEFAULT_SCG_CONFIG = SCGConfig.parse( "scg_config[\n" + "domain: hsr.HSRDomain\n" + "protocols: scg.protocol.ForAllExists scg.protocol.ExistsForAll\n" + "tournamentStyle: full round-robin\n" + "turnDuration: 60 //seconds\n" + "maxNumAvatars: 20\n" + "minStrengthening: 0.01\n" + "initialReputation: 100.0\n" + "maxReputation: 1000.0\n" + "reputationFactor: 0.4\n" + "minProposals: 2\n" + "maxProposals: 5\n" + "numRounds: 9\n" + "proposedClaimMustBeNew: true\n" + "minConfidence: 0.01\n" + "]\n" ); }catch(Exception ex){ ex.printStackTrace(); } } public static SCGConfig getDefaultSCGConfig(){ return SCGConfig.DEFAULT_SCG_CONFIG; } }} Role {{ /* Role is an enumeration*/ public static final int ALICE = 0; public static final int BOB = 1; int ordingal(); }} Alice {{ public int ordingal(){ return Role.ALICE; } }} Bob {{ public int ordingal(){ return Role.BOB; } }} /** * @author: Rashmi, Anush */ AvatarI{{ public List propose(List forbiddenClaims); public List oppose(List claimsToBeOpposed); public InstanceI provide(Claim claimToBeProvided); public SolutionI solve(SolveRequest solveRequest); }}