New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Im Browser öffnen: intelligente Ersetzungslogik für Ticker, ISIN und WKN #740
Conversation
Hi @sunnylars, Vielen Dank für den Change! Ich bin allerdings nicht ganz glücklich, dass sich das Verhalten ändert. Bisher konnte man einfach eine URL konstruieren, in der sowohl der Name als auch die ISIN enthalten war. Ich weiß nicht wie oft / häufig das verwendet wird, aber ich sehe auch keine Grund warum man das jetzt ändern sollte. Könnte man nicht sowas machen? Mit dem "Komma-Syntax" ist dann auch die "eines dieser Werte" Semantik klar. |
|
||
|
||
|
||
types.put("{tickerSymbol}", "getTickerSymbol"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Warum keine Lambda Function? Per Reflection geht auch, aber man bekommt keine Compilefehler mehr, kann nicht in der IDE umbenennen.
Sowas wie
Map<String, Function<Security, String>> types = new HashMap<>();
types.put("isin", Security::getIsin);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ich muss gestehen, gehört habe ich schon von Lambda Functions, aber beruflich arbeite ich mit Java 7.
Aber ich lerne gerne, ich schaue mir das an und baue es um.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vielleicht ist es auch einfacher die Werte direkt in die Map zu setzen - statt den Umweg über die Methode. Es ist ja nicht so als wären das teuere Methodenaufrufe die man nur machen möchte wenn tatsächlich eine Ersetzung stattfindet. Die Werte sind ja da. 😄
} | ||
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) | ||
{ | ||
e.printStackTrace(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Die Exceptions würde ich in RuntimeExcepition verpacke und weiterwerfen. Ich weiß in dem "name.abuchen.portfolio" Bundle kann man nicht einfach Fehler loggen. Aber die StackTrace mit printStackTrace landen quasi im Nirwana (der err output stream wird in eine Datei in den Configuration Folder umgeleitet). Dann lieber werfen und das UI Modul loggt einen Fehler.
Und: vermutlich fallen die alle weg wenn man die Reflection ausbaut.
} | ||
|
||
if(!replacementDone){ | ||
url = pattern.replace("{tickerSymbol}", encode("")); //$NON-NLS-1$ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ist das nicht doppelt? Wenn es pattern gibt, dann dürfte das doch hier nicht mehr ersetzt werden können?
url = url.replace("{isin}", encode("")); //$NON-NLS-1$ | ||
url = url.replace("{wkn}", encode("")); //$NON-NLS-1$ | ||
url = url.replace("{name}", encode("")); //$NON-NLS-1$ | ||
if(security.getTickerSymbol() != null && security.getTickerSymbol().length()>0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ich würde die "magic" weglassen. Wenn man kein Pattern angibt, dann ist eben auch Wert in der URL. Einfach Werte hinten an die URL hängen finde ich zu "magic".
Issue: #740 Signed-off-by: Lars Hercher <it@larshercher.de> [cherry-picked and squashed commits] Signed-off-by: Andreas Buchen <andreas.buchen@gmail.com>
Hi @sunnylars, die Änderung ist drin - siehe e235583 👍 Ich habe noch einen kleinen Change hinterher geschoben:
|
Und weil wir gerade dran waren: Ich habe noch die Möglichkeit eingebaut, dass man auch beliebige Attribute der Wertpapiere für die Ersetzung nutzen kann. Das ging relative einfach weil Du die generische Ersetzungslogik gebaut hast. |
Ok, danke Dir. Sieht gut aus. Besonders das mit dem Kontextmenu gefällt mir. |
Im Browser öffnen: intelligente Ersetzungslogik für Ticker, ISIN und WKN
Die Reihenfolge der {} in dem Bookmark bestimmt die Priorität. Die erste Ersetzung, die in der Security einen Wert hat, wird genommen, alle weiteren verworfen.
Falls keine Ersetzung statt gefunden hat, wird der erste Wert in der Reihenfolge Ticker,Isin,wnk und Name, der in Security befüllt ist, hinten an die Url gehängt.
p.s.: ich bin 1. git und 2. github neuling. falls irgendwelche fehler hier sind, bitte einfach bescheid geben.