Auf Thema antworten

Doch wieder offen :D


zu 1.: Das hieße also, noch eine Standard-Implementierung für eine Table. Sinnvollerweise könnte ich dann die generische Klasse auch gleich noch abstrakt gestalten, dann kommt wenigstens keiner auf die dumme Idee, diese Klasse instanziieren zu wollen :D


zu 2.:

das sieht etwa so aus:

[code=Java]

    /**

     * Adds a single dataSet to the table.<br>

     * @param values

     * @throws IllegalArgumentException if the arguments do not match the tables metaData

     * @throws ArgumentNumberException if the number of values does not match the number of dataTypes inside the tables metaData

     */

    public void addRow(Object[] values) throws IllegalArgumentException, ArgumentNumberException {   

       

        if (values.length != this.metaData.size()) throw new ArgumentNumberException("Wrong number of arguments passed");

       

       

        String debugString = "Add new row to table {";

       

            // create an empty row

        Row row = new Row(this.metaData.toArray(new AttributeMetaData[0]));

        for (int i = 0; i < this.metaData.size(); i++) {

            // this may cause an IllegalArgumentException if the data does not match the rows metaData

            row.setValue(this.metaData.get(i).getName(), values[i]);

            debugString = debugString.concat("('" + this.metaData.get(i).getName() + "': " + values[i] + ")");

        }

       

        if (DEBUG) System.out.println(debugString+ "}");


        // if we get here everything went clear

        this.values.add((T) row);

       

    }[/code]

wobei AttributeMetaData eine Klasse zur Verwaltung je eines Names und des Datentyps in Form eines Class-Objektes darstellt. this.metaData ist eine Liste, die alle Attribute der Table beinhaltet und selbst vom Typ LinkedList<AttributeMetaData> ist...


Ich hoffe, du bist jetzt glücklich und wirst schlau daraus:toll:


Die Implementierung über Object[] erlaubt mir auch einen Aufruf, bei dem ich - vorrausgesetzt ich kenne die Ordnung und Datentypen der Attribute - diese Angaben nicht jedes Mal erst dazuschreiben muss, ähnlich einem [code=sql]Insert into <tabelle> values(...)[/code]



Oben