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

com.threatconnect.sdk.client.writer.WriterAdapterFactory Maven / Gradle / Ivy

Go to download

The ThreatConnect Java SDK. Used to communicate with teh ThreatConnect Threat Intelligence Platform

The newest version!
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.threatconnect.sdk.client.writer;

import com.threatconnect.sdk.conn.Connection;
import com.threatconnect.sdk.server.entity.*;
import com.threatconnect.sdk.server.response.entity.*;

/**
 *
 * @author dtineo
 */
public class WriterAdapterFactory {

    public static AbstractGroupWriterAdapter createAdversaryGroupWriter(Connection conn) {
        return new AbstractGroupWriterAdapter(conn, AdversaryResponse.class) {
            @Override
            public String getUrlType() {
                return "adversaries";
            }
        };
    }

    public static AbstractGroupWriterAdapter createEmailGroupWriter(Connection conn) {
        return new AbstractGroupWriterAdapter(conn, EmailResponse.class) {
            @Override
            public String getUrlType() {
                return "emails";
            }
        };
    }

    public static AbstractGroupWriterAdapter createIncidentGroupWriter(Connection conn) {
        return new AbstractGroupWriterAdapter(conn, IncidentResponse.class) {
            @Override
            public String getUrlType() {
                return "incidents";
            }
        };
    }

    public static AbstractGroupWriterAdapter createSignatureGroupWriter(Connection conn) {
        return new AbstractGroupWriterAdapter(conn, SignatureResponse.class) {
            @Override
            public String getUrlType() {
                return "signatures";
            }
        };
    }
    
    public static AbstractGroupWriterAdapter createThreatGroupWriter(Connection conn) {
        return new AbstractGroupWriterAdapter(conn, ThreatResponse.class) {
            @Override
            public String getUrlType() {
                return "threats";
            }
        };
    }

    public static AbstractIndicatorWriterAdapter
createAddressIndicatorWriter(Connection conn) { return new AbstractIndicatorWriterAdapter
(conn, AddressResponse.class) { @Override public String getUrlType() { return "addresses"; } @Override public String getId(Address indicator) { return indicator.getIp(); } }; } public static AbstractIndicatorWriterAdapter createEmailAddressIndicatorWriter(Connection conn) { return new AbstractIndicatorWriterAdapter(conn, EmailAddressResponse.class) { @Override public String getUrlType() { return "emailAddresses"; } @Override public String getId(EmailAddress indicator) { return indicator.getAddress(); } }; } public static FileIndicatorWriterAdapter createFileIndicatorWriter(Connection conn) { return new FileIndicatorWriterAdapter(conn); } public static AbstractIndicatorWriterAdapter createHostIndicatorWriter(Connection conn) { return new AbstractIndicatorWriterAdapter(conn, HostResponse.class) { @Override public String getUrlType() { return "hosts"; } @Override public String getId(Host indicator) { return indicator.getHostName(); } }; } public static AbstractIndicatorWriterAdapter createUrlIndicatorWriter(Connection conn) { return new AbstractIndicatorWriterAdapter(conn, UrlResponse.class) { @Override public String getUrlType() { return "urls"; } @Override public String getId(Url indicator) { return indicator.getText(); } }; } public static SecurityLabelWriterAdapter createSecurityLabelWriter(Connection conn) { return new SecurityLabelWriterAdapter(conn); } public static TagWriterAdapter createTagWriter(Connection conn) { return new TagWriterAdapter(conn); } public static VictimWriterAdapter createVictimWriter(Connection conn) { return new VictimWriterAdapter(conn); } public static AbstractIndicatorWriterAdapter createIndicatorWriter(String type, Connection conn) { if (Character.isLowerCase(type.charAt(0))) { String indType = Character.toLowerCase(type.charAt(0)) + type.substring(1); return createIndicatorWriter(Indicator.Type.valueOf(indType), conn); } else { return createIndicatorWriter(Indicator.Type.valueOf(type), conn); } } public static AbstractIndicatorWriterAdapter createIndicatorWriter(Indicator.Type type, Connection conn) { switch (type) { case Address: return createAddressIndicatorWriter(conn); case EmailAddress: return createEmailAddressIndicatorWriter(conn); case File: return createFileIndicatorWriter(conn); case Host: return createHostIndicatorWriter(conn); case Url: return createUrlIndicatorWriter(conn); default: return null; } } public static AbstractGroupWriterAdapter createGroupWriter(Group.Type type, Connection conn) { switch (type) { case Adversary: return createAdversaryGroupWriter(conn); case Document: return createDocumentWriter(conn); case Email: return createEmailGroupWriter(conn); case Incident: return createIncidentGroupWriter(conn); case Signature: return createSignatureGroupWriter(conn); case Threat: return createThreatGroupWriter(conn); default: return null; } } public static DocumentWriterAdapter createDocumentWriter(Connection conn) { return new DocumentWriterAdapter(conn); } public static AbstractBatchWriterAdapter createBatchIndicatorWriter(Connection conn) { return new AbstractBatchWriterAdapter(conn) { @Override public String getUrlType() { return "indicators"; } }; } public static ExchangeWriterAdapter createExchangeWriter(Connection conn) { return new ExchangeWriterAdapter(conn); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy