01: /*
02: * Copyright 2004 Outerthought bvba and Schaubroeck nv
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16: package org.outerj.daisy.cache;
17:
18: import org.outerj.daisy.repository.commonimpl.DocumentImpl;
19: import org.outerj.daisy.repository.AvailableVariants;
20:
21: /**
22: * The service that caches Documents.
23: */
24: public interface DocumentCache {
25: public void put(String documentId, long branchId, long languageId,
26: DocumentImpl document);
27:
28: /**
29: * Returns the cached Document, or null if it is not in the cache.
30: */
31: public DocumentImpl get(String documentId, long branchId,
32: long languageId);
33:
34: /**
35: * Removes a cached Document, or does nothing if it is not in the cache.
36: */
37: public void remove(String documentId, long branchId, long languageId);
38:
39: /**
40: * Removes all cached variants of the document.
41: */
42: public void remove(String documentId);
43:
44: /**
45: * Clears the entire cache. Should only be used exceptionally to avoid performance drops.
46: */
47: public void clear();
48:
49: public void put(String documentId,
50: AvailableVariants availableVariants);
51:
52: public AvailableVariants getAvailableVariants(String documentId);
53:
54: public void removeAvailableVariants(String documentId);
55: }
|