Ik ben momenteel de mogelijkheden aan het bekijken om op een effectieve manier een hierarchische groupering van objecten te maken. In feite kan je de relatie zien als een 1-N relatie. De grouperingscriteria liggen niet vast, aangezien dezen afhangen van het type die het object met zich mee draagt.
Het gaat om transacties, die gegroepeerd moeten worden afhankelijk van het type van transactie. Ieder type heeft zo zijn eigen groeperingsregels.
Een internationale transactie dient bijvoorbeeld gegroepeerd te worden op uitvoeringsdatum en bestemmeling, opgedeeld in batches van 25.
Een mogelijke oplossing lijkt me om een Factory te creeëren, die afhankelijk van het type transactie, de juiste batch-creator (die de typische regels implementeerd) returneerd. Deze batch-creator gaat alle transacties opnemen en teruggeven in een Collection van List's.
De batch-creator zal dan een comparator implementatie moeten bevatten die de sortering voor zijn rekening neemt; de hele lijst van transacties sorteerd om hier vervolgens over te itereren en de opsplitsing te maken. Indien >25 of verschillende type gevonden bij het itereren, maak een nieuwe List aan en voeg deze toe aan de algemene Collection.
Ik ben er nog niet uit op welke wijze ik dit het best kan implementeren. De lijsten met objecten die gegroepeerd moeten worden zullen groot zijn (tussen 1.000-10.000); dus een efficient algoritme is wel aangeraden; en denk dat er wel efficientere mogelijkheden zijn, dan wat ik totnutoe verzonnen heb?
Het gaat om transacties, die gegroepeerd moeten worden afhankelijk van het type van transactie. Ieder type heeft zo zijn eigen groeperingsregels.
Een internationale transactie dient bijvoorbeeld gegroepeerd te worden op uitvoeringsdatum en bestemmeling, opgedeeld in batches van 25.
Een mogelijke oplossing lijkt me om een Factory te creeëren, die afhankelijk van het type transactie, de juiste batch-creator (die de typische regels implementeerd) returneerd. Deze batch-creator gaat alle transacties opnemen en teruggeven in een Collection van List's.
De batch-creator zal dan een comparator implementatie moeten bevatten die de sortering voor zijn rekening neemt; de hele lijst van transacties sorteerd om hier vervolgens over te itereren en de opsplitsing te maken. Indien >25 of verschillende type gevonden bij het itereren, maak een nieuwe List aan en voeg deze toe aan de algemene Collection.
Ik ben er nog niet uit op welke wijze ik dit het best kan implementeren. De lijsten met objecten die gegroepeerd moeten worden zullen groot zijn (tussen 1.000-10.000); dus een efficient algoritme is wel aangeraden; en denk dat er wel efficientere mogelijkheden zijn, dan wat ik totnutoe verzonnen heb?