/*******************************************************************************
* Copyright (c) 2005-2010, G. Weirich and Elexis
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* G. Weirich - initial implementation
*
*******************************************************************************/
package ch.elexis.data;
import ch.elexis.core.types.RelationshipType;
public class BezugsKontakt extends PersistentObject {
public static final String RELATION = "Bezug"; //$NON-NLS-1$
public static final String OTHER_ID = "otherID"; //$NON-NLS-1$
public static final String MY_ID = "myID"; //$NON-NLS-1$
public static final String FLD_MY_RTYPE = "myRType"; // formal relationship type
public static final String FLD_OTHER_RTYPE = "otherRType"; // other formal relationship
public static final String TABLENAME = "KONTAKT_ADRESS_JOINT"; //$NON-NLS-1$
static {
addMapping(TABLENAME, MY_ID, OTHER_ID, RELATION, FLD_MY_RTYPE, FLD_OTHER_RTYPE);
}
/**
* @deprecated
* @param kontakt
* @param adr
* @param bezug
*/
public BezugsKontakt(Kontakt kontakt, Kontakt adr, String bezug){
this(kontakt, adr,
new BezugsKontaktRelation(bezug, RelationshipType.AGENERIC, RelationshipType.AGENERIC));
}
/**
*
* @param kontakt
* @param adr
* @param bezugsKontaktType
* @since 3.2
*/
public BezugsKontakt(Kontakt kontakt, Kontakt adr, BezugsKontaktRelation bezugsKontaktType){
create(null);
set(new String[] {
MY_ID, OTHER_ID, RELATION, FLD_MY_RTYPE, FLD_OTHER_RTYPE
}, kontakt.getId(), adr.getId(), bezugsKontaktType.getName(),
String.valueOf(bezugsKontaktType.getDestRelationType().getValue()),
String.valueOf(bezugsKontaktType.getSrcRelationType().getValue()));
}
@Override
public String getLabel(){
Kontakt k = Kontakt.load(get(OTHER_ID));
if (k.isValid()) {
return get(RELATION) + ": " + k.getLabel(); //$NON-NLS-1$
} else {
return Messages.BezugsKontakt_ContactDoesntExist;
}
}
public static BezugsKontakt load(String id){
return new BezugsKontakt(id);
}
public Kontakt getBezugsKontakt(){
return Kontakt.load(get(OTHER_ID));
}
public String getBezug(){
return checkNull(get(RELATION));
}
@Override
protected String getTableName(){
return TABLENAME;
}
protected BezugsKontakt(){}
protected BezugsKontakt(String id){
super(id);
}
}