sysout which expands to  System.out.println();. All you have to do is type sysout followed by Ctrl+Space to insert the statement into your Java source file.
To see what templates are defined in Eclipse:
- Open your Preferences dialog by going to Windows > Preferences
 - On the navigation tree on the left, go to Java > Editor > Templates
 - You will see a list of pre-defined templates
 - You can add new ones by pressing the "New..." button
 
| Name | if | 
| Context | Java statements | 
| Description | if null | 
| Pattern | |
if (${var} == null){
    ${cursor}
}
 | |
| Name | if | 
| Context | Java statements | 
| Description | if not null | 
| Pattern | |
if (${var} != null){
    ${cursor}
}
 | |
| Name | for | 
| Context | Java statements | 
| Description | iterate over map | 
| Pattern | |
${:import(java.util.Map.Entry)}
for(Entry<${key:argType(map,0)},${value:argType(map,1)}> entry :
                    ${map:var(java.util.Map)}.entrySet()) {
    ${key} key = entry.getKey();
    ${value} value = entry.getValue();
    ${cursor}
}
 | |
| Name | strf | 
| Context | Java | 
| Description | format string | 
| Pattern | |
String.format("${word_selection}${}",${var}${cursor})
 | |
| Name | sysf | 
| Context | Java statements | 
| Description | print formatted string to standard out | 
| Pattern | |
System.out.printf("${word_selection}${}",${var}${cursor});
 | |
| Name | static_final | 
| Context | Java type members | 
| Description | static final field | 
| Pattern | |
${visibility:link(
              public,
              protected,
              private)} static final ${type} ${NAME} = ${word_selection}${};
 | |
The following templates are useful for reading or writing files. They use Java 7 features such as try-with-resources to automatically close files. They also use methods from NIO2.0 to obtain a buffered reader and read the file.
| Name | readfile | 
| Context | Java statements | 
| Description | read text from file | 
| Pattern | |
${:import(java.nio.file.Files,
          java.nio.file.Paths,
          java.nio.charset.Charset,
          java.io.IOException,
          java.io.BufferedReader)}
try (BufferedReader in = Files.newBufferedReader(Paths.get(${fileName:var(String)}),
                                                 Charset.forName("UTF-8"))) {
    String line = null;
    while ((line = in.readLine()) != null) {
        ${cursor}
    }
} catch (IOException e) {
    // ${todo}: handle exception
}
 | |
| Name | readfile | 
| Context | Java statements | 
| Description | read all lines from file as a list | 
| Pattern | |
${:import(java.nio.file.Files,
          java.nio.file.Paths,
          java.nio.charset.Charset,
          java.util.List,
          java.util.ArrayList)}
Lis<String> lines = new ArrayList<>();
try{
	lines = Files.readAllLines(Paths.get(${fileName:var(String)}),
                                        Charset.forName("UTF-8"));
}catch (IOException e) {
    // ${todo}: handle exception
}
${cursor}
 | |
| Name | writefile | 
| Context | Java statements | 
| Description | write text to file | 
| Pattern | |
${:import(java.nio.file.Files,
          java.nio.file.Paths,
          java.nio.Charset,
          java.io.IOException,
          java.io.BufferedWriter)}
try (BufferedWriter out = Files.newBufferedWriter(Paths.get(${fileName:var(String)}),
                                                  Charset.forName("UTF-8"))) {
    out.write(${string:var(String)});
    out.newLine();
    ${cursor}
} catch (IOException e) {
    // ${todo}: handle exception
}
 | |
The following templates are used to read xml files or strings and return a DOM.
| Name | parsexml | 
| Context | Java statements | 
| Description | parse xml file as Document | 
| Pattern | |
${:import(org.w3c.dom.Document,
          javax.xml.parsers.DocumentBuilderFactory,
          java.io.File,
          java.io.IOException,
          javax.xml.parsers.ParserConfigurationException,
          org.xml.sax.SAXException)}
Document doc = null;
try {
	doc = DocumentBuilderFactory.newInstance()
			.newDocumentBuilder()
			.parse(new File(${filename:var(String)}));
} catch (SAXException | IOException | ParserConfigurationException e) {
	// ${todo}: handle exception
}
${cursor}
 | |
| Name | parsexml | 
| Context | Java statements | 
| Description | parse xml string as Document | 
| Pattern | |
${:import(org.w3c.dom.Document,
          javax.xml.parsers.DocumentBuilderFactory,
          org.xml.sax.InputSource,
          java.io.StringReader,
          java.io.IOException,
          javax.xml.parsers.ParserConfigurationException,
          org.xml.sax.SAXException)}
Document doc = null;
try {
	doc = DocumentBuilderFactory.newInstance()
			.newDocumentBuilder()
			.parse(new InputSource(new StringReader(${str:var(String)})));
} catch (SAXException | IOException | ParserConfigurationException e) {
	// ${todo}: handle exception
}
${cursor}
 | |
The templates below are useful for creating a logger and logging messages. I use SLF4J, but they could easily be tweaked to use any other logging framework.
| Name | logger | 
| Context | Java type members | 
| Description | create new logger | 
| Pattern | |
${:import(org.slf4j.Logger,
          org.slf4j.LoggerFactory)}
private static final Logger LOGGER =
       LoggerFactory.getLogger(${enclosing_type}.class);
 | |
| Name | logd | 
| Context | Java statements | 
| Description | logger debug | 
| Pattern | |
if(LOGGER.isDebugEnabled())
     LOGGER.debug(${word_selection}${});
${cursor}
 | |
| Name | logi | 
| Context | Java statements | 
| Description | logger info | 
| Pattern | |
LOGGER.info(${word_selection}${});
${cursor}
 | |
| Name | logerr | 
| Context | Java statements | 
| Description | logger error | 
| Pattern | |
LOGGER.error(${word_selection}${}, ${exception_variable_name});
 | |
| Name | logthrow | 
| Context | Java statements | 
| Description | log error and throw exception | 
| Pattern | |
LOGGER.error(${word_selection}${}, ${exception_variable_name});
throw ${exception_variable_name};
${cursor}
 | |
The templates below assist in writing JUnit tests.
| Name | before | 
| Context | Java type members | 
| Description | junit before method | 
| Pattern | |
${:import (org.junit.Before)}
@Before
public void setUp() {
    ${cursor}
}
 | |
| Name | after | 
| Context | Java type members | 
| Description | junit after method | 
| Pattern | |
${:import (org.junit.After)}
@After
public void tearDown() {
    ${cursor}
}
 | |
| Name | beforeclass | 
| Context | Java type members | 
| Description | junit beforeclass method | 
| Pattern | |
${:import (org.junit.BeforeClass)}
@BeforeClass
public static void oneTimeSetUp() {
    // one-time initialization code
    ${cursor}
}
 | |
| Name | afterclass | 
| Context | Java type members | 
| Description | junit afterclass method | 
| Pattern | |
${:import (org.junit.AfterClass)}
@AfterClass
public static void oneTimeTearDown() {
    // one-time cleanup code
    ${cursor}
}
 | |
Thank you!
ReplyDeleteThank you, this was quite helpful :)
ReplyDeleteJava 8? :)
ReplyDelete