SearchResultsResource.java
2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* org.apache.sling.api.resource.AbstractResource
* org.apache.sling.api.resource.Resource
* org.apache.sling.api.resource.ResourceMetadata
* org.apache.sling.api.resource.ResourceResolver
* org.apache.sling.api.resource.ValueMap
* org.apache.sling.api.wrappers.ValueMapDecorator
*/
package com.adobe.granite.rest.impl;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.sling.api.resource.AbstractResource;
import org.apache.sling.api.resource.Resource;
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.ValueMapDecorator;
public class SearchResultsResource
extends AbstractResource {
public static final String RESOURCE_TYPE = "granite/rest/core/searchresults";
private ResourceMetadata metadata = new ResourceMetadata();
private ValueMap valueMap;
private final String path;
private final ResourceResolver resolver;
private final List<Resource> results;
public SearchResultsResource(Resource resource, String path, List<Resource> results) {
this.resolver = resource.getResourceResolver();
this.path = path;
this.results = results;
this.valueMap = new SearchResultsValueMap();
this.metadata.setResolutionPath(path);
this.valueMap.put((Object)"name", (Object)resource.getName());
this.valueMap.putAll((Map)resource.adaptTo(ValueMap.class));
}
public String getPath() {
return this.path;
}
public ResourceMetadata getResourceMetadata() {
return this.metadata;
}
public ResourceResolver getResourceResolver() {
return this.resolver;
}
public String getResourceSuperType() {
return null;
}
public String getResourceType() {
return "granite/rest/core/searchresults";
}
public Iterator<Resource> listChildren() {
return this.results.iterator();
}
public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
if (type == ValueMap.class) {
return (AdapterType)this.valueMap;
}
return (AdapterType)super.adaptTo(type);
}
private class SearchResultsValueMap
extends ValueMapDecorator {
public SearchResultsValueMap() {
super(new HashMap());
}
}
}