Elexis API documentation
Version 2.1.6 as of December 11 2011

ch.elexis.data
Class Kontakt

java.lang.Object
  extended by ch.elexis.data.PersistentObject
      extended by ch.elexis.data.Kontakt
All Implemented Interfaces:
IPartner, IPersistentObject, ISelectable
Direct Known Subclasses:
Organisation, Person, Rechnungssteller, TransienterKontakt

public class Kontakt
extends PersistentObject
implements IPartner

Ein Kontakt ist der kleinste gemeinsame Nenner anller Arten von Menschen und Institutionen und somit die Basisklasse für alle Kontakte. Ein Kontakt hat eine Anschrift und beliebig viele zusätzliche Bezugsadressen, sowie Telefon, E-Mail und Website. Zu einem Kontakt können ausserdem Reminders erstellt werden. Schliesslich hat jeder Kontakt noch einen "Infostore", einen im Prinzip unbegrenzt grossen Speicher für beliebig viele parameter=wert - Paare, wo Informationen aller Art abgelegt werden können. Jedem Element des Infostores können Zugriffsrechte zugeteilt werden, die definieren, wer dieses Element lesen und Schreiben darf.

Author:
gerry

Nested Class Summary
static class Kontakt.statL
           
 
Nested classes/interfaces inherited from class ch.elexis.data.PersistentObject
PersistentObject.FieldType
 
Field Summary
static java.lang.String[] DEFAULT_SORT
           
static java.lang.String FLD_ANSCHRIFT
           
static java.lang.String FLD_COUNTRY
           
static java.lang.String FLD_E_MAIL
           
static java.lang.String FLD_FAX
           
static java.lang.String FLD_IS_LAB
           
static java.lang.String FLD_IS_MANDATOR
           
static java.lang.String FLD_IS_ORGANIZATION
           
static java.lang.String FLD_IS_PATIENT
           
static java.lang.String FLD_IS_PERSON
           
static java.lang.String FLD_IS_USER
           
static java.lang.String FLD_MOBILEPHONE
           
static java.lang.String FLD_PHONE1
           
static java.lang.String FLD_PHONE2
           
static java.lang.String FLD_PLACE
           
static java.lang.String FLD_REMARK
           
static java.lang.String FLD_SHORT_LABEL
           
static java.lang.String FLD_STREET
           
static java.lang.String FLD_WEBSITE
           
static java.lang.String FLD_ZIP
           
 
Fields inherited from class ch.elexis.data.PersistentObject
CACHE_DEFAULT_LIFETIME, CACHE_MIN_LIFETIME, CFG_CONNECTSTRING, CFG_DRIVER, CFG_PWD, CFG_TYPE, CFG_USER, DELETED, EXISTS, INEXISTENT, INVALID_ID, MATCH_AUTO, MATCH_CONTAINS, MATCH_EXACT, MATCH_REGEXP, MATCH_START
 
Fields inherited from interface ch.elexis.core.data.IPartner
FLD_NAME1, FLD_NAME2, FLD_NAME3, TYPE_ADMIN, TYPE_CLIENT, TYPE_MANAGER, TYPE_MANDATOR, TYPE_ORGANIZATION, TYPE_PERSON, TYPE_USER
 
Fields inherited from interface ch.elexis.core.data.IPersistentObject
DELETED, FLD_DATE, FLD_DELETED, FLD_EXTINFO, FLD_ID, FLD_LASTUPDATE, MATCH_AUTO, MATCH_CONTAINS, MATCH_EXACT, MATCH_REGEXP, MATCH_START, STATE_EXISTING, STATE_INEXISTENT, STATE_INVALID_ID
 
Method Summary
 BezugsKontakt addBezugsKontakt(Kontakt adr, java.lang.String sBezug)
          Eine neue Zusatzadresse zu diesem Kontakt zufügen
 java.lang.String createStdAnschrift()
           
 boolean delete()
          Ein Objekt und ggf. dessen XID's aus der Datenbank löschen the object is not deleted but rather marked as deleted.
static Kontakt findKontaktfromInfoStore(java.lang.Class clazz, java.lang.String field, java.lang.String value)
          Einen Kontakt finden, der einen bestimmten Eintrag im Infostore enthält.
 void flushInfoStore(java.util.Map store)
          Den mit getInfoStore geholten Infostore wieder zurückschreiben.
 Anschrift getAnschrift()
          Die Anschrift dieses Kontakts holen
 java.lang.String getBemerkung()
           
 java.util.List<BezugsKontakt> getBezugsKontakte()
          Ein Array mit allen zu diesem Kontakt definierten Bezugskontakten holen
 ContactInfo getContactInfo(java.lang.String type)
          Get the ContactInfo of a given type
 ContactInfo[] getContactInfos()
          Retrieve all ContactInfos linked to this partner
 java.lang.String getContactSalutation()
          Retrieve the preferred salutation for this partner
 java.lang.Object getInfoElement(java.lang.String elem)
          Ein Element aus dem Infostore auslesen Der Rückgabewert ist ein Object oder Null.
 java.util.Map<java.lang.Object,java.lang.Object> getInfoStore()
          Den gesamten Infostore holen.
 java.lang.String getInfoString(java.lang.String elem)
          Convenience-Methode und einen String aus dem Infostore auszulesen.
 java.lang.String getKuerzel()
           
 java.lang.String getLabel()
          Returns a label describing this Kontakt.
 java.lang.String getLabel(boolean shortLabel)
          Returns a label describing this Kontakt.
 java.lang.String getMailAddress()
           
 MFUList<java.lang.String> getMFU(java.lang.String typ)
           
 int getPartnerRoles()
          get the role info of this partner
 java.lang.String getPostAnschrift(boolean multiline)
           
 Reminder[] getRelatedReminders()
          Die Reminders zu diesem Kontakt holen
 java.util.List<java.lang.String> getStatForItem(java.lang.String typ)
          Statistik für einen bestimmten Objekttyp holen
 java.util.List<java.lang.String> getStatForString(java.lang.String typ)
           
 boolean hasRole(int role)
          Ask whether this partner has a given role
 boolean istOrganisation()
           
 boolean istPatient()
           
 boolean istPerson()
           
 boolean isValid()
          Angeben, ob dieses Objekt gültig ist.
static Kontakt load(java.lang.String id)
          Kontakt mit gegebener Id aus der Datanbank einlesen
 void setAnschrift(Anschrift adr)
          Die Anschrift dieses Kontakts setzen
 void setBemerkung(java.lang.String b)
           
 void setInfoElement(java.lang.String elem, java.lang.Object val)
          Ein Element in den Infostore schreiben.
 void setMFU(java.lang.String typ, MFUList<java.lang.String> mfu)
           
 void setPartnerRoles(int roles)
          set the role info of this parner
 void statForItem(PersistentObject lst)
          Eine Statistik für ein bestimmtes Objekt anlegen.
 void statForString(java.lang.String typ, java.lang.String toStat)
           
 
Methods inherited from class ch.elexis.data.PersistentObject
addChangeListener, addSticker, addToList, addXid, begin, checkNull, checkZero, checkZeroDouble, clearCache, connect, connect, deleteList, disconnect, equals, executeSQLScript, exists, exportData, fireChangeEvent, flatten, fold, get, get, getCacheTime, getConnection, getDefaultCacheLifetime, getFieldType, getId, getInt, getLastUpdate, getList, getList, getMap, getSticker, getStickers, getWrappedId, getXid, getXid, getXids, hashCode, isAvailable, isDeleted, isDragOK, isMatching, isMatching, isMatching, isMatching, isShowDeleted, lock, map, relock, removeChangeListener, removeFromList, removeFromList, removeSticker, resetCache, set, set, setDefaultCacheLifetime, setInt, setMap, setShowDeleted, setTrace, state, storeToString, tableExists, ts, undelete, unlock
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface ch.elexis.core.data.IPersistentObject
addChangeListener, addSticker, addXid, exists, get, get, getId, getInt, getLastUpdate, getMap, getSticker, getStickers, getXid, getXid, getXids, isAvailable, isDeleted, isDragOK, isMatching, isMatching, isMatching, isMatching, removeChangeListener, removeSticker, set, set, setInt, setMap, state, storeToString
 

Field Detail

FLD_E_MAIL

public static final java.lang.String FLD_E_MAIL
See Also:
Constant Field Values

FLD_WEBSITE

public static final java.lang.String FLD_WEBSITE
See Also:
Constant Field Values

FLD_MOBILEPHONE

public static final java.lang.String FLD_MOBILEPHONE
See Also:
Constant Field Values

FLD_FAX

public static final java.lang.String FLD_FAX
See Also:
Constant Field Values

FLD_IS_LAB

public static final java.lang.String FLD_IS_LAB
See Also:
Constant Field Values

FLD_IS_MANDATOR

public static final java.lang.String FLD_IS_MANDATOR
See Also:
Constant Field Values

FLD_IS_USER

public static final java.lang.String FLD_IS_USER
See Also:
Constant Field Values

FLD_SHORT_LABEL

public static final java.lang.String FLD_SHORT_LABEL
See Also:
Constant Field Values

FLD_IS_ORGANIZATION

public static final java.lang.String FLD_IS_ORGANIZATION
See Also:
Constant Field Values

FLD_IS_PATIENT

public static final java.lang.String FLD_IS_PATIENT
See Also:
Constant Field Values

FLD_IS_PERSON

public static final java.lang.String FLD_IS_PERSON
See Also:
Constant Field Values

FLD_ANSCHRIFT

public static final java.lang.String FLD_ANSCHRIFT
See Also:
Constant Field Values

FLD_COUNTRY

public static final java.lang.String FLD_COUNTRY
See Also:
Constant Field Values

FLD_PLACE

public static final java.lang.String FLD_PLACE
See Also:
Constant Field Values

FLD_ZIP

public static final java.lang.String FLD_ZIP
See Also:
Constant Field Values

FLD_STREET

public static final java.lang.String FLD_STREET
See Also:
Constant Field Values

FLD_PHONE2

public static final java.lang.String FLD_PHONE2
See Also:
Constant Field Values

FLD_PHONE1

public static final java.lang.String FLD_PHONE1
See Also:
Constant Field Values

FLD_REMARK

public static final java.lang.String FLD_REMARK
See Also:
Constant Field Values

DEFAULT_SORT

public static final java.lang.String[] DEFAULT_SORT
Method Detail

getLabel

public java.lang.String getLabel()
Returns a label describing this Kontakt. The default implementation returns the short label, i. e. label(false) Sublcasses should overwrite getLabel(boolean short) for defining their own labels.

Specified by:
getLabel in interface IPersistentObject
Specified by:
getLabel in class PersistentObject
Returns:
a string describing this Kontakt.

getLabel

public java.lang.String getLabel(boolean shortLabel)
Returns a label describing this Kontakt. The default implementation returns "Bezeichnung1" for the short label, and "Bezeichnung1", "Bezeichnung2", "Strasse", "Plz" and "Ort", separated with a comma, for the long label. Subclasses can overwrite this method and define their own label(s). If short is true, they should return a short label suitable for addresses. If short is false, they should return a long label describing all important properties of this Kontakt for unique identification by the user.

Parameters:
shortLabel - return a short label for true, and a long label otherwise
Returns:
a string describing this Kontakt.

isValid

public boolean isValid()
Description copied from class: PersistentObject
Angeben, ob dieses Objekt gültig ist.

Specified by:
isValid in interface IPersistentObject
Overrides:
isValid in class PersistentObject
Returns:
true wenn die Daten gültig (nicht notwendigerweise korrekt) sind

