Class DoppelHaken

java.lang.Object
eu.bandm.tscore.base.Entity<DoppelHaken>
eu.bandm.music.haken.DoppelHaken
All Implemented Interfaces:
Dodekaid<DoppelHaken>, Invertible<DoppelHaken>, RelWertFolge, Translet.Parseable<DoppelHaken>

public class DoppelHaken extends Entity<DoppelHaken> implements Dodekaid<DoppelHaken>, RelWertFolge
The twelve forms of "double hooks"="DoppelHaken", based on Haken. This type is algebraic, i.e. immutable and all instances are constructed once for ever. Each is made of two(2) Haken, which must be different.
There are two groups of DoppelHaken:
First without internal overlap, there are 4*3=12 forms.
Then with internal overlap, then end of the first and start of the last must be the same RelWert. There are 4+2=6 forms.

There are parsers (via EntityCatalog) for the names composed of the Haken names ("de"="German"), and abbreviation names (language = "symbolic"), derived from the Latin alphabet glyph/character they resemble.

The names of the ones with overlap have one character less, or append a "5", since they have five discreet values, not six.

           \  /\      \    /   \    /\ 
            \/  \      \/\/     \/ /    
          OM MU       OM MO    OM UM
          N-          W        W+ (like W, with an additional cauda)
 overlap: OMU N-5     OMO W5   
  
            /\/\       /\  /    /\ \
           /    \     /  \/    /    \/
          UM MU       UM MO    UM OM
          M           N        M+ (like M, with an additional cauda)
 overlap: UMU M5      UMO N5
  
            / /\        /\       /  /\ 
          \/    \     \/  \/   \/  /    
          MO MU       MO OM    MO UM
          +M          A        e (resembles the "Sütterlin" e)
 overlap:             MOM A5  
  
          /\  /\     /\    /   /\  \
            \/         \ \/      \  \/
          MU UM      MU MO     MU OM
          V          +W        e-
 overlap: MUM V5

  
  • Field Details

  • Method Details

    • getFirst

      public Haken getFirst()
      Return the first component of the double hook.
    • getLast

      public Haken getLast()
      Return the second component of the double hook.
    • get

      public DoppelHaken get(Haken first, Haken last)
      Returns the (algebraic) object with the given structure.
    • inv

      public DoppelHaken inv()
      Return the invers of a DoppelHaken symbol
      Specified by:
      inv in interface Dodekaid<DoppelHaken>
      Specified by:
      inv in interface Invertible<DoppelHaken>
    • retro

      public DoppelHaken retro()
      Returns the instance which is the (fine) retrograde of this.
      Specified by:
      retro in interface Dodekaid<DoppelHaken>
    • retroInv

      public DoppelHaken retroInv()
      Returns the instance which is the inverse (fine) retrograde of this.
      Specified by:
      retroInv in interface Dodekaid<DoppelHaken>
    • fineRetro

      public DoppelHaken fineRetro()
      Return the fine retrograde. That is the retrograde of all values, which is the retrogrades of both components, in retro order.
    • coarseRetro

      public DoppelHaken coarseRetro()
      Return the retrograde of a DoppelHaken symbol with swaps only the oder of the Haken, not their inner structure.
    • fineRetroInv

      public DoppelHaken fineRetroInv()
      Return the inverse retrograde of a DoppelHaken symbol, with internal retro of the Haken.
    • coarseRetroInv

      public DoppelHaken coarseRetroInv()
      Return the inverse retrograde of a DoppelHaken symbol, switching only the hakens.
    • isHorizontalSymmetric

      public boolean isHorizontalSymmetric()
      first == last.retro()
    • isRotationSymmetric

      public boolean isRotationSymmetric()
      first == last.retroInv()
    • doesOverlap

      public boolean doesOverlap()
      True for MOM, MUM, OMO, UMU, OMU and UMO .
    • toString

      public String toString()
      Delivers the name based on the German RelValue name, like "OMO" or "MUOM".
      Overrides:
      toString in class Entity<DoppelHaken>
    • length

      public int length()
      If seen as a RelWertFolge, a DoppelHaken has the length 5 or 6.
      Specified by:
      length in interface RelWertFolge
    • firstRelWert

      public RelWert firstRelWert()
      First vaule when seen as a RelWertFolge.
      Specified by:
      firstRelWert in interface RelWertFolge
    • lastRelWert

      public RelWert lastRelWert()
      Last vaule when seen as a RelWertFolge.
      Specified by:
      lastRelWert in interface RelWertFolge