
net.fortuna.ical4j.extensions.strategy.entity.Group Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ical4j-extensions Show documentation
Show all versions of ical4j-extensions Show documentation
Support for additional non-standard iCalendar objects
The newest version!
package net.fortuna.ical4j.extensions.strategy.entity;
import net.fortuna.ical4j.extensions.strategy.AbstractStrategy;
import net.fortuna.ical4j.vcard.Entity;
import net.fortuna.ical4j.vcard.GeneralPropertyModifiers;
import net.fortuna.ical4j.vcard.IdentificationPropertyModifiers;
import net.fortuna.ical4j.vcard.OrganizationalPropertyModifiers;
import net.fortuna.ical4j.vcard.property.Fn;
import net.fortuna.ical4j.vcard.property.Member;
import net.fortuna.ical4j.vcard.property.immutable.ImmutableKind;
import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* A group is a named entity used to group other entities.
*/
public class Group extends AbstractStrategy {
private final List names = new ArrayList<>();
private final List members = new ArrayList<>();
public Group name(String... name) {
names.addAll(Arrays.asList(name));
return this;
}
public Group member(URI... member) {
members.addAll(Arrays.asList(member));
return this;
}
@Override
public Entity get() {
Entity entity = getPrototype().isPresent() ? getPrototype().get().copy() : new Entity();
entity.with(GeneralPropertyModifiers.KIND, ImmutableKind.GROUP);
names.forEach(name -> entity.with(IdentificationPropertyModifiers.FN, new Fn(name)));
members.forEach(member -> entity.with(OrganizationalPropertyModifiers.MEMBER, new Member(member)));
return entity;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy