PropertyConverter.javaПакет: org.projectforge.business.teamcal.event.ical.converter
Классы: PropertyConverter
Реализует: VEventComponentConverter
Методы (4): toVEvent, toVEvent, isAllDay, parseAdditionalParameters
Импорты: 8 пакетов
package org.projectforge.business.teamcal.event.ical.converter;
import net.fortuna.ical4j.model.Parameter;
import net.fortuna.ical4j.model.ParameterBuilder;
import net.fortuna.ical4j.model.ParameterList;
import net.fortuna.ical4j.model.Property;
import net.fortuna.ical4j.model.component.VEvent;
import net.fortuna.ical4j.model.property.DtStart;
import org.projectforge.business.teamcal.event.ical.VEventComponentConverter;
import org.projectforge.business.teamcal.event.model.TeamEventDO;
public abstract class PropertyConverter implements VEventComponentConverter {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(PropertyConverter.class);
public Property toVEvent(final TeamEventDO event) {
return null;
}
@Override
public boolean toVEvent(TeamEventDO event, VEvent vEvent) {
Property property = this.toVEvent(event);
if (property == null) {
return false;
}
vEvent.getProperties().add(property);
return true;
}
protected boolean isAllDay(final VEvent vEvent) {
if (vEvent.getDateTimeStart().isEmpty()) {
return false;
}
DtStart<?> dtStart = vEvent.getDateTimeStart().get();
return dtStart.toString().contains("VALUE=DATE");
}
protected void parseAdditionalParameters(final ParameterList list, final String additonalParams) {
if (list == null || additonalParams == null) {
return;
}
StringBuilder sb = new StringBuilder();
boolean escaped = false;
char[] chars = additonalParams.toCharArray();
String name = null;
for (char c : chars) {
switch (c) {
case ';':
if (!escaped && name != null && sb.length() > 0) {
try {
Parameter parameter = new ParameterBuilder().name(name).value(sb.toString().replaceAll("\"", "")).build();
list.add(parameter);
} catch (Exception e) {
log.error("Ошибка при разборе дополнительных параметров: " + e.getMessage(), e);
}
name = null;
sb.setLength(0);
}
break;
case '"':
escaped = (!escaped);
break;
case '=':
if (!escaped && sb.length() > 0) {
name = sb.toString();
sb.setLength(0);
}
break;
default:
sb.append(c);
break;
}
}
if (!escaped && name != null && sb.length() > 0) {
try {
Parameter parameter = new ParameterBuilder().name(name).value(sb.toString().replaceAll("\"", "")).build();
list.add(parameter);
} catch (Exception e) {
log.error("Ошибка при разборе дополнительных параметров: " + e.getMessage(), e);
}
}
}
}
868d6abb7 2025 → 2026 63081666f Заголовки исходных файлов: 2024 → 2025. 61966790f Ical4j: миграционные материалы... b6092df09 Авторские права 2023 → 2024 ab45d51fa Авторские права 2001-2022 → 2001-2023.