/**
* Licensed to JumpMind Inc under one or more contributor
* license agreements. See the NOTICE file distributed
* with this work for additional information regarding
* copyright ownership. JumpMind Inc licenses this file
* to you under the GNU General Public License, version 3.0 (GPLv3)
* (the "License"); you may not use this file except in compliance
* with the License.
*
* You should have received a copy of the GNU General Public License,
* version 3.0 (GPLv3) along with this library; if not, see
* <http://www.gnu.org/licenses/>.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jumpmind.symmetric.tool;
import java.io.File;
import java.util.Collection;
import org.apache.commons.io.FileUtils;
public class RefactorTool {
public static void main(String[] args) throws Exception {
File dir = new File(System.getProperty("user.dir")).getParentFile();
Collection<File> files = FileUtils.listFiles(dir, new String[] { "java" }, true);
for (File file : files) {
if (file.getAbsolutePath().contains("/symmetric-")) {
System.out.println("Refactoring file: " + file.getName());
StringBuilder contents = new StringBuilder(FileUtils.readFileToString(file));
if (refactor(contents)) {
FileUtils.write(file, contents.toString());
}
}
}
}
protected static boolean refactor(StringBuilder contents) {
boolean refactored = false;
String[] lines = contents.toString().split("\n");
contents.setLength(0);
int logmode = 0;
for (String line : lines) {
if (line.contains("log.") || line.contains("logger.")) {
logmode = 4;
}
if (!line.contains("String.format") && logmode > 0) {
refactored = true;
line = line.replace("%s", "{}");
line = line.replace("%d", "{}");
logmode--;
} else {
logmode =0;
}
contents.append(line);
contents.append("\n");
}
contents.substring(0, contents.length()-1);
return refactored;
}
}