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.impl.vut;
23
24 import java.util.Collection;
25 import java.util.Map;
26
27 import org.apache.avalon.framework.activity.Initializable;
28 import org.apache.avalon.framework.service.ServiceException;
29 import org.apache.avalon.framework.service.ServiceManager;
30 import org.apache.avalon.framework.service.Serviceable;
31 import org.apache.james.api.vut.ErrorMappingException;
32 import org.apache.james.api.vut.VirtualUserTableStore;
33 import org.apache.james.api.vut.management.InvalidMappingException;
34 import org.apache.james.api.vut.management.VirtualUserTableManagement;
35
36 /**
37 * Default VirtualUserTable
38 */
39 public class DefaultVirtualUserTable implements VirtualUserTableManagement, Serviceable, Initializable {
40
41 VirtualUserTableManagement vut = null;
42
43 VirtualUserTableStore store = null;
44
45 /**
46 * @see org.apache.avalon.framework.activity.Initializable#initialize()
47 */
48 public void initialize() throws Exception {
49 vut = (VirtualUserTableManagement) store.getTable("DefaultVirtualUserTable");
50 if (vut == null) {
51 throw new ServiceException("","The DefaultVirtualUserTable could not be found.");
52 }
53 }
54
55 /**
56 * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
57 */
58 public void service(ServiceManager arg0) throws ServiceException {
59 store = (VirtualUserTableStore) arg0.lookup(VirtualUserTableStore.ROLE);
60 }
61
62 /**
63 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#addAddressMapping(java.lang.String, java.lang.String, java.lang.String)
64 */
65 public boolean addAddressMapping(String user, String domain, String address) throws InvalidMappingException {
66 return vut.addAddressMapping(user, domain, address);
67 }
68
69 /**
70 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#addErrorMapping(java.lang.String, java.lang.String, java.lang.String)
71 */
72 public boolean addErrorMapping(String user, String domain, String error) throws InvalidMappingException {
73 return vut.addErrorMapping(user, domain, error);
74 }
75
76 /**
77 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#addRegexMapping(java.lang.String, java.lang.String, java.lang.String)
78 */
79 public boolean addRegexMapping(String user, String domain, String regex) throws InvalidMappingException {
80 return vut.addRegexMapping(user, domain, regex);
81 }
82
83 /**
84 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#getUserDomainMappings(java.lang.String, java.lang.String)
85 */
86 public Collection getUserDomainMappings(String user, String domain) throws InvalidMappingException {
87 return vut.getUserDomainMappings(user, domain);
88 }
89
90 /**
91 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#removeAddressMapping(java.lang.String, java.lang.String, java.lang.String)
92 */
93 public boolean removeAddressMapping(String user, String domain, String address) throws InvalidMappingException {
94 return vut.removeAddressMapping(user, domain, address);
95 }
96
97 /**
98 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#removeErrorMapping(java.lang.String, java.lang.String, java.lang.String)
99 */
100 public boolean removeErrorMapping(String user, String domain, String error) throws InvalidMappingException {
101 return vut.removeErrorMapping(user, domain, error);
102 }
103
104 /**
105 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#removeRegexMapping(java.lang.String, java.lang.String, java.lang.String)
106 */
107 public boolean removeRegexMapping(String user, String domain, String regex) throws InvalidMappingException {
108 return vut.removeRegexMapping(user, domain, regex);
109 }
110
111 /**
112 * @see org.apache.james.api.vut.VirtualUserTable#getMappings(java.lang.String, java.lang.String)
113 */
114 public Collection getMappings(String user, String domain) throws ErrorMappingException {
115 return vut.getMappings(user, domain);
116 }
117
118 /**
119 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#addMapping(java.lang.String, java.lang.String, java.lang.String)
120 */
121 public boolean addMapping(String user, String domain, String mapping) throws InvalidMappingException {
122 return vut.addMapping(user, domain, mapping);
123 }
124
125 /**
126 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#removeMapping(java.lang.String, java.lang.String, java.lang.String)
127 */
128 public boolean removeMapping(String user, String domain, String mapping) throws InvalidMappingException {
129 return vut.removeMapping(user, domain, mapping);
130 }
131
132 /**
133 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#getAllMappings()
134 */
135 public Map getAllMappings() {
136 return vut.getAllMappings();
137 }
138
139 /**
140 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#addAliasDomainMapping(String, String)
141 */
142 public boolean addAliasDomainMapping(String aliasDomain, String realDomain) throws InvalidMappingException {
143 return vut.addAliasDomainMapping(aliasDomain, realDomain);
144 }
145
146 /**
147 * @see org.apache.james.api.vut.management.VirtualUserTableManagement#removeAliasDomainMapping(String, String)
148 */
149 public boolean removeAliasDomainMapping(String aliasDomain, String realDomain) throws InvalidMappingException {
150 return vut.removeAliasDomainMapping(aliasDomain, realDomain);
151 }
152 }