All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.atlan.samples.events.EventLogger Maven / Gradle / Ivy

There is a newer version: 1.3.1
Show newest version
/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright 2023 Atlan Pte. Ltd. */
package com.atlan.samples.events;

import com.atlan.Atlan;
import com.atlan.AtlanClient;
import com.atlan.events.AtlanEventHandler;
import com.atlan.model.assets.Asset;
import com.atlan.model.events.AtlanEvent;
import java.util.Collection;
import java.util.Set;
import org.slf4j.Logger;

/**
 * An example to only log events that were received, taking no actual action.
 */
public class EventLogger implements AtlanEventHandler {

    /** Singleton for reuse */
    private static final EventLogger INSTANCE = createInstance();

    private static EventLogger createInstance() {
        return new EventLogger();
    }

    public static EventLogger getInstance() {
        return INSTANCE;
    }

    /** {@inheritDoc} */
    @Override
    public boolean validatePrerequisites(AtlanEvent event, Logger log) {
        // Do nothing, just log the event
        log.info("Atlan event payload: {}", event.getPayload().toJson(Atlan.getDefaultClient()));
        return true;
    }

    /** {@inheritDoc} */
    @Override
    public Asset getCurrentState(AtlanClient client, Asset fromEvent, Logger log) {
        // Do nothing, just pass-through the asset as-received
        return fromEvent;
    }

    /** {@inheritDoc} */
    @Override
    public Collection calculateChanges(Asset asset, Logger log) {
        // Do nothing, just pass-through the asset unchanged
        return Set.of(asset);
    }

    /** {@inheritDoc} */
    @Override
    public boolean hasChanges(Asset current, Asset modified, Logger log) {
        // Do nothing, just allow the message to be forwarded along as a no-op
        return true;
    }

    /** {@inheritDoc} */
    @Override
    public void saveChanges(AtlanClient client, Collection changedAssets, Logger log) {
        // Do nothing
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy