From 5b90db5a44d37cad162c7986a14fc5ae5182773d Mon Sep 17 00:00:00 2001 From: Alvaro Garcia Date: Mon, 5 May 2014 22:26:28 +0200 Subject: [PATCH 1/7] refactor: use else rather than if to decrease indentation levels --- .../javaformatter/writers/EclipseWriter.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java index f2a92d0..95061f6 100644 --- a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java +++ b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java @@ -156,25 +156,26 @@ private Map getOptionsFromConfigFile() { int childSize = children.getLength(); for (int i = 0; i < childSize && loadProfile; i++) { Node childNode = children.item(i); - if (childNode instanceof Element) { - Element child = (Element) childNode; - if ("profile".equals(child.getNodeName())) { - if (CODE_FORMATTER_PROFILE.equals(child - .getAttribute("kind"))) { - NodeList settings = child.getChildNodes(); - int settingsSize = settings.getLength(); - for (int j = 0; j < settingsSize; j++) { - Node settingNode = settings.item(j); - if (settingNode instanceof Element) { - Element setting = (Element) settingNode; - options.put("id", - setting.getAttribute("id")); - options.put("value", - setting.getAttribute("value")); - } + if (!(childNode instanceof Element)) { + continue; + } + Element child = (Element) childNode; + if ("profile".equals(child.getNodeName())) { + if (CODE_FORMATTER_PROFILE.equals(child + .getAttribute("kind"))) { + NodeList settings = child.getChildNodes(); + int settingsSize = settings.getLength(); + for (int j = 0; j < settingsSize; j++) { + Node settingNode = settings.item(j); + if (!(settingNode instanceof Element)) { + continue; } - loadProfile = true; + Element setting = (Element) settingNode; + options.put("id", setting.getAttribute("id")); + options.put("value", + setting.getAttribute("value")); } + loadProfile = true; } } } From 4485659c232e904d103d33b32243461112085418 Mon Sep 17 00:00:00 2001 From: Alvaro Garcia Date: Mon, 5 May 2014 22:28:01 +0200 Subject: [PATCH 2/7] refactor: extract method to remove some duplication --- .../org/walkmod/javaformatter/writers/EclipseWriter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java index 95061f6..553e55e 100644 --- a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java +++ b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java @@ -171,9 +171,8 @@ private Map getOptionsFromConfigFile() { continue; } Element setting = (Element) settingNode; - options.put("id", setting.getAttribute("id")); - options.put("value", - setting.getAttribute("value")); + copyProperty("id", options, setting); + copyProperty("value", options, setting); } loadProfile = true; } @@ -195,6 +194,10 @@ private Map getOptionsFromConfigFile() { } } + private void copyProperty(String propertyName, Map options, Element setting) { + options.put(propertyName, setting.getAttribute(propertyName)); + } + @Override public String getContent(Object n, VisitorContext vc) { From 7ee7dad4db9e55dd4c7ed607e89f6ca95b65671d Mon Sep 17 00:00:00 2001 From: Alvaro Garcia Date: Sun, 11 May 2014 18:59:19 +0200 Subject: [PATCH 3/7] refactor: extract method for readability --- .../javaformatter/writers/EclipseWriter.java | 59 ++++++++++--------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java index 553e55e..fa7f820 100644 --- a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java +++ b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java @@ -151,33 +151,7 @@ private Map getOptionsFromConfigFile() { Element profilesElem = doc.getDocumentElement(); Map options = new HashMap(); if ("profiles".equals(profilesElem.getNodeName())) { - NodeList children = profilesElem.getChildNodes(); - boolean loadProfile = false; - int childSize = children.getLength(); - for (int i = 0; i < childSize && loadProfile; i++) { - Node childNode = children.item(i); - if (!(childNode instanceof Element)) { - continue; - } - Element child = (Element) childNode; - if ("profile".equals(child.getNodeName())) { - if (CODE_FORMATTER_PROFILE.equals(child - .getAttribute("kind"))) { - NodeList settings = child.getChildNodes(); - int settingsSize = settings.getLength(); - for (int j = 0; j < settingsSize; j++) { - Node settingNode = settings.item(j); - if (!(settingNode instanceof Element)) { - continue; - } - Element setting = (Element) settingNode; - copyProperty("id", options, setting); - copyProperty("value", options, setting); - } - loadProfile = true; - } - } - } + processProfiles(profilesElem, options); } return options; } catch (Exception e) { @@ -194,6 +168,37 @@ private Map getOptionsFromConfigFile() { } } + private void processProfiles(Element profilesElem, + Map options) { + NodeList children = profilesElem.getChildNodes(); + boolean loadProfile = false; + int childSize = children.getLength(); + for (int i = 0; i < childSize && loadProfile; i++) { + Node childNode = children.item(i); + if (!(childNode instanceof Element)) { + continue; + } + Element child = (Element) childNode; + if ("profile".equals(child.getNodeName())) { + if (CODE_FORMATTER_PROFILE.equals(child + .getAttribute("kind"))) { + NodeList settings = child.getChildNodes(); + int settingsSize = settings.getLength(); + for (int j = 0; j < settingsSize; j++) { + Node settingNode = settings.item(j); + if (!(settingNode instanceof Element)) { + continue; + } + Element setting = (Element) settingNode; + copyProperty("id", options, setting); + copyProperty("value", options, setting); + } + loadProfile = true; + } + } + } + } + private void copyProperty(String propertyName, Map options, Element setting) { options.put(propertyName, setting.getAttribute(propertyName)); } From e2de67bc29e29935e10f363301f30784f657457c Mon Sep 17 00:00:00 2001 From: Alvaro Garcia Date: Sun, 11 May 2014 19:01:27 +0200 Subject: [PATCH 4/7] refactor: extract then out of it to reduce indentation levels --- .../javaformatter/writers/EclipseWriter.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java index fa7f820..5fe25f2 100644 --- a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java +++ b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java @@ -179,22 +179,22 @@ private void processProfiles(Element profilesElem, continue; } Element child = (Element) childNode; - if ("profile".equals(child.getNodeName())) { - if (CODE_FORMATTER_PROFILE.equals(child - .getAttribute("kind"))) { - NodeList settings = child.getChildNodes(); - int settingsSize = settings.getLength(); - for (int j = 0; j < settingsSize; j++) { - Node settingNode = settings.item(j); - if (!(settingNode instanceof Element)) { - continue; - } - Element setting = (Element) settingNode; - copyProperty("id", options, setting); - copyProperty("value", options, setting); + if (!"profile".equals(child.getNodeName())) { + continue; + } + if (CODE_FORMATTER_PROFILE.equals(child.getAttribute("kind"))) { + NodeList settings = child.getChildNodes(); + int settingsSize = settings.getLength(); + for (int j = 0; j < settingsSize; j++) { + Node settingNode = settings.item(j); + if (!(settingNode instanceof Element)) { + continue; } - loadProfile = true; + Element setting = (Element) settingNode; + copyProperty("id", options, setting); + copyProperty("value", options, setting); } + loadProfile = true; } } } From 076035faaef468979eab2ded1ad292d597ea4277 Mon Sep 17 00:00:00 2001 From: Alvaro Garcia Date: Sun, 11 May 2014 19:02:02 +0200 Subject: [PATCH 5/7] refactor: extract method for legibility --- .../javaformatter/writers/EclipseWriter.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java index 5fe25f2..71c5232 100644 --- a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java +++ b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; @@ -137,13 +138,7 @@ private Map getOptionsFromConfigFile() { configInput = loader.getResourceAsStream(this.configFile); try { if (configInput == null) { - File file = new File(configFile); - if (file.exists()) { - configInput = new FileInputStream(file); - } else { - throw new WalkModException("Config file [" + configFile - + "] cannot be found"); - } + configInput = createConfigFileOrFail(configInput); } InputSource in = new InputSource(configInput); in.setSystemId(configFile); @@ -168,6 +163,18 @@ private Map getOptionsFromConfigFile() { } } + private InputStream createConfigFileOrFail(InputStream configInput) + throws FileNotFoundException { + File file = new File(configFile); + if (file.exists()) { + configInput = new FileInputStream(file); + } else { + throw new WalkModException("Config file [" + configFile + + "] cannot be found"); + } + return configInput; + } + private void processProfiles(Element profilesElem, Map options) { NodeList children = profilesElem.getChildNodes(); From 8bfbe2036063c84de36e1f8e5a2566a3c8609455 Mon Sep 17 00:00:00 2001 From: Alvaro Garcia Date: Sun, 11 May 2014 19:03:07 +0200 Subject: [PATCH 6/7] refactor: inline variable --- .../java/org/walkmod/javaformatter/writers/EclipseWriter.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java index 71c5232..69a6a3a 100644 --- a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java +++ b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java @@ -30,7 +30,6 @@ import org.eclipse.jdt.core.formatter.CodeFormatter; import org.eclipse.jface.text.IDocument; import org.eclipse.text.edits.TextEdit; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -142,8 +141,7 @@ private Map getOptionsFromConfigFile() { } InputSource in = new InputSource(configInput); in.setSystemId(configFile); - Document doc = DomHelper.parse(in); - Element profilesElem = doc.getDocumentElement(); + Element profilesElem = DomHelper.parse(in).getDocumentElement(); Map options = new HashMap(); if ("profiles".equals(profilesElem.getNodeName())) { processProfiles(profilesElem, options); From 02aa4a5d6233243a51fb151c3142d5ffac3c374d Mon Sep 17 00:00:00 2001 From: Alvaro Garcia Date: Sun, 11 May 2014 19:06:39 +0200 Subject: [PATCH 7/7] refactor: fail early & reduce indentation level --- .../javaformatter/writers/EclipseWriter.java | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java index 69a6a3a..3186ae3 100644 --- a/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java +++ b/src/main/java/org/walkmod/javaformatter/writers/EclipseWriter.java @@ -71,29 +71,28 @@ private String formatFile(String code) { log.debug("Eclipse formatter [ok]"); } } - if (formatter != null) { - te = formatter.format(CodeFormatter.K_COMPILATION_UNIT, code, 0, - code.length(), 0, String.valueOf('\n')); - if (te == null) { - log.warn("The source cannot be formatted with the selected configuration. Applying a default formatting"); - return code; - - } - IDocument doc = new org.eclipse.jface.text.Document(code); - try { - te.apply(doc); - } catch (Exception e) { - throw new WalkModException(e); - } - String formattedCode = doc.get(); - if (formattedCode == null || "".equals(formattedCode)) { - return code; - } - return formattedCode; - } else { + if (formatter == null) { throw new WalkModException( "Eclipse formatter cannot be initialized"); } + te = formatter.format(CodeFormatter.K_COMPILATION_UNIT, code, 0, + code.length(), 0, String.valueOf('\n')); + if (te == null) { + log.warn("The source cannot be formatted with the selected configuration. Applying a default formatting"); + return code; + + } + IDocument doc = new org.eclipse.jface.text.Document(code); + try { + te.apply(doc); + } catch (Exception e) { + throw new WalkModException(e); + } + String formattedCode = doc.get(); + if (formattedCode == null || "".equals(formattedCode)) { + return code; + } + return formattedCode; } /**