You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2015/05/18 23:17:21 UTC
svn commit: r1680104 - in
/sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic: pom.xml
src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResource.java
src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlValueMap.java
Author: sseifert
Date: Mon May 18 21:17:20 2015
New Revision: 1680104
URL: http://svn.apache.org/r1680104
Log:
switch to DeepReadValueMapDecorator
Modified:
sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/pom.xml
sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResource.java
sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlValueMap.java
Modified: sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/pom.xml
URL: http://svn.apache.org/viewvc/sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/pom.xml?rev=1680104&r1=1680103&r2=1680104&view=diff
==============================================================================
--- sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/pom.xml (original)
+++ sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/pom.xml Mon May 18 21:17:20 2015
@@ -26,9 +26,8 @@
<version>22</version>
</parent>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.nosql-generic</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <artifactId>org.apache.sling.nosql.generic</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>Apache Sling Generic NoSQL Resource Provider</name>
Modified: sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResource.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResource.java?rev=1680104&r1=1680103&r2=1680104&view=diff
==============================================================================
--- sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResource.java (original)
+++ sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResource.java Mon May 18 21:17:20 2015
@@ -26,6 +26,8 @@ import org.apache.sling.api.resource.Mod
import org.apache.sling.api.resource.ResourceMetadata;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.DeepReadModifiableValueMapDecorator;
+import org.apache.sling.api.wrappers.DeepReadValueMapDecorator;
import org.apache.sling.nosql.generic.adapter.NoSqlData;
/**
@@ -66,8 +68,11 @@ public class NoSqlResource extends Abstr
@SuppressWarnings("unchecked")
@Override
public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
- if (type == ValueMap.class || type == Map.class || type == ModifiableValueMap.class) {
- return (AdapterType)new NoSqlValueMap(this, data.getProperties());
+ if (type == ValueMap.class || type == Map.class) {
+ return (AdapterType)new DeepReadValueMapDecorator(this, new NoSqlValueMap(data.getProperties()));
+ }
+ if (type == ModifiableValueMap.class) {
+ return (AdapterType)new DeepReadModifiableValueMapDecorator(this, new NoSqlValueMap(data.getProperties()));
}
return super.adaptTo(type);
}
Modified: sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlValueMap.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlValueMap.java?rev=1680104&r1=1680103&r2=1680104&view=diff
==============================================================================
--- sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlValueMap.java (original)
+++ sling/whiteboard/sseifert/SLING-4381_nosql/nosql-generic/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlValueMap.java Mon May 18 21:17:20 2015
@@ -34,8 +34,6 @@ import javax.xml.bind.DatatypeConverter;
import org.apache.commons.io.IOUtils;
import org.apache.sling.api.resource.ModifiableValueMap;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.api.wrappers.ValueMapDecorator;
/**
@@ -45,28 +43,14 @@ import org.apache.sling.api.wrappers.Val
*/
class NoSqlValueMap extends ValueMapDecorator implements ModifiableValueMap {
- private final Resource resource;
-
- public NoSqlValueMap(Resource resource, Map<String,Object> map) {
+ public NoSqlValueMap(Map<String,Object> map) {
super(convertForWriteAll(map));
- this.resource = resource;
}
@SuppressWarnings("unchecked")
@Override
public <T> T get(String name, Class<T> type) {
- // check for deep path access
- int slashPos = name.lastIndexOf('/');
- if (slashPos >= 0) {
- String resourcePath = "./" + name.substring(0, slashPos);
- String propertyName = name.substring(slashPos + 1);
- Resource childResource = resource.getChild(resourcePath);
- if (childResource!=null) {
- return ResourceUtil.getValueMap(childResource).get(propertyName, type);
- }
- }
-
if (type == Calendar.class) {
Date date = get(name, Date.class);
if (date != null) {