org.rubato.math.yoneda
Class ColimitDenotator

java.lang.Object
  extended by org.rubato.math.yoneda.AbstractConnectableYoneda
      extended by org.rubato.math.yoneda.Denotator
          extended by org.rubato.math.yoneda.ColimitDenotator
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Denotator>, java.lang.Iterable<Denotator>, Connectable, FactorDenotator, Yoneda

public final class ColimitDenotator
extends Denotator
implements FactorDenotator

Colimit denotator class.

Author:
Gérard Milmeister, Stefan Müller, Stefan Göller
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.rubato.math.yoneda.Yoneda
COLIMIT, LIMIT, LIST, POWER, SIMPLE
 
Constructor Summary
ColimitDenotator(NameDenotator name, ColimitForm form, int index, Denotator deno)
          Creates a colimit denotator that gets its address from the factor denotator.
ColimitDenotator(NameDenotator name, Module address, ColimitForm form, int index, Denotator deno)
          Creates a colimit denotator.
 
Method Summary
 boolean _is_valid()
          Returns true iff this denotator is correctly built.
static ColimitDenotator _make_unsafe(NameDenotator name, Module address, ColimitForm form, int index, Denotator d)
          Creates a new limit denotator without checking whatsoever.
 boolean appendFactor(Denotator d)
          Appends, if possible, the factor d.
 Denotator at(ModuleElement element)
          If not null-addressed returns a new denotator evaluated at address element.
 Denotator changeAddress(Module newAddress)
          Makes an address change.
 Denotator changeAddress(ModuleMorphism morphism)
          Makes an address change using a module morphism.
 boolean check()
          Returns true iff this denotator is consistent.
 int compareTo(ColimitDenotator other)
          Compares two colimit denotators.
 int compareTo(Denotator object)
           
 ColimitDenotator copy()
          Returns a deep copy of this denotator.
 boolean equals(ColimitDenotator other)
          Checks denotators of the same type for equality.
 boolean equals(java.lang.Object object)
          Checks for equality.
static ColimitDenotator fromXML(XMLReader reader, org.w3c.dom.Element element)
          Reads XML representation from reader starting with element.
 ColimitForm getColimitForm()
          Returns the form of the denotator.
 Denotator getFactor()
          Returns the sole factor of the colimit denotator.
 Denotator getFactor(int i)
          Returns the factor in position i.
 int getFactorCount()
          Returns the number of coordinates of the denotator.
 java.util.List<Denotator> getFactors()
          Returns a list of the factors of the denotator.
 IndexMorphismMap getFrameIndexMorphismMap()
           
 int getIndex()
          Returns the index of the factor contained in a colimit denotator.
 IndexMorphismMap getIndexMorphismMap()
           
 java.lang.String getLabel()
          Returns the index label of the factor contained in a colimit denotator.
 int getType()
          Returns the type of the denotator.
 boolean isConstant()
          Returns true iff this is ultimately a constant denotator, regardless of its address.
 java.util.Iterator<Denotator> iterator()
          Returns an iterator over the factors.
 Denotator namedCopy(NameDenotator name)
          Makes a shallow copy this denotator and gives it the specified name.
 void setFactor(int i, Denotator d)
          Sets the factor d in position i.
 void setFactor(java.lang.String label, Denotator d)
          Sets the factor d at the given label.
 void toXML(XMLWriter writer)
           
 
Methods inherited from class org.rubato.math.yoneda.Denotator
atNull, clone, display, display, formEquals, get, getAddress, getCoordinate, getDependencies, getElement, getForm, getFrameCoordinate, getModuleMorphism, getName, getNameString, hasForm, hashCode, map, nameCompareTo, nameEquals, nullAddressed, replace, resolveReferences, setName, setNameString, toString
 
Methods inherited from class org.rubato.math.yoneda.AbstractConnectableYoneda
getConnector, setConnector
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ColimitDenotator

public ColimitDenotator(NameDenotator name,
                        Module address,
                        ColimitForm form,
                        int index,
                        Denotator deno)
                 throws RubatoException
Creates a colimit denotator.

Parameters:
name - the name of the denotator
address - the address of the denotator
form - the form of the denotator
index - the index within the colimit form
deno - the factor of the denotator at the given index
Throws:
RubatoFormException
RubatoException

ColimitDenotator

public ColimitDenotator(NameDenotator name,
                        ColimitForm form,
                        int index,
                        Denotator deno)
                 throws RubatoException
Creates a colimit denotator that gets its address from the factor denotator.

Parameters:
name - the name of the denotator
form - the form of the denotator
index - the index within the colimit form
deno - the factor of the denotator at the given index
Throws:
RubatoFormException
RubatoException
Method Detail

getType

public int getType()
Returns the type of the denotator.

Specified by:
getType in class Denotator
Returns:
type as an integer

namedCopy

public Denotator namedCopy(NameDenotator name)
Description copied from class: Denotator
Makes a shallow copy this denotator and gives it the specified name.

