use of org.apache.nifi.components.AllowableValue in project nifi by apache.
the class DtoFactory method createPropertyDescriptorDto.
/**
* Creates a PropertyDesriptorDTO from the specified PropertyDesriptor.
*
* @param propertyDescriptor descriptor
* @param groupId the Identifier of the Process Group that the component belongs to
* @return dto
*/
public PropertyDescriptorDTO createPropertyDescriptorDto(final PropertyDescriptor propertyDescriptor, final String groupId) {
if (propertyDescriptor == null) {
return null;
}
final PropertyDescriptorDTO dto = new PropertyDescriptorDTO();
dto.setName(propertyDescriptor.getName());
dto.setDisplayName(propertyDescriptor.getDisplayName());
dto.setRequired(propertyDescriptor.isRequired());
dto.setSensitive(propertyDescriptor.isSensitive());
dto.setDynamic(propertyDescriptor.isDynamic());
dto.setDescription(propertyDescriptor.getDescription());
dto.setDefaultValue(propertyDescriptor.getDefaultValue());
dto.setSupportsEl(propertyDescriptor.isExpressionLanguageSupported());
// set the identifies controller service is applicable
if (propertyDescriptor.getControllerServiceDefinition() != null) {
final Class serviceClass = propertyDescriptor.getControllerServiceDefinition();
final Bundle serviceBundle = ExtensionManager.getBundle(serviceClass.getClassLoader());
dto.setIdentifiesControllerService(serviceClass.getName());
dto.setIdentifiesControllerServiceBundle(createBundleDto(serviceBundle.getBundleDetails().getCoordinate()));
}
final Class<? extends ControllerService> serviceDefinition = propertyDescriptor.getControllerServiceDefinition();
if (propertyDescriptor.getAllowableValues() == null) {
if (serviceDefinition == null) {
dto.setAllowableValues(null);
} else {
final List<AllowableValueEntity> allowableValues = new ArrayList<>();
final List<String> controllerServiceIdentifiers = new ArrayList<>(controllerServiceProvider.getControllerServiceIdentifiers(serviceDefinition, groupId));
Collections.sort(controllerServiceIdentifiers, Collator.getInstance(Locale.US));
for (final String serviceIdentifier : controllerServiceIdentifiers) {
final ControllerServiceNode service = controllerServiceProvider.getControllerServiceNode(serviceIdentifier);
final boolean isServiceAuthorized = service.isAuthorized(authorizer, RequestAction.READ, NiFiUserUtils.getNiFiUser());
final String displayName = isServiceAuthorized ? service.getName() : serviceIdentifier;
final AllowableValueDTO allowableValue = new AllowableValueDTO();
allowableValue.setDisplayName(displayName);
allowableValue.setValue(serviceIdentifier);
allowableValues.add(entityFactory.createAllowableValueEntity(allowableValue, isServiceAuthorized));
}
dto.setAllowableValues(allowableValues);
}
} else {
final List<AllowableValueEntity> allowableValues = new ArrayList<>();
for (final AllowableValue allowableValue : propertyDescriptor.getAllowableValues()) {
final AllowableValueDTO allowableValueDto = new AllowableValueDTO();
allowableValueDto.setDisplayName(allowableValue.getDisplayName());
allowableValueDto.setValue(allowableValue.getValue());
allowableValueDto.setDescription(allowableValue.getDescription());
allowableValues.add(entityFactory.createAllowableValueEntity(allowableValueDto, true));
}
dto.setAllowableValues(allowableValues);
}
return dto;
}
use of org.apache.nifi.components.AllowableValue in project nifi by apache.
the class TestCreateHadoopSequenceFile method validateAllowableValuesForCompressionType.
@Test
public void validateAllowableValuesForCompressionType() {
PropertyDescriptor pd = CreateHadoopSequenceFile.COMPRESSION_TYPE;
List<AllowableValue> allowableValues = pd.getAllowableValues();
assertEquals("NONE", allowableValues.get(0).getValue());
assertEquals("RECORD", allowableValues.get(1).getValue());
assertEquals("BLOCK", allowableValues.get(2).getValue());
}
Aggregations