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 package info.magnolia.resourceloader;
35
36 import java.io.IOException;
37 import java.io.InputStream;
38 import java.io.Reader;
39 import java.util.List;
40
41 import lombok.EqualsAndHashCode;
42
43
44
45
46
47
48
49 @EqualsAndHashCode
50 public abstract class AbstractResource implements Resource {
51 private final AbstractResourceOrigin origin;
52
53 protected AbstractResource(AbstractResourceOrigin origin) {
54 this.origin = origin;
55 }
56
57 @Override
58 public ResourceOrigin getOrigin() {
59 return origin;
60 }
61
62 @Override
63 public boolean isFile() {
64 return origin.isFile(this);
65 }
66
67 @Override
68 public boolean isDirectory() {
69 return origin.isDirectory(this);
70 }
71
72 @Override
73 public boolean isEditable() {
74 return origin.isEditable(this);
75 }
76
77 @Override
78 public String getPath() {
79 return origin.getPath(this);
80 }
81
82 @Override
83 public String getName() {
84 return origin.getName(this);
85 }
86
87 @Override
88 public long getLastModified() {
89 return origin.getLastModified(this);
90 }
91
92 @Override
93 public List<Resource> listChildren() {
94 return origin.listChildren(this);
95 }
96
97 @Override
98 public Resource getParent() {
99 return origin.getParent(this);
100 }
101
102 @Override
103 public InputStream openStream() throws IOException {
104 return origin.openStream(this);
105 }
106
107 @Override
108 public Reader openReader() throws IOException {
109 return origin.openReader(this);
110 }
111
112 @Override
113 public String toString() {
114 return this.getClass().getSimpleName() + "{" +
115 "origin=" + origin.getName() + "," +
116 "path=" + getPath() + "," +
117 (isDirectory() ? "(directory)" : "file") +
118 '}';
119 }
120
121 }