org.abora.white.spaces.unordered
Class IdentityDsp

java.lang.Object
  |
  +--org.abora.white.xpp.basic.Heaper
        |
        +--org.abora.white.spaces.basic.Mapping
              |
              +--org.abora.white.spaces.basic.Dsp
                    |
                    +--org.abora.white.spaces.unordered.IdentityDsp
Direct Known Subclasses:
FilterDsp, HeaperDsp, RealDsp

public abstract class IdentityDsp
extends Dsp

An implementation sharing convenience for Dsp classes which only provide the identity mapping functionality for their coordinate spaces. This provides everything except the coordinate space itself (which must be provided by the subclass). Will eventually be declared NOT_A_TYPE, so don''t use it in type declarations.

Assumes that if a given space uses it as its identity Dsp, then the one cached instance will be the only identity Dsp for that space. I.e., I do equality comparison as an EQ object. If this assumpsion isn''t true, please override isEqual and hashForEqual. See PathDsp.

IdentityDsp is in module "unorder" because typically unordered spaces will only have an identity Dsp and so want to subclass this class. Non-unordered spaces should also feel free to use this as appropriate.


Constructor Summary
protected IdentityDsp()
           
protected IdentityDsp(Rcvr rcvr)
           
 
Method Summary
 int actualHashForEqual()
          Defined by subclasses to produce the value returned by hashForEqual.
 Dsp compose(Dsp other)
          Return the composition of the two Dsps.
abstract  CoordinateSpace coordinateSpace()
          the coordinate space of the domain and range of the Dsp
 Mapping inverse()
          Return the inverse of this transformation.
 Dsp inverseCompose(Dsp other)
          Return the composition of my inverse with the other.
 Position inverseOf(Position pos)
          Since Dsps always represent a unique mapping in either direction, the permission to BLAST in the Mapping constract no longer applies.
 XnRegion inverseOfAll(XnRegion reg)
          Inverse transform a region.
 boolean isEqual(Heaper other)
          Return true if the two objects are equal.
 boolean isIdentity()
          Says whether this Dsp maps every Position onto itself
 Dsp minus(Dsp other)
          Return the difference of the two Dsps.
 Position of(Position pos)
          Since Dsps always represent a unique mapping in either direction, the permission to BLAST in the Mapping constract no longer applies.
 XnRegion ofAll(XnRegion reg)
          If 'reg' is a simple region, then the result must also be simple
 void printOn(java.io.PrintWriter oo)
          This should rarely be overridden.
 
Methods inherited from class org.abora.white.spaces.basic.Dsp
appliedAfter, domain, fetchCombine, fetchDsp, isComplete, preCompose, range, rangeSpace, restrict, restrictRange, simpleMappings, simpleRegionMappings, transformedBy
 
Methods inherited from class org.abora.white.spaces.basic.Mapping
combine, domainSpace, info, inverseOfInt, make, make, make, ofInt, simplerMappings, unrestricted
 
Methods inherited from class org.abora.white.xpp.basic.Heaper
destroy, destruct, equals, hashForEqual, printContentsOn, sendSelfTo, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IdentityDsp

protected IdentityDsp()

IdentityDsp

protected IdentityDsp(Rcvr rcvr)
Method Detail

inverseOf

public Position inverseOf(Position pos)
Description copied from class: Dsp
Since Dsps always represent a unique mapping in either direction, the permission to BLAST in the Mapping constract no longer applies. a->inverseOf(b) ->isEqual (a->inverse()->of(b))

Overrides:
inverseOf in class Dsp

inverseOfAll

public XnRegion inverseOfAll(XnRegion reg)
Description copied from class: Dsp
Inverse transform a region. A simple region must yield a simple region. a->inverseOfAll(b) ->isEqual (a->inverseAll()->of(b))

Overrides:
inverseOfAll in class Dsp

of

public Position of(Position pos)
Description copied from class: Dsp
Since Dsps always represent a unique mapping in either direction, the permission to BLAST in the Mapping constract no longer applies.

Overrides:
of in class Dsp

ofAll

public XnRegion ofAll(XnRegion reg)
Description copied from class: Dsp
If 'reg' is a simple region, then the result must also be simple

Specified by:
ofAll in class Dsp

compose

public Dsp compose(Dsp other)
Description copied from class: Dsp
Return the composition of the two Dsps. Two Dsps of the same space are always composable. (a->compose(b) ->minus(b))->isEqual (a) (a->compose(b) ->of(pos))->isEqual (a->of (b->of (pos))

Specified by:
compose in class Dsp

inverse

public Mapping inverse()
Description copied from class: Dsp
Return the inverse of this transformation. Considering the Dsp as a set of pairs (see class comment), return the Dsp which has the mirror image of all my pairs.

Specified by:
inverse in class Dsp

inverseCompose

public Dsp inverseCompose(Dsp other)
Description copied from class: Dsp
Return the composition of my inverse with the other. a->inverseCompose(b) ->isEqual (a->inverse()->compose(b))

Overrides:
inverseCompose in class Dsp

minus

public Dsp minus(Dsp other)
Description copied from class: Dsp
Return the difference of the two Dsps. (a->compose(b) ->minus(b))->isEqual (a)

Specified by:
minus in class Dsp

printOn

public void printOn(java.io.PrintWriter oo)
Description copied from class: Heaper
This should rarely be overridden. In Tofu, it prints ClassName(...), where ... is either produced by printInsideOn or is ??? if printInsideOn it not overridden.

Overrides:
printOn in class Heaper

isIdentity

public boolean isIdentity()
Description copied from class: Dsp
Says whether this Dsp maps every Position onto itself

Specified by:
isIdentity in class Dsp

coordinateSpace

public abstract CoordinateSpace coordinateSpace()
Description copied from class: Dsp
the coordinate space of the domain and range of the Dsp

Specified by:
coordinateSpace in class Dsp

actualHashForEqual

public int actualHashForEqual()
Description copied from class: Heaper
Defined by subclasses to produce the value returned by hashForEqual.

Overrides:
actualHashForEqual in class Mapping

isEqual

public boolean isEqual(Heaper other)
Description copied from class: Heaper
Return true if the two objects are equal.

Specified by:
isEqual in class Heaper


Copyright © 2003 David G Jones. All Rights Reserved.
Original Udanax-Gold - Copyright © 1979-1999 Udanax.com. All rights reserved.