Specified by:
namedCopy in class Denotator

at

public Denotator at(ModuleElement element)
             throws MappingException
If not null-addressed returns a new denotator evaluated at address element. If null-addressed, returns self.

Specified by:
at in class Denotator
Parameters:
element - address
Returns:
evaluated denotator
Throws:
MappingException - if evaluation fails

changeAddress

public Denotator changeAddress(Module newAddress)
Description copied from class: Denotator
Makes an address change.

Specified by:
changeAddress in class Denotator
Parameters:
newAddress - the new address of the denotator
Returns:
a copy of this denotator with the new address or null if address change fails

changeAddress

public Denotator changeAddress(ModuleMorphism morphism)
Description copied from class: Denotator
Makes an address change using a module morphism.

Specified by:
changeAddress in class Denotator
Parameters:
morphism - the address changing morphism
Returns:
a copy of this denotator with the new address or null if address change fails

getColimitForm

public ColimitForm getColimitForm()
Returns the form of the denotator.


getFactorCount

public int getFactorCount()
Returns the number of coordinates of the denotator.

Specified by:
getFactorCount in interface FactorDenotator
Returns:
number of coordinates

getFactor

public Denotator getFactor(int i)
Returns the factor in position i. In this case, always returns the sole factor of the colimit denotator.

Specified by:
getFactor in interface FactorDenotator
Parameters:
i - factor i denotator
Returns:
the sole factor

getFactor

public Denotator getFactor()
Returns the sole factor of the colimit denotator.


iterator

public java.util.Iterator<Denotator> iterator()
Returns an iterator over the factors. In this case there is only one factor.

Specified by:
iterator in interface java.lang.Iterable<Denotator>
Specified by:
iterator in interface FactorDenotator
Specified by:
iterator in class Denotator

setFactor

public void setFactor(int i,
                      Denotator d)
               throws RubatoException
Sets the factor d in position i. This is a destructive operation; beware of aliasing.

Specified by:
setFactor in interface FactorDenotator
Throws:
java.lang.IllegalStateException - if the position i is not in the required range
RubatoFormException - if d is not of the required form
RubatoException

setFactor

public void setFactor(java.lang.String label,
                      Denotator d)
               throws RubatoException
Sets the factor d at the given label. This is a destructive operation; beware of aliasing.

Throws:
RubatoException - if d is not of the required form or the label does not exist

appendFactor

public boolean appendFactor(Denotator d)
Description copied from interface: FactorDenotator
Appends, if possible, the factor d. This is a destructive operation; beware of aliasing.

Specified by:
appendFactor in interface FactorDenotator
Returns:
true iff the append is successful

getFactors

public java.util.List<Denotator> getFactors()
Returns a list of the factors of the denotator. In this case there is only one factor.

Specified by:
getFactors in interface FactorDenotator

getIndex

public final int getIndex()
Returns the index of the factor contained in a colimit denotator.


getLabel

public final java.lang.String getLabel()
Returns the index label of the factor contained in a colimit denotator.


compareTo

public int compareTo(Denotator object)
Specified by:
compareTo in interface java.lang.Comparable<Denotator>
Specified by:
compareTo in class Denotator

compareTo

public int compareTo(ColimitDenotator other)
Compares two colimit denotators.


equals

public boolean equals(java.lang.Object object)
Checks for equality.

Specified by:
equals in class Denotator

equals

public boolean equals(ColimitDenotator other)
Checks denotators of the same type for equality.


getIndexMorphismMap

public IndexMorphismMap getIndexMorphismMap()

getFrameIndexMorphismMap

public IndexMorphismMap getFrameIndexMorphismMap()

isConstant

public boolean isConstant()
Description copied from class: Denotator
Returns true iff this is ultimately a constant denotator, regardless of its address.

Specified by:
isConstant in class Denotator

copy

public ColimitDenotator copy()
Description copied from class: Denotator
Returns a deep copy of this denotator. The copy is given the same name as the original.

Specified by:
copy in class Denotator

check

public boolean check()
Description copied from class: Denotator
Returns true iff this denotator is consistent. This can be used in assertions to validate a denotator, for example if its constructed using unsafe methods or changed inplace.

Specified by:
check in class Denotator

toXML

public void toXML(XMLWriter writer)
Specified by:
toXML in class Denotator

fromXML

public static ColimitDenotator fromXML(XMLReader reader,
                                       org.w3c.dom.Element element)
Reads XML representation from reader starting with element.

Returns:
a colimit denotator or null if parsing failed

_make_unsafe

@Unsafe
@Internal
public static ColimitDenotator _make_unsafe(NameDenotator name,
                                                            Module address,
                                                            ColimitForm form,
                                                            int index,
                                                            Denotator d)
Creates a new limit denotator without checking whatsoever. The arguments must result in a correct denotator, otherwise there may be nasty consequences.


_is_valid

@Internal
public boolean _is_valid()
Returns true iff this denotator is correctly built.