getBezugsKontakte

public java.util.List<BezugsKontakt> getBezugsKontakte()
Ein Array mit allen zu diesem Kontakt definierten Bezugskontakten holen

Returns:
Ein Adress-Array, das auch die Länge null haben kann

getAnschrift

public Anschrift getAnschrift()
Die Anschrift dieses Kontakts holen


setAnschrift

public void setAnschrift(Anschrift adr)
Die Anschrift dieses Kontakts setzen


getPostAnschrift

public java.lang.String getPostAnschrift(boolean multiline)

createStdAnschrift

public java.lang.String createStdAnschrift()

addBezugsKontakt

public BezugsKontakt addBezugsKontakt(Kontakt adr,
                                      java.lang.String sBezug)
Eine neue Zusatzadresse zu diesem Kontakt zufügen

Parameters:
adr - die Adresse
sBezug - ein Text, der die Beziehung dieser Adresse zum Kontakt definiert (z.B. "Geschäftlich" oder "Orthopäde" oder so)

load

public static Kontakt load(java.lang.String id)
Kontakt mit gegebener Id aus der Datanbank einlesen


getMailAddress

public java.lang.String getMailAddress()

getRelatedReminders

public Reminder[] getRelatedReminders()
Die Reminders zu diesem Kontakt holen


delete

public boolean delete()
Description copied from class: PersistentObject
Ein Objekt und ggf. dessen XID's aus der Datenbank löschen the object is not deleted but rather marked as deleted. A purge must be applied to remove the object really

Overrides:
delete in class PersistentObject
Returns:
true on success

getInfoElement

public java.lang.Object getInfoElement(java.lang.String elem)
Ein Element aus dem Infostore auslesen Der Rückgabewert ist ein Object oder Null. Wenn die Rechte des aktuellen Anwenders zum Lesen dieses Elements nicht ausreichen, wird ebenfalls Null zurückgeliefert. 2.9.2007 We remove the checks. they are useless at this moment better check permissions on inout fields. gw


getInfoString

public java.lang.String getInfoString(java.lang.String elem)
Convenience-Methode und einen String aus dem Infostore auszulesen.

Parameters:
elem - Name des Elements
Returns:
Wert oder "" wenn das Element nicht vorhanden ist oder die Rechte nicht zum Lesen ausreichen

setInfoElement

public void setInfoElement(java.lang.String elem,
                           java.lang.Object val)
Ein Element in den Infostore schreiben. Wenn ein Element mit demselben Namen schon existiert, wird es überschrieben. Wenn die Rechte des angemeldeten Anwenders nicht für das Schreiben dieses Elements ausreichen, wird die Funktion still ignoriert.

Parameters:
elem - Name des Elements
val - Inhalt des Elements 2.9.2007 emoved the checks g. weirich

getInfoStore

public java.util.Map<java.lang.Object,java.lang.Object> getInfoStore()
Den gesamten Infostore holen. Dies ist sinnvoll, wenn kurz nacheinander mehrere Werte gelesen oder geschrieben werden sollen, da damit das wiederholte entpacken/packen gespart wird. Nach Änderungen muss der Store mit flushInfoStore() explizit gesichert werden. ACHTUNG: Nicht Thread-Safe. Konkurriende Schreiboperationen, während ein Thread den store hält, werden verlorengehen.

Returns:
eine Hashtable, die die parameter-wert-paare enthält.

flushInfoStore

public void flushInfoStore(java.util.Map store)
Den mit getInfoStore geholten Infostore wieder zurückschreiben. Dies muss immer dann geschehen, wenn nach getInfoStore() schreiboperationen durchgeführt wurden.

Parameters:
store - die zuvor mit getInfoStore() erhaltene Hashtable.

findKontaktfromInfoStore

public static Kontakt findKontaktfromInfoStore(java.lang.Class clazz,
                                               java.lang.String field,
                                               java.lang.String value)
