/**
 * This is about <code>ClassName</code>.
 * {@link com.yourCompany.aPackage.Interface}
 * @author author
 * @deprecated use <code>OtherClass</code>
 */
public class ClassName<E> implements Interface<String> {
	enum Color { RED, GREEN, BLUE };
	/* This comment may span multiple lines. */
	static Object staticField;
	// This comment may span only this line
	private E field;
	// TASK: refactor
	@SuppressWarnings(value="all")
	public int foo(Integer parameter) {
		abstractMethod();
		int local= 42*hashCode();
		staticMethod();
		return bar(local) + parameter;
	}
}