1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.ini4j.spi;
17
18 import org.ini4j.Config;
19
20 import java.io.PrintWriter;
21 import java.io.Writer;
22
23 public class IniFormatter extends AbstractFormatter implements IniHandler
24 {
25 public static IniFormatter newInstance(Writer out, Config config)
26 {
27 IniFormatter instance = newInstance();
28
29 instance.setOutput((out instanceof PrintWriter) ? (PrintWriter) out : new PrintWriter(out));
30 instance.setConfig(config);
31
32 return instance;
33 }
34
35 @Override public void endIni()
36 {
37 getOutput().flush();
38 }
39
40 @Override public void endSection()
41 {
42 getOutput().print(getConfig().getLineSeparator());
43 }
44
45 @Override public void startIni()
46 {
47 assert true;
48 }
49
50 @Override public void startSection(String sectionName)
51 {
52 setHeader(false);
53 if (!getConfig().isGlobalSection() || !sectionName.equals(getConfig().getGlobalSectionName()))
54 {
55 getOutput().print(IniParser.SECTION_BEGIN);
56 getOutput().print(escapeFilter(sectionName));
57 getOutput().print(IniParser.SECTION_END);
58 getOutput().print(getConfig().getLineSeparator());
59 }
60 }
61
62 private static IniFormatter newInstance()
63 {
64 return ServiceFinder.findService(IniFormatter.class);
65 }
66 }