package ru.naumen.gintonic.templates; import java.util.*; import ru.naumen.gintonic.utils.StringUtils; public class ProviderMethodTemplate { protected static String nl; public static synchronized ProviderMethodTemplate create(String lineSeparator) { nl = lineSeparator; ProviderMethodTemplate result = new ProviderMethodTemplate(); nl = null; return result; } public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; protected final String TEXT_1 = " " + NL + "" + NL + "@SuppressWarnings(\"unused\")" + NL + "@Provides"; protected final String TEXT_2 = NL; protected final String TEXT_3 = " " + NL + "private "; protected final String TEXT_4 = " provide"; protected final String TEXT_5 = "(){" + NL + "\t"; protected final String TEXT_6 = " "; protected final String TEXT_7 = " = new "; protected final String TEXT_8 = "();" + NL + "\treturn "; protected final String TEXT_9 = ";" + NL + "} "; public String generate(Object argument) { final StringBuffer stringBuffer = new StringBuffer(); Map<String, String> map = (Map<String, String>) argument; stringBuffer.append(TEXT_1); stringBuffer.append(TEXT_2); stringBuffer.append( map.get("annotation") == null ? "" : map.get("annotation") ); stringBuffer.append(TEXT_3); stringBuffer.append( map.get("type") ); stringBuffer.append(TEXT_4); stringBuffer.append( StringUtils.capitalize(map.get("variablename")) ); stringBuffer.append(TEXT_5); stringBuffer.append( map.get("type") ); stringBuffer.append(TEXT_6); stringBuffer.append( map.get("variablename") ); stringBuffer.append(TEXT_7); stringBuffer.append( map.get("type") ); stringBuffer.append(TEXT_8); stringBuffer.append( map.get("variablename") ); stringBuffer.append(TEXT_9); return stringBuffer.toString(); } }