Mercurial > jhg
comparison src/org/tmatesoft/hg/internal/ConfigFile.java @ 628:6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Wed, 22 May 2013 15:52:31 +0200 |
parents | e1b29756f901 |
children |
comparison
equal
deleted
inserted
replaced
627:5153eb73b18d | 628:6526d8adbc0f |
---|---|
29 import java.util.Iterator; | 29 import java.util.Iterator; |
30 import java.util.LinkedHashMap; | 30 import java.util.LinkedHashMap; |
31 import java.util.List; | 31 import java.util.List; |
32 import java.util.Map; | 32 import java.util.Map; |
33 | 33 |
34 import org.tmatesoft.hg.core.HgIOException; | |
34 import org.tmatesoft.hg.core.SessionContext; | 35 import org.tmatesoft.hg.core.SessionContext; |
35 import org.tmatesoft.hg.repo.HgInvalidFileException; | |
36 import org.tmatesoft.hg.util.LogFacility; | 36 import org.tmatesoft.hg.util.LogFacility; |
37 | 37 |
38 /** | 38 /** |
39 * .ini / .rc file reader | 39 * .ini / .rc file reader |
40 * @author Artem Tikhomirov | 40 * @author Artem Tikhomirov |
48 | 48 |
49 public ConfigFile(SessionContext ctx) { | 49 public ConfigFile(SessionContext ctx) { |
50 sessionContext = ctx; | 50 sessionContext = ctx; |
51 } | 51 } |
52 | 52 |
53 public void addLocation(File path) throws HgInvalidFileException { | 53 public void addLocation(File path) throws HgIOException { |
54 read(path); | 54 read(path); |
55 } | 55 } |
56 | 56 |
57 public boolean hasSection(String sectionName) { | 57 public boolean hasSection(String sectionName) { |
58 return sections == null ? false : sections.indexOf(sectionName) != -1; | 58 return sections == null ? false : sections.indexOf(sectionName) != -1; |
123 } else { | 123 } else { |
124 section.put(key, newValue); | 124 section.put(key, newValue); |
125 } | 125 } |
126 } | 126 } |
127 | 127 |
128 private void read(File f) throws HgInvalidFileException { | 128 private void read(File f) throws HgIOException { |
129 if (f == null || !f.canRead()) { | 129 if (f == null || !f.canRead()) { |
130 return; | 130 return; |
131 } | 131 } |
132 if (sections == null) { | 132 if (sections == null) { |
133 sections = new ArrayList<String>(); | 133 sections = new ArrayList<String>(); |
225 section.put(key, value); | 225 section.put(key, value); |
226 } | 226 } |
227 return true; | 227 return true; |
228 } | 228 } |
229 | 229 |
230 public void go(File f, ConfigFile cfg) throws HgInvalidFileException { | 230 public void go(File f, ConfigFile cfg) throws HgIOException { |
231 contextFile = f; | 231 contextFile = f; |
232 LineReader lr = new LineReader(f, cfg.sessionContext.getLog()); | 232 LineReader lr = new LineReader(f, cfg.sessionContext.getLog()); |
233 lr.ignoreLineComments("#"); | 233 lr.ignoreLineComments("#"); |
234 lr.read(this, cfg); | 234 lr.read(this, cfg); |
235 } | 235 } |
248 new Parser().go(f, cfg); | 248 new Parser().go(f, cfg); |
249 } else { | 249 } else { |
250 LogFacility lf = cfg.sessionContext.getLog(); | 250 LogFacility lf = cfg.sessionContext.getLog(); |
251 lf.dump(ConfigFile.class, LogFacility.Severity.Debug, "Can't read file to include: %s", f); | 251 lf.dump(ConfigFile.class, LogFacility.Severity.Debug, "Can't read file to include: %s", f); |
252 } | 252 } |
253 } catch (HgInvalidFileException ex) { | 253 } catch (HgIOException ex) { |
254 LogFacility lf = cfg.sessionContext.getLog(); | 254 LogFacility lf = cfg.sessionContext.getLog(); |
255 lf.dump(ConfigFile.class, LogFacility.Severity.Warn, "Can't include %s (%s)", f, includeValue); | 255 lf.dump(ConfigFile.class, LogFacility.Severity.Warn, "Can't include %s (%s)", f, includeValue); |
256 } | 256 } |
257 } | 257 } |
258 } | 258 } |