Einen Kontakt finden, der einen bestimmten Eintrag im Infostore enthält. Falls mehrere passende Kontakte vorhanden sind, wird nur der erste zurückgeliefert.

Parameters:
clazz - Unterklasse von Kontakt, nach der gesucht werden soll
field - Name des gesuchten Infostore-Eintrags
value - gesuchter Wert dieses Eintrags
Returns:
Ein Objekt der Klasse clazz, welches einen Infostore-Eintrag field mit dem Inhalt value enthält, oder null wenn kein solches Objekt existiert.

getStatForItem

public java.util.List<java.lang.String> getStatForItem(java.lang.String typ)
Statistik für einen bestimmten Objekttyp holen

Parameters:
typ - Der Typ (getClass().getName()) des Objekts.
Returns:
eine Liste mit Objektbezeichnern, die zwischen 0 und 30 nach Häufigkeit sortierte Elemente enthält.

statForItem

public void statForItem(PersistentObject lst)
Eine Statistik für ein bestimmtes Objekt anlegen. Es wird gezählt, wie oft diese Funktion für dieses Objekt schon aufgerufen wurde, und Objekte desselben Typs aber unterschiedlicher Identität werden in einer Rangliste aufgelistet. Diese Rangliste kann mit getStatForItem() angerufen werden. Die Rangliste enthält maximal 40 Einträge.

Parameters:
lst - Das Objekt, das gezählt werden soll.

statForString

public void statForString(java.lang.String typ,
                          java.lang.String toStat)

getStatForString

public java.util.List<java.lang.String> getStatForString(java.lang.String typ)

getMFU

public MFUList<java.lang.String> getMFU(java.lang.String typ)

setMFU

public void setMFU(java.lang.String typ,
                   MFUList<java.lang.String> mfu)

getKuerzel

public java.lang.String getKuerzel()

getBemerkung

public java.lang.String getBemerkung()

setBemerkung

public void setBemerkung(java.lang.String b)

istPerson

public boolean istPerson()

istPatient

public boolean istPatient()

istOrganisation

public boolean istOrganisation()

getPartnerRoles

public int getPartnerRoles()
Description copied from interface: IPartner
get the role info of this partner

Specified by:
getPartnerRoles in interface IPartner
Returns:
an integer consisting of OR'ed roles (TYPE_PERSON,TYPE_ADMIN and so on)

setPartnerRoles

public void setPartnerRoles(int roles)
Description copied from interface: IPartner
set the role info of this parner

Specified by:
setPartnerRoles in interface IPartner
Parameters:
roles - an integer consisting of OR'ed role values

hasRole

public boolean hasRole(int role)
Description copied from interface: IPartner
Ask whether this partner has a given role

Specified by:
hasRole in interface IPartner
Parameters:
role - a role value
Returns:
true if the partner has this role

getContactSalutation

public java.lang.String getContactSalutation()
Description copied from interface: IPartner
Retrieve the preferred salutation for this partner

Specified by:
getContactSalutation in interface IPartner
Returns:
a String with the salutation

getContactInfos

public ContactInfo[] getContactInfos()
Description copied from interface: IPartner
Retrieve all ContactInfos linked to this partner

Specified by:
getContactInfos in interface IPartner
Returns:
a possibly empty array of ContactInfos's
See Also:
ContactInfo

getContactInfo

public ContactInfo getContactInfo(java.lang.String type)
Description copied from interface: IPartner
Get the ContactInfo of a given type

Specified by:
getContactInfo in interface IPartner
Parameters:
type - type to retrieve, e.g. CITYPE_HOME or CITYPE_WORK. If null, the default will be retrieved
Returns:
a ContactInfo or null if the Partner has no ContactInfo's at all

Elexis API documentation
Version 2.1.6 as of December 11 2011

Copyright 2005-2011 by Gerry Weirich, Elexis