View Javadoc
1   /*
2    * DavMail POP/IMAP/SMTP/CalDav/LDAP Exchange Gateway
3    * Copyright (C) 2010  Mickael Guessant
4    *
5    * This program is free software; you can redistribute it and/or
6    * modify it under the terms of the GNU General Public License
7    * as published by the Free Software Foundation; either version 2
8    * of the 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 General Public License for more details.
14   *
15   * You should have received a copy of the GNU General Public License
16   * along with this program; if not, write to the Free Software
17   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18   */
19  package davmail.exchange.ews;
20  
21  import davmail.util.StringUtil;
22  
23  import java.io.IOException;
24  import java.io.Writer;
25  
26  /**
27   * Generic element option.
28   */
29  public class ElementOption extends Option {
30      ElementOption option;
31      /**
32       * Create element option.
33       *
34       * @param name  element tag name
35       * @param value element value
36       */
37      protected ElementOption(String name, String value) {
38          super(name, value);
39      }
40  
41      protected ElementOption(String name, ElementOption option) {
42          super(name, null);
43          this.option = option;
44      }
45  
46      /**
47       * @inheritDoc
48       */
49      @Override
50      public void write(Writer writer) throws IOException {
51          writer.write('<');
52          writer.write(name);
53          writer.write('>');
54          if (option != null) {
55              option.write(writer);
56          } else {
57              writer.write(StringUtil.xmlEncode(value));
58          }
59          writer.write("</");
60          writer.write(name);
61          writer.write('>');
62      }
63  }