package com.narrowtux.fmm.model;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleObjectProperty;
public class ModReference {
private ObjectProperty<Mod> mod = new SimpleObjectProperty<>();
private ObjectProperty<Modpack> modpack = new SimpleObjectProperty<>();
private BooleanProperty enabled = new SimpleBooleanProperty(true);
public ModReference(Mod mod, Modpack modpack, boolean enabled) {
this.mod.set(mod);
this.modpack.set(modpack);
this.enabled.set(enabled);
enabledProperty().addListener((observableValue, ov, nv) -> {
getModpack().writeModList();
});
}
public Mod getMod() {
return mod.get();
}
public ObjectProperty<Mod> modProperty() {
return mod;
}
public void setMod(Mod mod) {
this.mod.set(mod);
}
public Modpack getModpack() {
return modpack.get();
}
public ObjectProperty<Modpack> modpackProperty() {
return modpack;
}
public void setModpack(Modpack modpack) {
this.modpack.set(modpack);
}
public boolean getEnabled() {
return enabled.get();
}
public BooleanProperty enabledProperty() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled.set(enabled);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ModReference reference = (ModReference) o;
return !(mod != null ? !mod.equals(reference.mod) : reference.mod != null);
}
@Override
public int hashCode() {
return mod != null ? mod.hashCode() : 0;
}
}