*/
protected List getPropertyKeys(Connector bean)
throws IntrospectionException {
ArrayList 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());
}
for (Iterator propertyIterator = protocolHandler.getAttributeNames(); propertyIterator
.hasNext();) {
Object key = propertyIterator.next();
if (propertyKeys.contains(key))
continue;
propertyKeys.add(key);