/*
* Copyright (c) 2012. HappyDroids LLC, All rights reserved.
*/
package com.happydroids.droidtowers.gamestate;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.happydroids.droidtowers.DifficultyLevel;
import java.util.Date;
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.PROTECTED_AND_PUBLIC)
@JsonIgnoreProperties(ignoreUnknown = true)
public class GameSaveMetadata {
public int fileGeneration;
public Date lastPlayed;
public String cloudSaveUri;
public String baseFilename;
public String towerName;
public DifficultyLevel difficultyLevel;
public GameSaveMetadata() {
baseFilename = GameSaveFactory.generateFilename();
}
public GameSaveMetadata(String towerName, DifficultyLevel difficultyLevel) {
this();
this.towerName = towerName;
this.difficultyLevel = difficultyLevel;
}
@SuppressWarnings("RedundantIfStatement")
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof GameSaveMetadata)) {
return false;
}
GameSaveMetadata metadata = (GameSaveMetadata) o;
if (fileGeneration != metadata.fileGeneration) {
return false;
}
if (baseFilename != null ? !baseFilename.equals(metadata.baseFilename) : metadata.baseFilename != null) {
return false;
}
if (cloudSaveUri != null ? !cloudSaveUri.equals(metadata.cloudSaveUri) : metadata.cloudSaveUri != null) {
return false;
}
if (difficultyLevel != metadata.difficultyLevel) {
return false;
}
if (towerName != null ? !towerName.equals(metadata.towerName) : metadata.towerName != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = cloudSaveUri != null ? cloudSaveUri.hashCode() : 0;
result = 31 * result + (baseFilename != null ? baseFilename.hashCode() : 0);
result = 31 * result + (difficultyLevel != null ? difficultyLevel.hashCode() : 0);
return result;
}
}