* Die Funktion liefert nie NULL sondern hoechstens leere Properties.
* @throws RemoteException
*/
public static TypedProperties getBPD(Konto konto, String query) throws RemoteException
{
final TypedProperties props = new HBCITypedProperties();
// Konto angegeben?
if (konto == null || query == null || query.length() == 0)
return props;
// Kundennummer korrekt?
String kd = konto.getKundennummer();
if (kd == null || kd.length() == 0 || !kd.trim().matches("[0-9a-zA-Z]{1,30}"))
return props;
// Wir haengen noch unseren Prefix vorn dran. Der wurde vom Callback hinzugefuegt
query = "bpd." + kd.trim() + "." + query;
// Wir sortieren aufsteigend, da es pro BPD-Set (z.Bsp. in "%UebPar%") mehrere
// gibt (jeweils pro Segment-Version). HBCI4Java nimmt bei Geschaeftsvorfaellen
// immer die hoechste verfuegbare Segment-Version. Also machen wir das hier auch
Settings.getDBService().execute("select name,content from property where name like ? order by name",new String[]{query},new ResultSetExtractor()
{
public Object extract(ResultSet rs) throws RemoteException, SQLException
{
while (rs.next())
{
String name = rs.getString(1);
String value = rs.getString(2);
if (name == null || value == null) continue;
// Wir trimmen noch den Prefix aus dem Namen raus
name = name.substring(name.lastIndexOf('.')+1);
props.put(name,value);
}
return null;
}
});