public SourceProperty[] getSourceProperties(Source source) throws SourceException {
ArrayList list = new ArrayList();
SourceInspector inspector;
SourceProperty[] properties;
SourceProperty property;
boolean propertyExists;
for(int i=0; i<this.inspectors.size(); i++) {
inspector = (SourceInspector)this.inspectors.get(i);
try {
properties = inspector.getSourceProperties(source);
if (properties!=null)
for(int j=0; j<properties.length; j++) {
propertyExists = false;
for(int k=0; k<list.size() && !propertyExists; k++) {
property = (SourceProperty)list.get(k);
if ((property.getNamespace().equals(properties[j].getNamespace())) &&
(property.getName().equals(properties[j].getName())))
propertyExists = true;
}
if (!propertyExists)
list.add(properties[j]);
}