diff options
Diffstat (limited to 'src/main/java/com/google/gerrit/server/mail/FromAddressGeneratorProvider.java')
-rw-r--r-- | src/main/java/com/google/gerrit/server/mail/FromAddressGeneratorProvider.java | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/src/main/java/com/google/gerrit/server/mail/FromAddressGeneratorProvider.java b/src/main/java/com/google/gerrit/server/mail/FromAddressGeneratorProvider.java deleted file mode 100644 index f9322d44b7..0000000000 --- a/src/main/java/com/google/gerrit/server/mail/FromAddressGeneratorProvider.java +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright (C) 2009 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.server.mail; - -import com.google.gerrit.client.reviewdb.Account; -import com.google.gerrit.server.GerritPersonIdent; -import com.google.gerrit.server.ParamertizedString; -import com.google.gerrit.server.account.AccountCache; -import com.google.gerrit.server.config.GerritServerConfig; -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.google.inject.Singleton; - -import org.eclipse.jgit.lib.Config; -import org.eclipse.jgit.lib.PersonIdent; - -/** Creates a {@link FromAddressGenerator} from the {@link GerritServerConfig} */ -@Singleton -public class FromAddressGeneratorProvider implements - Provider<FromAddressGenerator> { - private final FromAddressGenerator generator; - - @Inject - FromAddressGeneratorProvider(@GerritServerConfig final Config cfg, - @GerritPersonIdent final PersonIdent myIdent, - final AccountCache accountCache) { - - final String from = cfg.getString("sendemail", null, "from"); - final Address srvAddr = toAddress(myIdent); - - if (from == null || "MIXED".equalsIgnoreCase(from)) { - final String name = "${user} (Code Review)"; - final String email = srvAddr.email; - generator = new PatternGen(srvAddr, accountCache, name, email); - - } else if ("USER".equalsIgnoreCase(from)) { - generator = new UserGen(accountCache, srvAddr); - - } else if ("SERVER".equalsIgnoreCase(from)) { - generator = new ServerGen(srvAddr); - - } else { - final Address a = Address.parse(from); - generator = new PatternGen(srvAddr, accountCache, a.name, a.email); - } - } - - private static Address toAddress(final PersonIdent myIdent) { - return new Address(myIdent.getName(), myIdent.getEmailAddress()); - } - - @Override - public FromAddressGenerator get() { - return generator; - } - - static final class UserGen implements FromAddressGenerator { - private final AccountCache accountCache; - private final Address srvAddr; - - UserGen(AccountCache accountCache, Address srvAddr) { - this.accountCache = accountCache; - this.srvAddr = srvAddr; - } - - @Override - public Address from(final Account.Id fromId) { - if (fromId != null) { - final Account a = accountCache.get(fromId).getAccount(); - if (a.getPreferredEmail() != null) { - return new Address(a.getFullName(), a.getPreferredEmail()); - } - } - return srvAddr; - } - } - - static final class ServerGen implements FromAddressGenerator { - private final Address srvAddr; - - ServerGen(Address srvAddr) { - this.srvAddr = srvAddr; - } - - @Override - public Address from(final Account.Id fromId) { - return srvAddr; - } - } - - static final class PatternGen implements FromAddressGenerator { - private final String senderEmail; - private final Address serverAddress; - private final AccountCache accountCache; - private final ParamertizedString namePattern; - - PatternGen(final Address serverAddress, final AccountCache accountCache, - final String namePattern, final String senderEmail) { - this.senderEmail = senderEmail; - this.serverAddress = serverAddress; - this.accountCache = accountCache; - this.namePattern = new ParamertizedString(namePattern); - } - - @Override - public Address from(final Account.Id fromId) { - final String senderName; - - if (fromId != null) { - final Account account = accountCache.get(fromId).getAccount(); - String fullName = account.getFullName(); - if (fullName == null || "".equals(fullName)) { - fullName = "Anonymous Coward"; - } - senderName = namePattern.replace("user", fullName).toString(); - - } else { - senderName = serverAddress.name; - } - - return new Address(senderName, senderEmail); - } - } -} |