class DescriptorUtils {

    public static final org.apache.nifi.components.PropertyDescriptor toComponentDescriptor(
            com.cloudera.cem.efm.model.extension.PropertyDescriptor descriptor) {
        Set<String> allowableValues = new HashSet<>();
        if (null != descriptor.getAllowableValues())
        descriptor.getAllowableValues().stream().map(e -> e.getValue()).forEach(allowableValues::add);
        org.apache.nifi.components.PropertyDescriptor desc = new org.apache.nifi.components.PropertyDescriptor.Builder()
                .defaultValue(descriptor.getDefaultValue())
                .description(descriptor.getDescription())
                .dynamic(descriptor.isDynamic())
                .required(descriptor.getRequired())
                .sensitive(descriptor.getSensitive())
                .name(descriptor.getName())
                .displayName(descriptor.getDisplayName())
                .allowableValues(allowableValues.isEmpty() ? null : allowableValues).dynamic(descriptor.isDynamic())
                .build();
        return desc;
    }

}