package com.digiarea.closure.preferences.model;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import com.digiarea.closure.preferences.model.visitor.CloneVisitor;
import com.digiarea.closure.preferences.model.visitor.GenericVisitor;
import com.digiarea.closure.preferences.model.visitor.VoidVisitor;
public class Preferences {
private ObjectProperty<Editors> editors = new SimpleObjectProperty<Editors>(this, "editors");
private ObjectProperty<Variables> variables = new SimpleObjectProperty<Variables>(this, "variables");
private ObjectProperty<ClosureLibraries> closureLibraries = new SimpleObjectProperty<ClosureLibraries>(this, "closureLibraries");
public final Editors getEditors() {
return editors.get();
}
public final void setEditors(Editors editors) {
this.editors.set(editors);
}
public final Variables getVariables() {
return variables.get();
}
public final void setVariables(Variables variables) {
this.variables.set(variables);
}
public final ClosureLibraries getClosureLibraries() {
return closureLibraries.get();
}
public final void setClosureLibraries(ClosureLibraries closureLibraries) {
this.closureLibraries.set(closureLibraries);
}
public Preferences() {
super();
}
public Preferences(Editors editors, Variables variables, ClosureLibraries closureLibraries) {
super();
this.editors.set(editors);
this.variables.set(variables);
this.closureLibraries.set(closureLibraries);
}
public ObjectProperty<Editors> editorsProperty() {
return editors;
}
public ObjectProperty<Variables> variablesProperty() {
return variables;
}
public ObjectProperty<ClosureLibraries> closureLibrariesProperty() {
return closureLibraries;
}
public <C> void accept(VoidVisitor<C> v, C ctx) throws Exception {
v.visit(this, ctx);
}
public <R, C> R accept(GenericVisitor<R, C> v, C ctx) throws Exception {
return v.visit(this, ctx);
}
@Override
public final Preferences clone() throws CloneNotSupportedException {
try {
return (Preferences) accept(new CloneVisitor(), null);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}