blob: 92286adb2bbf4bd148bb37684896dcd694d5445c [file] [log] [blame]
package de.neze.bugreport.eclipse;
//Code generator imported: import de.neze.bugreport.eclipse.GeneralConcept.Item;
//Code generator imported: import de.neze.bugreport.eclipse.GeneralConcept.Problem;
/**
* Feature Missing in Eclispe M5:
*
* I like to write code like as noted below, and it seams that eclispe
* handling of ambigouse inner class names is suboptimal during codeassistance.
* And the code formater has problems with disambigouated names.
* Note: The exampe below is optimzed for shortness and that make it look a
* little bit stupid, but "real world" exmples are much longer .. .
*/
public abstract class AssistMyStyle {
public static final class Problem extends Exception {
}
public static final class Item {
}
public static interface Factory {
AssistMyStyle newAssistMyStyle() throws Problem;
}
abstract Item someMethod() throws Problem;
}
/**
* and
*/
interface GeneralConcept {
public static final class Problem extends Exception {
}
public static final class Item {
}
abstract Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()
throws Problem;
}
/**
* ... and as a result I have many inner classes with the names
* "Problem", "Factory" or "Item".
* Now I Use code completation to procduce method stubs and got errors
* as note in the method comments below.
* I use "Automatically add import instead of qualified name" in
* Window > Preferences > Java > Editor > Code Assist:
*/
class AssistMyStyleImpl extends AssistMyStyle implements GeneralConcept {
public static final class Factory implements AssistMyStyle.Factory {
public AssistMyStyle newAssistMyStyle() {
return new AssistMyStyleImpl();
}
}
/**
* <pre>
* Item someMethod() throws Problem {
* return null;
* }
* </pre>
* Implies errors:
* [1] The exception type Problem is ambiguous for the method someMethod
* [2] The return type Item is ambiguous for the method someMethod
* I fix this:
*/
AssistMyStyle.Item someMethod() throws AssistMyStyle.Problem {
return null;
}
/**
* anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()
* <pre>
* public Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()
* throws Problem {
* // XXX Auto-generated method stub
* return null;
* }
* </pre>
* Implies error:
* [1] The exception type Problem is ambiguous for the method
* anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()
* [2] The return type Item is ambiguous for the method
* anotherMethodWithLongNameToForceCodeformaterToBreakTheLine
* I fix this and used code format (looks ugly!!!!):
*/
public GeneralConcept.Item anotherMethodWithLongNameToForceCodeformaterToBreakTheLine()
throws GeneralConcept.Problem {
return null;
}
}