de.svws_nrw.davapi.util.vcard.CategoriesProperty Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of svws-module-dav-api Show documentation
Show all versions of svws-module-dav-api Show documentation
Diese Bibliothek enthält die Java-Server-Definition der CalDAV und CardDAV-Schnittstelle für die Schulverwaltungssoftware in NRW
The newest version!
package de.svws_nrw.davapi.util.vcard;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import jakarta.validation.constraints.NotNull;
/**
* VCard Property für Kategorien.
* Beispiel:
* {@code CATEGORIES:category1,category2}
*
* @see RFC
* Dokumentation für Categories
*/
public final class CategoriesProperty implements VCardProperty {
/**
* konstante für den Property Type
*/
private static final String CATEGORIES_STR = "CATEGORIES";
/**
* Liste der Kategorien
*/
private final List categories = new ArrayList<>();
/**
* erstellt ein Category Property mit einer Liste von Kategorien
*
* @param categories eine Liste von Kategorien
*/
public CategoriesProperty(final List categories) {
this.categories.addAll(categories);
}
/**
* erstellt ein CategoryProperty mit einer Kategorie
*
* @param category die Kategorie
*/
public CategoriesProperty(final @NotNull String category) {
this.categories.add(category);
}
@Override
public String getType() {
return CATEGORIES_STR;
}
@Override
public void serializeType(final StringBuilder sb) {
sb.append(getType());
}
@Override
public void serializeProperty(final StringBuilder sb) {
final Iterator iter = categories.iterator();
while (iter.hasNext()) {
sb.append(iter.next());
if (iter.hasNext()) {
sb.append(PROPERTY_LIST_ENTRY_SEPARATOR);
}
}
}
}