package org.netbeans.gradle.project;
import org.jtrim.property.PropertyFactory;
import org.jtrim.property.PropertySource;
import org.jtrim.property.ValueConverter;
import org.jtrim.utils.ExceptionHelper;
import org.netbeans.gradle.project.model.NbGradleModel;
import org.netbeans.gradle.project.properties.NbProperties;
import org.netbeans.gradle.project.util.NbBiFunction;
public final class ProjectDisplayInfo {
private final PropertySource<String> displayName;
private final PropertySource<String> description;
public ProjectDisplayInfo(
PropertySource<? extends NbGradleModel> currentModel,
PropertySource<? extends String> displayNamePattern) {
ExceptionHelper.checkNotNullArgument(currentModel, "currentModel");
ExceptionHelper.checkNotNullArgument(displayNamePattern, "displayNamePattern");
this.displayName = NbProperties.combine(currentModel, displayNamePattern, new NbBiFunction<NbGradleModel, String, String>() {
@Override
public String apply(NbGradleModel model, String pattern) {
return model.getDisplayName(pattern);
}
});
this.description = PropertyFactory.convert(currentModel, new ValueConverter<NbGradleModel, String>() {
@Override
public String convert(NbGradleModel input) {
return input.getDescription();
}
});
}
public PropertySource<String> displayName() {
return displayName;
}
public PropertySource<String> description() {
return description;
}
}