checkState(this.location.isPresent());
checkState(this.map != null);
final IWVWObjective result = new WVWObjective(this.location.get());
if (this.map.isPresent()) {
result.connectWithMap(this.map.get());
}
result.initializeOwner(this.owner.orNull());
result.initializeClaimedByGuild(this.claimedByGuild.orNull());
return result;
}