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

Revision 6785, 3.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.annotations.NotPersistent;
33import javax.jdo.annotations.PersistenceCapable;
34
35import com.google.common.base.Strings;
36
37import serpro.mailarchiver.domain.BaseObject;
38import serpro.mailarchiver.util.Logger;
39
40@PersistenceCapable
41public abstract class Body
42    extends BaseObject
43{
44    @NotPersistent
45    private static final Logger log = Logger.getLocalLogger();
46
47    //**** P E R S I S T E N T ****
48    private String oid;
49    private Entity entity;
50    //*****************************
51
52    public Message getRootMessage() {
53        if(getEntity() != null) {
54            return getEntity().getRootMessage();
55        }
56        return null;
57    }
58
59    public final String getOid() {
60        return oid;
61    }
62
63    public final void setOid(String oid) {
64        this.oid = oid;
65    }
66
67    //--------------------------------------------------------------------------
68    public final Entity getEntity() {
69        return entity;
70    }
71
72    public final void setEntity(Entity entity) {
73        if(this.entity != null) {
74            this.entity.internal_setBody(null);
75        }
76        this.entity = entity;
77        if(this.entity != null) {
78            this.entity.internal_setBody(this);
79        }
80    }
81
82    final void internal_setEntity(Entity entity) {
83        this.entity = entity;
84    }
85
86    //--------------------------------------------------------------------------
87    @Override
88    public final String toString() {
89        return toString("    ");
90    }
91
92    abstract String toString(String pad);
93
94    public final String dumpPath() {
95        StringBuilder sb = new StringBuilder();
96        dumpPath(sb, true);
97        return sb.toString();
98    }
99
100    final int dumpPath(StringBuilder sb, boolean quit) {
101        int depth = (entity == null) ? 0 : entity.dumpPath(sb, false);
102        String pad = Strings.repeat("    ", depth);
103        if(quit) {
104            sb.append(toString(pad + "    "));
105        }
106        else {
107            sb.append(toString(pad + "|   ")).append("\n")
108              .append(pad).append("|\n")
109              .append(pad).append("+---");
110        }
111        return ++depth;
112    }
113
114    public final String dumpTree() {
115        StringBuilder sb = new StringBuilder();
116        dumpTree(sb, "");
117        return sb.toString();
118    }
119
120    abstract void dumpTree(StringBuilder sb, String pad);
121
122}
Note: See TracBrowser for help on using the repository browser.