unico 2004/07/21 02:16:49
Modified: src/stores/org/apache/slide/store/impl/rdbms
RDBMSComparableResourcesPool.java
Log:
account for null property provider
Revision Changes Path
1.8 +40 -14
jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/RDBMSComparableResourcesPool.java
Index: RDBMSComparableResourcesPool.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/RDBMSComparableResourcesPool.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- RDBMSComparableResourcesPool.java 20 Jul 2004 11:24:35 -0000 1.7
+++ RDBMSComparableResourcesPool.java 21 Jul 2004 09:16:49 -0000 1.8
@@ -28,6 +28,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -50,6 +51,7 @@
import org.apache.slide.search.basic.ComparableResourceImpl;
import org.apache.slide.search.basic.ComparableResourcesPool;
import org.apache.slide.search.basic.IBasicQuery;
+import org.apache.slide.store.impl.rdbms.expression.RDBMSExpressionFactory;
import org.apache.slide.store.impl.rdbms.expression.RDBMSQueryContext;
import org.apache.slide.structure.ObjectNode;
import org.apache.slide.util.logger.Logger;
@@ -113,6 +115,7 @@
_pool.add(new ComparableResourceImpl(objects[i], _token,
_scope, _provider));
}
} catch (ServiceAccessException e) {
+ e.printStackTrace();
throw new BadQueryException(e);
} catch (SlideException e) {
throw new BadQueryException(e);
@@ -173,7 +176,8 @@
final RequestedProperty requested = (RequestedProperty)
iter.next();
final String name = requested.getName();
final String namespace = requested.getNamespace();
- final String value = result.getString(requested.getName());
+ final String alias =
RDBMSExpressionFactory.propertyToAlias(requested.getName());
+ final String value = result.getString(alias);
final NodeProperty property = new NodeProperty(name, value,
namespace);
final Map properties = (Map) _selectProperties.get(requested);
properties.put(uri, property);
@@ -300,12 +304,19 @@
if (_selectProperties.containsKey(new
RequestedPropertyImpl(propertyName, propertyNamespace))) {
return true;
}
- return _propertyProvider.isSupportedProperty(resourceUri, propertyName,
propertyNamespace);
+ else if (_propertyProvider != null) {
+ return _propertyProvider.isSupportedProperty(resourceUri,
propertyName, propertyNamespace);
+ }
+ return false;
}
public Iterator getSupportedPropertiesNames(String resourceUri) throws
SlideException {
- return new PropertyNamesIterator(_selectProperties.keySet().iterator(),
- _propertyProvider.getSupportedPropertiesNames(resourceUri));
+ Iterator selected = _selectProperties.keySet().iterator();
+ Iterator provided = null;
+ if (_propertyProvider != null) {
+ provided =
_propertyProvider.getSupportedPropertiesNames(resourceUri);
+ }
+ return new PropertyNamesIterator(selected, provided);
}
public NodeProperty getProperty(String resourceUri, String propertyName,
String propertyNamespace) throws SlideException {
@@ -313,14 +324,19 @@
if (properties != null) {
return (NodeProperty) properties.get(resourceUri);
}
- return _propertyProvider.getProperty(resourceUri, propertyName,
propertyNamespace);
+ else if (_propertyProvider != null) {
+ return _propertyProvider.getProperty(resourceUri, propertyName,
propertyNamespace);
+ }
+ return null;
}
public Iterator getSupportedProperties(String resourceUri) throws
SlideException {
- return new NodePropertiesIterator(
- resourceUri,
- _selectProperties.values().iterator(),
- _propertyProvider.getSupportedProperties(resourceUri));
+ Iterator selected = _selectProperties.values().iterator();
+ Iterator provided = null;
+ if (provided != null) {
+ provided = _propertyProvider.getSupportedProperties(resourceUri);
+ }
+ return new NodePropertiesIterator(resourceUri, selected, provided);
}
private static class PropertyNamesIterator implements Iterator {
@@ -330,7 +346,12 @@
private PropertyNamesIterator(Iterator selectedProperties, Iterator
providedProperties) {
_selectedProperties = selectedProperties;
- _providedProperties = providedProperties;
+ if (providedProperties != null) {
+ _providedProperties = providedProperties;
+ }
+ else {
+ _providedProperties = Collections.EMPTY_LIST.iterator();
+ }
}
public void remove() {
@@ -360,7 +381,12 @@
private NodePropertiesIterator(String resourceUri, Iterator
selectedProperties, Iterator providedProperties) {
_resourceUri = resourceUri;
_selectedProperties = selectedProperties;
- _providedProperties = providedProperties;
+ if (providedProperties != null) {
+ _providedProperties = providedProperties;
+ }
+ else {
+ _providedProperties = Collections.EMPTY_LIST.iterator();
+ }
}
public void remove() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]