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; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; public class ModDependency { private ObjectProperty<Mod> dependentMod = new SimpleObjectProperty<>(); private StringProperty dependencyName = new SimpleStringProperty(); private ObjectProperty<MatchedVersion> matchedVersion = new SimpleObjectProperty<>(); private BooleanProperty optional = new SimpleBooleanProperty(false); public ModDependency(Mod dependentMod, String name, MatchedVersion matchedVersion, boolean optional) { this.dependentMod.set(dependentMod); this.dependencyName.set(name); this.matchedVersion.set(matchedVersion); this.optional.set(optional); } public Mod getDependentMod() { return dependentMod.get(); } public ObjectProperty<Mod> dependentModProperty() { return dependentMod; } public void setDependentMod(Mod dependentMod) { this.dependentMod.set(dependentMod); } public String getDependencyName() { return dependencyName.get(); } public StringProperty dependencyNameProperty() { return dependencyName; } public void setDependencyName(String dependencyName) { this.dependencyName.set(dependencyName); } public MatchedVersion getMatchedVersion() { return matchedVersion.get(); } public ObjectProperty<MatchedVersion> matchedVersionProperty() { return matchedVersion; } public void setMatchedVersion(MatchedVersion matchedVersion) { this.matchedVersion.set(matchedVersion); } public boolean getOptional() { return optional.get(); } public BooleanProperty optionalProperty() { return optional; } public void setOptional(boolean optional) { this.optional.set(optional); } @Override public String toString() { StringBuilder builder = new StringBuilder(); if (getOptional()) { builder.append("? "); } builder.append(getDependencyName()); if (getMatchedVersion() != null) { builder.append(' '); builder.append(getMatchedVersion()); } return builder.toString(); } }