package org.netbeans.gradle.project.java.properties;
import org.jtrim.property.PropertyFactory;
import org.netbeans.gradle.project.api.config.ActiveSettingsQuery;
import org.netbeans.gradle.project.api.config.PropertyReference;
import org.netbeans.gradle.project.properties.global.JavaSourcesDisplayMode;
import static org.netbeans.gradle.project.properties.standard.CommonProperties.*;
public class JavaProjectProperties {
private final PropertyReference<DebugMode> debugMode;
private final PropertyReference<JavaSourcesDisplayMode> javaSourcesDisplayMode;
public JavaProjectProperties(ActiveSettingsQuery activeSettingsQuery) {
this.debugMode = debugMode(activeSettingsQuery);
this.javaSourcesDisplayMode = javaSourcesDisplayMode(activeSettingsQuery);
}
public PropertyReference<DebugMode> debugMode() {
return debugMode;
}
public static PropertyReference<DebugMode> debugMode(ActiveSettingsQuery activeSettingsQuery) {
return new PropertyReference<>(
DebugModeProjectProperty.PROPERTY_DEF,
activeSettingsQuery,
PropertyFactory.constSource(DebugModeProjectProperty.DEFAULT));
}
public PropertyReference<JavaSourcesDisplayMode> javaSourcesDisplayMode() {
return javaSourcesDisplayMode;
}
public static PropertyReference<JavaSourcesDisplayMode> javaSourcesDisplayMode(ActiveSettingsQuery activeSettingsQuery) {
return new PropertyReference<>(
defineEnumProperty(JavaSourcesDisplayMode.class, "appearance", "project-node", "display-mode"),
activeSettingsQuery,
PropertyFactory.constSource(JavaSourcesDisplayMode.DEFAULT_MODE));
}
}