/** * Copyright (c): Uwe Schmidt, FH Wedel * * You may study, modify and distribute this source code * FOR NON-COMMERCIAL PURPOSES ONLY. * This copyright message has to remain unchanged. * * Note that this document is provided 'as is', * WITHOUT WARRANTY of any kind either expressed or implied. */ /** $Id: Ordering.java,v 1.3 2007-01-02 17:49:58 uwe Exp $ * * @author Uwe Schmidt * * eine Schnittstelle fuer eine * totale Ordnung * * Die Namensgebung ist an Fortran angelehnt: * eq : == * ne : != * ge : >= * gr : > * le : <= * lt : < * * die Beziehungen zwischen den Operatoren * koennen in dieser Schnittstelle nicht festgelegt * werden, z.B.: * * a != b <==> ! ( a == b ) * a > b <==> ( a >= b && a != b) * a <= b <==> ! ( a > b ) * a < b <==> ! ( a >= b ) * * diese muessen in jeder implementierenden Klasse * neu definiert werden * * mit einer abstrakten Klasse, in der * z.B. nur die Implementierung fuer == und >= * offen bleiben und die anderen hierauf zurueckgefuehrt * werden, waere dies moeglich. * * Dann wird aber die Implementierung von ADTs * durch Beerben allgemeiner Klassen verhindert, * da keine Mehrfachvererbung zugelassen ist. * * Eine abstrakte Klasse kann zu dieser Schnittstelle * ohne Schwierigkeiten angegeben werden * */ //-------------------- public interface Ordering { boolean eq(Object v2); boolean ne(Object v2); boolean ge(Object v2); boolean gr(Object v2); boolean le(Object v2); boolean lt(Object v2); } //--------------------