1:
30:
31: package ;
32:
33: import ;
34: import ;
35:
36: import ;
37: import ;
38: import ;
39: import ;
40:
41:
46: public abstract class FileContentEntity implements ContentEntity
47: {
48: private File backend;
49: private ContentLocation parent;
50: private Repository repository;
51:
52: protected FileContentEntity(final ContentLocation parent, final File backend)
53: {
54: this.repository = parent.getRepository();
55: this.parent = parent;
56: this.backend = backend;
57: }
58:
59: protected FileContentEntity(final Repository repository, final File backend)
60: {
61: this.repository = repository;
62: this.backend = backend;
63: }
64:
65: public Repository getRepository()
66: {
67: return repository;
68: }
69:
70: public String getName()
71: {
72: return backend.getName();
73: }
74:
75: protected File getBackend()
76: {
77: return backend;
78: }
79:
80: public Object getContentId()
81: {
82: return getName();
83: }
84:
85: public Object getAttribute(final String domain, final String key)
86: {
87: if (LibRepositoryBoot.REPOSITORY_DOMAIN.equals(domain))
88: {
89: if (LibRepositoryBoot.SIZE_ATTRIBUTE.equals(key))
90: {
91: return new Long(backend.length());
92: }
93: else if (LibRepositoryBoot.VERSION_ATTRIBUTE.equals(key))
94: {
95: return new Date(backend.lastModified());
96: }
97: }
98: return null;
99: }
100:
101: public boolean setAttribute(final String domain, final String key, final Object value)
102: {
103: if (LibRepositoryBoot.REPOSITORY_DOMAIN.equals(domain))
104: {
105: if (LibRepositoryBoot.VERSION_ATTRIBUTE.equals(key))
106: {
107: if (value instanceof Date)
108: {
109: final Date date = (Date) value;
110: return backend.setLastModified(date.getTime());
111: }
112: else if (value instanceof Number)
113: {
114: final Number time = (Number) value;
115: return backend.setLastModified(time.longValue());
116: }
117: }
118: }
119: return false;
120: }
121:
122: public ContentLocation getParent()
123: {
124: return parent;
125: }
126:
127: public boolean delete()
128: {
129: return backend.delete();
130: }
131: }