use of org.gradle.api.internal.tasks.properties.InputPropertySpec in project gradle by gradle.
the class DefaultTaskInputs method getProperties.
@Override
public Map<String, Object> getProperties() {
GetInputPropertiesVisitor visitor = new GetInputPropertiesVisitor();
TaskPropertyUtils.visitProperties(propertyWalker, task, visitor);
Map<String, Object> result = new HashMap<>();
for (InputPropertySpec inputProperty : visitor.getProperties()) {
result.put(inputProperty.getPropertyName(), InputParameterUtils.prepareInputParameterValue(inputProperty, task));
}
return Collections.unmodifiableMap(result);
}
use of org.gradle.api.internal.tasks.properties.InputPropertySpec in project gradle by gradle.
the class TaskExecution method visitRegularInputs.
@Override
public void visitRegularInputs(InputFingerprinter.InputVisitor visitor) {
TaskProperties taskProperties = context.getTaskProperties();
ImmutableSortedSet<InputPropertySpec> inputProperties = taskProperties.getInputProperties();
ImmutableSortedSet<InputFilePropertySpec> inputFileProperties = taskProperties.getInputFileProperties();
for (InputPropertySpec inputProperty : inputProperties) {
visitor.visitInputProperty(inputProperty.getPropertyName(), () -> InputParameterUtils.prepareInputParameterValue(inputProperty, task));
}
for (InputFilePropertySpec inputFileProperty : inputFileProperties) {
Object value = inputFileProperty.getValue();
// SkipWhenEmpty implies incremental.
// If this file property is empty, then we clean up the previously generated outputs.
// That means that there is a very close relation between the file property and the output.
InputFingerprinter.InputPropertyType type = inputFileProperty.isSkipWhenEmpty() ? InputFingerprinter.InputPropertyType.PRIMARY : inputFileProperty.isIncremental() ? InputFingerprinter.InputPropertyType.INCREMENTAL : InputFingerprinter.InputPropertyType.NON_INCREMENTAL;
String propertyName = inputFileProperty.getPropertyName();
visitor.visitInputFileProperty(propertyName, type, new InputFingerprinter.FileValueSupplier(value, inputFileProperty.getNormalizer(), inputFileProperty.getDirectorySensitivity(), inputFileProperty.getLineEndingNormalization(), inputFileProperty::getPropertyFiles));
}
}
Aggregations