in ui/src/app/connect/services/transformation-rule.service.ts [577:630]
public getTimestampTransformRules(
newEventProperties: EventProperty[],
oldEventSchema: EventSchema,
newEventSchema: EventSchema,
): TimestampTranfsformationRuleDescription[] {
let result: TimestampTranfsformationRuleDescription[] = [];
for (const eventProperty of newEventProperties) {
if (eventProperty instanceof EventPropertyPrimitive) {
const eventPropertyPrimitive =
eventProperty as EventPropertyPrimitive;
const keyNew = this.getCompleteRuntimeNameKey(
newEventSchema.eventProperties,
eventPropertyPrimitive.elementId,
);
if (this.isTimestampProperty(eventPropertyPrimitive)) {
const rule: TimestampTranfsformationRuleDescription =
new TimestampTranfsformationRuleDescription();
rule['@class'] =
'org.apache.streampipes.model.connect.rules.value.TimestampTranfsformationRuleDescription';
rule.runtimeKey = keyNew;
rule.mode = eventProperty.additionalMetadata.mode;
rule.formatString =
eventProperty.additionalMetadata.formatString;
rule.multiplier =
eventProperty.additionalMetadata.multiplier;
result.push(rule);
}
} else if (eventProperty instanceof EventPropertyNested) {
const tmpResults: TimestampTranfsformationRuleDescription[] =
this.getTimestampTransformRules(
(eventProperty as EventPropertyNested).eventProperties,
oldEventSchema,
newEventSchema,
);
result = result.concat(tmpResults);
}
}
const filteredResult: TimestampTranfsformationRuleDescription[] = [];
for (const res of result) {
// TODO: better solution to check if the mode is valid
if (
res.mode === TimestampTransformationRuleMode.FORMAT_STRING ||
(res.multiplier !== 0 &&
res.mode === TimestampTransformationRuleMode.TIME_UNIT)
) {
filteredResult.push(res);
}
}
return filteredResult;
}