source: contrib/MailArchiver/sources/src/serpro/mailarchiver/domain/metaarchive/AddressListField_Group_Mailbox.java @ 6785

Revision 6785, 4.6 KB checked in by rafaelraymundo, 12 years ago (diff)

Ticket #2946 - Liberado codigo do MailArchiver?. Documentação na subpasta DOCS.

Line 
1/**
2 * MailArchiver is an application that provides services for storing and managing e-mail messages through a Web Services SOAP interface.
3 * Copyright (C) 2012  Marcio Andre Scholl Levien and Fernando Alberto Reuter Wendt and Jose Ronaldo Nogueira Fonseca Junior
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19/******************************************************************************\
20*
21*  This product was developed by
22*
23*        SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO),
24*
25*  a government company established under Brazilian law (5.615/70),
26*  at Department of Development of Porto Alegre.
27*
28\******************************************************************************/
29
30package serpro.mailarchiver.domain.metaarchive;
31
32import javax.jdo.JDOHelper;
33import javax.jdo.annotations.NotPersistent;
34import javax.jdo.annotations.PersistenceCapable;
35
36import com.google.common.base.Strings;
37
38import serpro.mailarchiver.util.Logger;
39
40@PersistenceCapable
41public class AddressListField_Group_Mailbox
42    extends Address
43    implements Mailbox
44{
45    @NotPersistent
46    private static final Logger log = Logger.getLocalLogger();
47
48    //**** P E R S I S T E N T ****
49    private AddressListField_Group group;
50    private Integer groupIdx;
51    //*****************************
52
53    @Override
54    public Message getRootMessage() {
55        if(getGroup() != null) {
56            return getGroup().getRootMessage();
57        }
58        return null;
59    }
60
61    @Override
62    public final String getLocalPart() {
63        return localPart;
64    }
65
66    @Override
67    public final void setLocalPart(String localPart) {
68        this.localPart = localPart;
69    }
70
71    @Override
72    public final String getDomain() {
73        return domain;
74    }
75
76    @Override
77    public final void setDomain(String domain) {
78        this.domain = domain;
79    }
80
81    @Override
82    public final String getRoute() {
83        return route;
84    }
85
86    @Override
87    public final void setRoute(String route) {
88        this.route = route;
89    }
90
91    //------------------------------------------------------------------
92    public final AddressListField_Group getGroup() {
93        return group;
94    }
95
96    public void setGroup(AddressListField_Group group) {
97        if(this.group != null) {
98            this.group.internal_removeMailbox(this);
99        }
100        this.group = group;
101        if(this.group != null) {
102            this.group.internal_addMailbox(this);
103        }
104    }
105
106    public final int getGroupIdx() {
107        return (groupIdx != null) ? groupIdx
108                : (getGroup() != null) ? getGroup().indexOf(this)
109                : -1;
110    }
111
112    //------------------------------------------------------------------
113    @Override
114    final int dumpPath(StringBuilder sb, boolean quit) {
115        int depth = (group == null) ? 0 : group.dumpPath(sb, false);
116        String pad = Strings.repeat("    ", depth);
117        if(quit) {
118            sb.append(toString(pad + "    "));
119        }
120        else {
121            sb.append(toString(pad + "|   ")).append("\n")
122              .append(pad).append("|\n")
123              .append(pad).append("+---");
124        }
125        return ++depth;
126    }
127
128    @Override
129    final void dumpTree(StringBuilder sb, String pad) {
130        sb.append(toString(pad + "    "));
131    }
132
133    @Override
134    final String toString(String pad) {
135        String idx = (getGroup() == null) ? "" : ("[" + String.valueOf(getGroupIdx()) + "]");
136        return String.format(
137                "AddressListField_Group_Mailbox %1$s%n"
138              + "%2$sjdoState: %3$s%n"
139              + "%2$soid: %4$s%n"
140              + "%2$shash: %5$x%n"
141              + "%2$sname: %6$s%n"
142              + "%2$slocalPart: %7$s%n"
143              + "%2$sdomain: %8$s%n"
144              + "%2$sroute: %9$s"
145              , idx
146              , pad
147              , JDOHelper.getObjectState(this)
148              , getOid()
149              , hashCode()
150              , getName()
151              , getLocalPart()
152              , getDomain()
153              , getRoute());
154    }
155}
Note: See TracBrowser for help on using the repository browser.