01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: */
18: package org.apache.lenya.cms.publication;
19:
20: /**
21: * Publication manager.
22: */
23: public interface PublicationManager {
24:
25: /**
26: * The service's role.
27: */
28: String ROLE = PublicationManager.class.getName();
29:
30: /**
31: * @param factory The factory.
32: * @return All publications.
33: */
34: Publication[] getPublications(DocumentFactory factory);
35:
36: /**
37: * @param factory The factory.
38: * @param id The publication ID.
39: * @return A publication.
40: * @throws PublicationException if the publication does not exist.
41: */
42: Publication getPublication(DocumentFactory factory, String id)
43: throws PublicationException;
44:
45: /**
46: * @return The IDs of all available publications.
47: */
48: String[] getPublicationIds();
49:
50: /**
51: * Adds a publication.
52: * @param id The publication ID.
53: * @throws PublicationException if the publication already exists.
54: */
55: void addPublication(String id) throws PublicationException;
56:
57: }
|