![JAR search and dependency download from the Maven repository](/logo.png)
net.fortuna.ical4j.vcard.PropertyValidatorSupport Maven / Gradle / Ivy
package net.fortuna.ical4j.vcard;
import net.fortuna.ical4j.model.Property;
import net.fortuna.ical4j.validate.PropertyValidator;
import net.fortuna.ical4j.validate.ValidationRule;
import net.fortuna.ical4j.validate.Validator;
import net.fortuna.ical4j.vcard.parameter.Value;
import net.fortuna.ical4j.vcard.property.*;
import net.fortuna.ical4j.vcard.property.immutable.ImmutableKind;
import net.fortuna.ical4j.vcard.property.immutable.ImmutableVersion;
import java.util.Arrays;
import java.util.Optional;
import java.util.stream.Collectors;
import static net.fortuna.ical4j.model.Parameter.VALUE;
import static net.fortuna.ical4j.validate.ValidationRule.ValidationType.*;
public interface PropertyValidatorSupport {
ValidationRule TEXT_VALUE = new ValidationRule<>(None, prop -> {
Optional v = prop.getParameter(VALUE);
return !(!v.isPresent() || Value.TEXT.equals(v.get()));
}, "MUST be specified as TEXT:", VALUE);
ValidationRule URI_VALUE = new ValidationRule<>(None, prop -> {
Optional v = prop.getParameter(VALUE);
return !(!v.isPresent() || Value.URI.equals(v.get()));
}, "MUST be specified as a URI:", VALUE);
ValidationRule DATE_AND_OR_TIME_VALUE = new ValidationRule<>(None, prop -> {
Optional v = prop.getParameter(VALUE);
return !(!v.isPresent() || Value.DATE_AND_OR_TIME.equals(v.get()));
}, "MUST be specified as a DATE and/or TIME:", VALUE);
ValidationRule LANGUAGE_TAG_VALUE = new ValidationRule<>(None, prop -> {
Optional v = prop.getParameter(VALUE);
return !(!v.isPresent() || Value.LANGUAGE_TAG.equals(v.get()));
}, "MUST be specified as a LANGUAGE TAG:", VALUE);
ValidationRule UTC_OFFSET_VALUE = new ValidationRule<>(None, prop -> {
Optional v = prop.getParameter(VALUE);
return !(!v.isPresent() || Value.UTC_OFFSET.equals(v.get()));
}, "MUST be specified as a UTC OFFSET:", VALUE);
ValidationRule TIMESTAMP_VALUE = new ValidationRule<>(None, prop -> {
Optional v = prop.getParameter(VALUE);
return !(!v.isPresent() || Value.TIMESTAMP.equals(v.get()));
}, "MUST be specified as a TIMESTAMP:", VALUE);
Validator ADDRESS = new PropertyValidator<>(PropertyName.ADR.toString(),
new ValidationRule<>(OneOrLess, ParameterName.VALUE.toString(), ParameterName.LABEL.toString(),
ParameterName.LANGUAGE.toString(), ParameterName.GEO.toString(), ParameterName.TZ.toString(),
ParameterName.ALTID.toString(), ParameterName.PID.toString(), ParameterName.PREF.toString(),
ParameterName.TYPE.toString()),
TEXT_VALUE);
Validator AGENT = new PropertyValidator<>(PropertyName.AGENT.toString());
Validator> ANNIVERSARY_DATE = new PropertyValidator<>(PropertyName.ANNIVERSARY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString(), ParameterName.CALSCALE.toString()),
DATE_AND_OR_TIME_VALUE);
Validator> ANNIVERSARY_TEXT = new PropertyValidator<>(PropertyName.ANNIVERSARY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString()),
TEXT_VALUE);
Validator> BDAY_DATE = new PropertyValidator<>(PropertyName.BDAY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString(), ParameterName.CALSCALE.toString()),
DATE_AND_OR_TIME_VALUE);
Validator> BDAY_TEXT = new PropertyValidator<>(PropertyName.BDAY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString()),
TEXT_VALUE);
Validator BIRTH = new PropertyValidator<>(PropertyName.BIRTH.toString());
Validator CALADRURI = new PropertyValidator<>(PropertyName.CALADRURI.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString(), ParameterName.PID.toString(),
ParameterName.PREF.toString(), ParameterName.TYPE.toString(), ParameterName.MEDIATYPE.toString()),
URI_VALUE);
Validator CALURI = new PropertyValidator<>(PropertyName.CALURI.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString(), ParameterName.PID.toString(),
ParameterName.PREF.toString(), ParameterName.TYPE.toString(), ParameterName.MEDIATYPE.toString()),
URI_VALUE);
Validator CONTACT_URI = new PropertyValidator<>(PropertyName.CONTACT_URI.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString(), ParameterName.PID.toString(),
ParameterName.PREF.toString(), ParameterName.TYPE.toString(), ParameterName.MEDIATYPE.toString()),
URI_VALUE);
Validator CATEGORIES = new PropertyValidator<>(PropertyName.CATEGORIES.toString(),
new ValidationRule<>(OneOrLess, ParameterName.PID.toString(), ParameterName.PREF.toString(),
ParameterName.TYPE.toString(), ParameterName.ALTID.toString()),
TEXT_VALUE);
Validator CLASS = new PropertyValidator<>(PropertyName.CLASS.toString(),
new ValidationRule<>(None, Arrays.stream(ParameterName.values()).map(ParameterName::toString)
.collect(Collectors.toList()).toArray(new String[0])));
Validator CLIENTPIDMAP = new PropertyValidator<>(PropertyName.CLIENTPIDMAP.toString(),
new ValidationRule<>(None, ParameterName.PID.toString()));
Validator CONTACT_BY_VALIDATOR = new PropertyValidator<>(PropertyName.CONTACT_BY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.TYPE.toString(), ParameterName.PREF.toString()),
new ValidationRule<>(ValueMatch, "(?i)" + String.join("|", ContactBy.ADR, ContactBy.EMAIL,
ContactBy.IMPP, ContactBy.TEL, "X-[A-Z0-9-]+")));
Validator CREATED_VALIDATOR = new PropertyValidator<>(PropertyName.CREATED.toString(),
TIMESTAMP_VALUE);
Validator DDAY = new PropertyValidator<>(PropertyName.DDAY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.VALUE.toString()));
Validator DEATH = new PropertyValidator<>(PropertyName.DEATH.toString());
Validator DEF_LANGUAGE_VALIDATOR = new PropertyValidator<>(PropertyName.DEFLANGUAGE.toString());
Validator EMAIL = new PropertyValidator<>(PropertyName.EMAIL.toString(),
new ValidationRule<>(OneOrLess, ParameterName.PID.toString(), ParameterName.PREF.toString(),
ParameterName.TYPE.toString(), ParameterName.ALTID.toString()),
TEXT_VALUE);
Validator FBURL = new PropertyValidator<>(PropertyName.FBURL.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString(), ParameterName.PID.toString(),
ParameterName.PREF.toString(), ParameterName.TYPE.toString(), ParameterName.MEDIATYPE.toString()),
URI_VALUE);
Validator FN = new PropertyValidator<>(PropertyName.FN.toString(),
new ValidationRule<>(OneOrLess, ParameterName.PID.toString(), ParameterName.PREF.toString(),
ParameterName.TYPE.toString(), ParameterName.LANGUAGE.toString(), ParameterName.ALTID.toString()),
TEXT_VALUE);
Validator GENDER = new PropertyValidator<>(PropertyName.GENDER.toString(), TEXT_VALUE,
new ValidationRule<>(ValueMatch, "(?i)" + String.join("|", Gender.NONE,
Gender.FEMALE, Gender.MALE, Gender.OTHER, Gender.UNKNOWN)));
Validator GEO = new PropertyValidator<>(PropertyName.GEO.toString(),
new ValidationRule<>(OneOrLess, ParameterName.ALTID.toString(), ParameterName.PID.toString(),
ParameterName.PREF.toString(), ParameterName.TYPE.toString(), ParameterName.MEDIATYPE.toString()),
URI_VALUE);
Validator GRAM_GENDER_VALIDATOR = new PropertyValidator<>(PropertyName.GRAMGENDER.toString(),
new ValidationRule<>(ValueMatch, "(?i)" + String.join("|", GramGender.ANIMATE,
GramGender.COMMON, GramGender.FEMININE, GramGender.INANIMATE, GramGender.MASCULINE,
GramGender.NEUTER, "X-[A-Z0-9-]+")));
Validator IMPP = new PropertyValidator<>(PropertyName.IMPP.toString(),
new ValidationRule<>(OneOrLess, ParameterName.PID.toString(), ParameterName.PREF.toString(),
ParameterName.TYPE.toString(), ParameterName.MEDIATYPE.toString(), ParameterName.ALTID.toString()),
URI_VALUE);
Validator KEY_URI = new PropertyValidator<>(PropertyName.KEY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.PID.toString(), ParameterName.PREF.toString(),
ParameterName.TYPE.toString(), ParameterName.MEDIATYPE.toString(), ParameterName.ALTID.toString()),
URI_VALUE);
Validator KEY_TEXT = new PropertyValidator<>(PropertyName.KEY.toString(),
new ValidationRule<>(OneOrLess, ParameterName.PID.toString(), ParameterName.PREF.toString(),
ParameterName.TYPE.toString(), ParameterName.ALTID.toString()),
TEXT_VALUE);
Validator KIND = new PropertyValidator<>(PropertyName.KIND.toString(),
TEXT_VALUE,
new ValidationRule<>(ValueMatch, "(?i)" + String.join("|",
ImmutableKind.INDIVIDUAL.getValue(), ImmutableKind.GROUP.getValue(), ImmutableKind.ORG.getValue(),
ImmutableKind.LOCATION.getValue(), ImmutableKind.APPLICATION.getValue(),
ImmutableKind.DEVICE.getValue())));
Validator
© 2015 - 2025 Weber Informatics LLC | Privacy Policy