@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
List<PropertyDescriptor> descriptors = new ArrayList<PropertyDescriptor>();
PropertyDescriptor descriptor = new PropertyDescriptor(PROP_NAME, PROP_NAME);
descriptor.setAlwaysIncompatible(true);
descriptors.add(descriptor);
descriptor = new PropertyDescriptor(PROP_NAMESPACE, PROP_NAMESPACE);
descriptor.setAlwaysIncompatible(true);
descriptors.add(descriptor);
for (ProcessingElementParameter parameter :
processingElement.getProcessingElementParameters()) {
descriptor = new PropertyDescriptor(parameter, parameter.getName());
descriptor.setAlwaysIncompatible(true);
if (parameter instanceof InputConnection) descriptor.setCategory(PROP_INPUTS);
if (parameter instanceof OutputConnection) descriptor.setCategory(PROP_OUTPUTS);
descriptors.add(descriptor);
for (AdditionalParameter ap : parameter.getAdditionalParameter() ) {
descriptor = new PropertyDescriptor(parameter, ap.getName());
descriptor.setAlwaysIncompatible(true);
if (parameter instanceof InputConnection) descriptor.setCategory(PROP_INPUTS);
if (parameter instanceof OutputConnection) descriptor.setCategory(PROP_OUTPUTS);
descriptors.add(descriptor);
}