package fr.lteconsulting.hexa.databinding.annotation.processor; import java.io.InputStream; import java.util.Scanner; public class Template { private String value; public static Template fromResource( String path ) { Template result = new Template(); result.value = readResource( path ); return result; } public static Template fromResource( String path, int index ) { Template result = new Template(); result.value = readResource( path, index ); return result; } public Template replace( String target, String replacement ) { value = value.replace( target, replacement ); return this; } @Override public String toString() { return value; } private static String readResource( String path ) { InputStream is = Template.class.getClassLoader().getResourceAsStream( path ); Scanner s = new Scanner( is ); s.useDelimiter( "\\A" ); String result = s.hasNext() ? s.next() : ""; s.close(); return result; } private static String readResource( String path, int index ) { InputStream is = Template.class.getClassLoader().getResourceAsStream( path ); if( is == null ) throw new RuntimeException( "Not found resource " + path ); Scanner s = new Scanner( is ); s.useDelimiter( "------" ); String result; int i = -1; do { if( !s.hasNext() ) { result = ""; break; } result = s.next(); i++; } while( i < index ); s.close(); return result; } }