/*******************************************************************************
* Copyright (c) 2005-2009, 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.rgw.tools.StringTool;
public class Anschrift {
private static final String COUNTRY = "Land"; //$NON-NLS-1$
private static final String PLACE = "Ort"; //$NON-NLS-1$
private static final String ZIP = "Plz"; //$NON-NLS-1$
private static final String STREET = "Strasse"; //$NON-NLS-1$
String Strasse, Plz, Ort, Land;
String[] fields = {
STREET, ZIP, PLACE, COUNTRY
};
Kontakt mine;
public Anschrift(Kontakt k){
mine = k;
String[] values = new String[fields.length];
k.get(fields, values);
Strasse = values[0];
Plz = values[1];
Ort = values[2];
Land = values[3];
}
public Anschrift(){}
/**
* Eine Etikette der Anschrift liefern
*
* @param withName
* TODO
* @param multiline
* Wenn true wird die Etikette mehrzeilig, sonst einzeilig
*/
public String getEtikette(boolean withName, boolean multiline){
String sep = StringTool.lf;
if (multiline == false) {
sep = ", "; //$NON-NLS-1$
}
StringBuilder ret = new StringBuilder(100);
if (withName == true) {
ret.append(mine.getLabel(false)).append(sep);
}
if (Strasse != null) {
ret.append(Strasse).append(sep);
}
if (!StringTool.isNothing(Land)) {
ret.append(Land).append(" - "); //$NON-NLS-1$
}
if ((Plz != null) && (Ort != null)) {
ret.append(Plz).append(StringTool.space).append(Ort);
}
if (multiline) {
// append trailing newline
ret.append(StringTool.lf);
}
return ret.toString();
}
public String getLabel(){
return getEtikette(true, false);
}
public String getStrasse(){
return StringTool.unNull(Strasse);
}
public String getPlz(){
return StringTool.unNull(Plz);
}
public String getOrt(){
return StringTool.unNull(Ort);
}
public String getLand(){
return StringTool.unNull(Land);
}
public void setStrasse(String s){
Strasse = s;
}
public void setPlz(String plz){
if (plz != null) {
Plz = plz.length() > 6 ? plz.substring(0, 6) : plz;
} else {
Plz = StringTool.leer;
}
}
public void setOrt(String ort){
Ort = ort;
}
public void setLand(String land){
Land = land.length() > 3 ? land.substring(0, 3) : land;
}
public boolean write(Kontakt k){
return k.set(fields, Strasse, Plz, Ort, Land);
}
}