« Wie die Zeit vergeht :-( | Main| Urlaub -> Scala (10) »

Urlaub -> Scala (9)

0
Kategorie  

Aus meinem Beitrag von gestern Urlaub - S c a l a (8)
Für xd.getItemValue("userbooked").elementAt(0).toString() überlege ich mir noch was!


Habe mir was überlegt für Anregungen bin ich natürlich dankbar

Als erstes habe ich mir ein Klasse DocumentValueHelper definiert ->

class DocumentValueHelper( val document : Document ) {
       
        import java.util.Vector
         
        def apply( xfield : String ) = {
                val v = document.getItemValue(xfield)                                
                  v.elementAt(0)                
        }
         
}

Diese Klasse bekommt in Construtor ein Notes-Document übergeben und definiert die Methode apply. Wenn in Scala eine Klasse die Methode apply definiert hat, dann kann diese als o.apply(x) oder als o(x) aufgerufen werden. Also so was ähnliches wie ein Indexer in C#. Hierdurch erreiche ich, dass ich die Feldwerte über o("Feldname") auslesen kann.

Damit ich am Code nicht zuviel ändern muß, definiere ich weiterhin ein object DocumentValueHelper ->

object DocumentValueHelper {
 
        import java.util.Date
 
        implicit def Document2DocumentValueHelper( document : Document ) : DocumentValueHelper = new DocumentValueHelper(document)                
 
}

Hier definiere ich als erstes die implicit Methode Docuoment2DocumentValueHelper, durch die implicit Definition wird diese Methode überall dort aufgerufen, wo ein Document als Parameter übergeben wird und ein DocumentValueHelper erwartet wird.

Das object  TimeTracking schreibe ich dann wie folgt um, das wars und es läuft ?

object TimeTracking {
 
        import DocumentValueHelper._
 
        def createTimeTracking( xd : DocumentValueHelper ) : TimeTracking = {                
                TimeTracking(xd("userbooked"),xd("trackingdate"),xd("hours"))
        }
}

Keineswegs denn v.ElementAt(0) ist vom Typ Any und kann somit keinem String zugewiesen werden

Also in das object DocumentValueHelper noch ein paar implicit Definition für die Umwandlung rein und gut

        implicit def Any2String( x : Any ) : String = x.toString()
        implicit def Any2Double( x : Any ) : Double =
                x match {
                  case d : Double => d
                  case s : String => java.lang.Double.parseDouble(s)
                  case _ => java.lang.Double.parseDouble(x.toString())
                }
        implicit def Any2Date( x : Any ) : Date =
                x match {
                  case d : Date => d
                  case _ => java.text.DateFormat.getDateInstance.parse(x.toString())
                }
 

Gruß JJR

P.S.: Nicht vergessen das ist nur experimenteller Code

Mach einen Kommentar

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Amazon


Impressum

Firmenname: Peanuts-Soft
Straße Nummer: Biinger Strasse 8
PLZ Ort: 55263 Wackernheim
Telefon: +491772134526
E-Mail: joerg.reck @ peanuts-soft.de
Disclaimer: Peanuts-Soft übernimmt keine Garantie dafür, dass die auf dieser Website bereitgestellten Informationen vollständig, richtig und stets aktuell sind. Dies gilt auch für alle Links, auf die verwiesen wird. Peanuts-Soft ist für die Inhalte, auf die per Link verwiesen wird, nicht verantwortlich. Peanuts-Soft haftet nicht für konkrete, mittelbare und unmittelbare Schäden oder Schäden, die durch fehlende Nutzungsmöglichkeiten, Datenverluste oder entgangene Gewinne – sei es aufgrund der Nichteinhaltung vertraglicher Verpflichtungen, durch Fahrlässigkeit oder eine andere unerlaubte Handlung – im Zusammenhang mit der Nutzung von Dokumenten oder Informationen bzw. der Erbringung von Dienstleistungen entstehen, die auf dieser Web Site zugänglich sind.
Datenschutz: Inhalt und Gestaltung der Internetseiten sind urheberrechtlich geschützt. Eine Vervielfältigung der Seiten oder deren Inhalte bedarf der vorherigen schriftlichen Zustimmung von Peanuts-Soft.


Locations of visitors to this page

Powered By

Domino BlogSphere
Version 3.0.2