*/
protected List<String> getPropertyKeys(Connector bean)
throws IntrospectionException {
ArrayList<String> propertyKeys = new ArrayList<>();
// Acquire the list of properties for this bean
ProtocolHandler protocolHandler = bean.getProtocolHandler();
// Acquire the list of properties for this bean
PropertyDescriptor descriptors[] = Introspector.getBeanInfo(
bean.getClass()).getPropertyDescriptors();
if (descriptors == null) {
descriptors = new PropertyDescriptor[0];
}
for (int i = 0; i < descriptors.length; i++) {
if (descriptors[i] instanceof IndexedPropertyDescriptor) {
continue; // Indexed properties are not persisted
}
if (!isPersistable(descriptors[i].getPropertyType())
|| (descriptors[i].getReadMethod() == null)
|| (descriptors[i].getWriteMethod() == null)) {
continue; // Must be a read-write primitive or String
}
if ("protocol".equals(descriptors[i].getName())
|| "protocolHandlerClassName".equals(descriptors[i]
.getName()))
continue;
propertyKeys.add(descriptors[i].getName());
}
// Add the properties of the protocol handler
descriptors = Introspector.getBeanInfo(
protocolHandler.getClass()).getPropertyDescriptors();
if (descriptors == null) {
descriptors = new PropertyDescriptor[0];
}
for (int i = 0; i < descriptors.length; i++) {
if (descriptors[i] instanceof IndexedPropertyDescriptor) {