ValueMapResource.java
2.88 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
84
85
86
87
88
89
90
91
92
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* org.apache.sling.api.resource.Resource
* org.apache.sling.api.resource.ResourceMetadata
* org.apache.sling.api.resource.ResourceResolver
* org.apache.sling.api.resource.SyntheticResource
* org.apache.sling.api.resource.ValueMap
*/
package com.adobe.granite.ui.components.ds;
import java.util.Collection;
import java.util.Iterator;
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.SyntheticResource;
import org.apache.sling.api.resource.ValueMap;
/*
* This class specifies class file version 49.0 but uses Java 6 signatures. Assumed Java 6.
*/
public class ValueMapResource
extends SyntheticResource {
private ValueMap vm;
private Collection<Resource> children;
public ValueMapResource(ResourceResolver resourceResolver, String path, String resourceType, ValueMap vm) {
super(resourceResolver, path, resourceType);
this.vm = vm;
}
public ValueMapResource(ResourceResolver resourceResolver, String path, String resourceType, ValueMap vm, Collection<Resource> children) {
this(resourceResolver, path, resourceType, vm);
this.children = children;
}
public ValueMapResource(ResourceResolver resourceResolver, ResourceMetadata rm, String resourceType, ValueMap vm) {
super(resourceResolver, rm, resourceType);
this.vm = vm;
}
public ValueMapResource(ResourceResolver resourceResolver, ResourceMetadata rm, String resourceType, ValueMap vm, Collection<Resource> children) {
this(resourceResolver, rm, resourceType, vm);
this.children = children;
}
public <Type> Type adaptTo(Class<Type> type) {
if (ValueMap.class.equals(type)) {
return (Type)this.vm;
}
return (Type)super.adaptTo(type);
}
public Resource getChild(String relPath) {
if (this.children == null) {
return super.getChild(relPath);
}
for (Resource child : this.children) {
if (child.getPath() == null || !child.getPath().equals(this.getPath() + "/" + relPath)) continue;
return child;
}
return null;
}
public Iterator<Resource> listChildren() {
if (this.children == null) {
return super.listChildren();
}
return this.children.iterator();
}
public Iterable<Resource> getChildren() {
return new Iterable<Resource>(){
@Override
public Iterator<Resource> iterator() {
return ValueMapResource.this.listChildren();
}
};
}
public boolean hasChildren() {
if (this.children == null) {
return super.hasChildren();
}
return !this.children.isEmpty();
}
}