1 /****************************************************************
2 * Licensed to the Apache Software Foundation (ASF) under one *
3 * or more contributor license agreements. See the NOTICE file *
4 * distributed with this work for additional information *
5 * regarding copyright ownership. The ASF licenses this file *
6 * to you under the Apache License, Version 2.0 (the *
7 * "License"); you may not use this file except in compliance *
8 * with the License. You may obtain a copy of the License at *
9 * *
10 * http://www.apache.org/licenses/LICENSE-2.0 *
11 * *
12 * Unless required by applicable law or agreed to in writing, *
13 * software distributed under the License is distributed on an *
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15 * KIND, either express or implied. See the License for the *
16 * specific language governing permissions and limitations *
17 * under the License. *
18 ****************************************************************/
19
20
21
22 package org.apache.james.api.vut.management;
23
24 import java.util.Collection;
25
26 import org.apache.james.api.vut.management.VirtualUserTableManagementException;
27
28 /**
29 * Expose virtualusertable management functionality through JMX.
30 *
31 * @phoenix:mx-topic name="VirtualUserTableAdministration"
32 */
33 public interface VirtualUserTableManagementMBean {
34
35 /**
36 * Add regex mapping
37 * @phoenix:mx-operation
38 * @phoenix:mx-description Add regex mapping
39 *
40 * @param virtualUserTable The virtualUserTable
41 * @param user the username. Null if no username should be used
42 * @param domain the domain. Null if no domain should be used
43 * @param regex the regex.
44 * @return true if successfully
45 * @throws VirtualUserTableManagementException TODO
46 */
47 public boolean addRegexMapping(String virtualUserTable, String user, String domain, String regex) throws VirtualUserTableManagementException;
48
49 /**
50 * Remove regex mapping
51 * @phoenix:mx-operation
52 * @phoenix:mx-description Remove regex mapping
53 *
54 * @param virtualUserTable The virtualUserTable
55 * @param user the username. Null if no username should be used
56 * @param domain the domain. Null if no domain should be used
57 * @param regex the regex.
58 * @return true if successfully
59 * @throws VirtualUserTableManagementException TODO
60 */
61 public boolean removeRegexMapping(String virtualUserTable, String user,String domain, String regex) throws VirtualUserTableManagementException;
62
63 /***
64 * Add address mapping
65 * @phoenix:mx-operation
66 * @phoenix:mx-description Add address mapping
67 *
68 * @param virtualUserTable The virtualUserTable
69 * @param user the username. Null if no username should be used
70 * @param domain the domain. Null if no domain should be used
71 * @param address the address.
72 * @return true if successfully
73 * @throws VirtualUserTableManagementException TODO
74 */
75 public boolean addAddressMapping(String virtualUserTable, String user, String domain, String address) throws VirtualUserTableManagementException;
76
77 /**
78 * Remove address mapping
79 * @phoenix:mx-operation
80 * @phoenix:mx-description Remove address mapping
81 *
82 * @param virtualUserTable The virtualUserTable
83 * @param user the username. Null if no username should be used
84 * @param domain the domain. Null if no domain should be used
85 * @param address
86 * @return true if successfully
87 * @throws VirtualUserTableManagementException TODO
88 */
89 public boolean removeAddressMapping(String virtualUserTable, String user,String domain, String address) throws VirtualUserTableManagementException;
90
91 /**
92 * Add error mapping
93 * @phoenix:mx-operation
94 * @phoenix:mx-description Add error mapping
95 *
96 * @param virtualUserTable The virtualUserTable
97 * @param user the username. Null if no username should be used
98 * @param domain the domain. Null if no domain should be used
99 * @param error
100 * @return true if successfully
101 * @throws VirtualUserTableManagementException TODO
102 */
103 public boolean addErrorMapping(String virtualUserTable, String user, String domain, String error) throws VirtualUserTableManagementException;
104
105 /**
106 * Remove error mapping
107 * @phoenix:mx-operation
108 * @phoenix:mx-description Remove error mapping
109 *
110 * @param virtualUserTable The virtualUserTable
111 * @param user the username. Null if no username should be used
112 * @param domain the domain. Null if no domain should be used
113 * @param error
114 * @return true if successfully
115 * @throws VirtualUserTableManagementException TODO
116 */
117 public boolean removeErrorMapping(String virtualUserTable, String user,String domain, String error) throws VirtualUserTableManagementException;
118
119 /**
120 * Return the explicit mapping stored for the given user and domain. Return null
121 * if no mapping was found
122 * @phoenix:mx-operation
123 * @phoenix:mx-description Return the explicit mapping stored for the given user and domain. Return null
124 * if no mapping was found
125 *
126 * @param virtualUserTable The virtualUserTable
127 * @param user the username
128 * @param domain the domain
129 * @return the collection which holds the mappings.
130 * @throws VirtualUserTableManagementException TODO
131 */
132 public Collection getUserDomainMappings(String virtualUserTable, String user, String domain) throws VirtualUserTableManagementException;
133
134 /**
135 * Try to identify the right method based on the prefix of the mapping and add it.
136 * @phoenix:mx-operation
137 * @phoenix:mx-description Try to identify the right method based on the prefix of the mapping and add it
138 *
139 * @param virtualUserTable The virtualUserTable
140 * @param user the username. Null if no username should be used
141 * @param domain the domain. Null if no domain should be used
142 * @param mapping the mapping.
143 * @return true if successfully
144 * @throws VirtualUserTableManagementException TODO
145 */
146 public boolean addMapping(String virtualUserTable, String user, String domain, String mapping) throws VirtualUserTableManagementException;
147
148 /**
149 * Try to identify the right method based on the prefix of the mapping and remove it.
150 * @phoenix:mx-operation
151 * @phoenix:mx-description Try to identify the right method based on the prefix of the mapping and remove it
152 *
153 * @param virtualUserTable The virtualUserTable
154 * @param user the username. Null if no username should be used
155 * @param domain the domain. Null if no domain should be used
156 * @param mapping the mapping.
157 * @return true if successfully
158 * @throws VirtualUserTableManagementException TODO
159 */
160 public boolean removeMapping(String virtualUserTable, String user, String domain, String mapping) throws VirtualUserTableManagementException;
161 }