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

com.threatconnect.sdk.client.reader.ReaderAdapterFactory 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.reader;

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

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

    public static AbstractGroupReaderAdapter createAdversaryGroupReader(Connection conn) {
        return new AbstractGroupReaderAdapter(conn, AdversaryResponse.class, Adversary.class, AdversaryListResponse.class) {
            @Override
            public String getUrlType() {
                return "adversaries";
            }
        };
    }

    public static AbstractGroupReaderAdapter createEmailGroupReader(Connection conn) {
        return new AbstractGroupReaderAdapter(conn, EmailResponse.class, Email.class, EmailListResponse.class) {
            @Override
            public String getUrlType() {
                return "emails";
            }
        };
    }

    public static AbstractGroupReaderAdapter createIncidentGroupReader(Connection conn) {
        return new AbstractGroupReaderAdapter(conn, IncidentResponse.class, Incident.class, IncidentListResponse.class) {
            @Override
            public String getUrlType() {
                return "incidents";
            }
        };
    }

    public static AbstractGroupReaderAdapter createSignatureGroupReader(Connection conn) {
        return new AbstractGroupReaderAdapter(conn, SignatureResponse.class, Signature.class, SignatureListResponse.class) {
            @Override
            public String getUrlType() {
                return "signatures";
            }
        };
    }

    public static AbstractGroupReaderAdapter createThreatGroupReader(Connection conn) {
        return new AbstractGroupReaderAdapter(conn, ThreatResponse.class, Threat.class, ThreatListResponse.class) {
            @Override
            public String getUrlType() {
                return "threats";
            }
        };
    }

    public static AbstractIndicatorReaderAdapter
createAddressIndicatorReader(Connection conn) { return new AbstractIndicatorReaderAdapter
(conn, AddressResponse.class, Address.class, AddressListResponse.class) { @Override public String getUrlType() { return "addresses"; } }; } public static AbstractIndicatorReaderAdapter createEmailAddressIndicatorReader(Connection conn) { return new AbstractIndicatorReaderAdapter(conn, EmailAddressResponse.class, EmailAddress.class, EmailAddressListResponse.class) { @Override public String getUrlType() { return "emailAddresses"; } }; } public static FileIndicatorReaderAdapter createFileIndicatorReader(Connection conn) { return new FileIndicatorReaderAdapter(conn); } public static AbstractIndicatorReaderAdapter createHostIndicatorReader(Connection conn) { return new AbstractIndicatorReaderAdapter(conn, HostResponse.class, Host.class, HostListResponse.class) { @Override public String getUrlType() { return "hosts"; } }; } public static AbstractIndicatorReaderAdapter createUrlIndicatorReader(Connection conn) { return new AbstractIndicatorReaderAdapter(conn, UrlResponse.class, Url.class, UrlListResponse.class) { @Override public String getUrlType() { return "urls"; } }; } public static OwnerReaderAdapter createOwnerReader(Connection conn) { return new OwnerReaderAdapter(conn) { }; } public static SecurityLabelReaderAdapter createSecurityLabelReader(Connection conn) { return new SecurityLabelReaderAdapter(conn); } public static TagReaderAdapter createTagReader(Connection conn) { return new TagReaderAdapter(conn); } public static VictimReaderAdapter createVictimReader(Connection conn) { return new VictimReaderAdapter(conn); } public static AbstractGroupReaderAdapter createGroupReader(String type, Connection conn) { return createGroupReader(Group.Type.valueOf(type), conn); } public static AbstractGroupReaderAdapter createGroupReader(Group.Type type, Connection conn) { switch (type) { case Adversary: return createAdversaryGroupReader(conn); case Email: return createEmailGroupReader(conn); case Incident: return createIncidentGroupReader(conn); case Signature: return createSignatureGroupReader(conn); case Threat: return createThreatGroupReader(conn); default: return null; } } public static AbstractIndicatorReaderAdapter createIndicatorReader(String type, Connection conn) { if (Character.isLowerCase(type.charAt(0))) { String indType = Character.toLowerCase(type.charAt(0)) + type.substring(1); return createIndicatorReader(Indicator.Type.valueOf(indType), conn); } else { return createIndicatorReader(Indicator.Type.valueOf(type), conn); } } public static AbstractIndicatorReaderAdapter createIndicatorReader(Indicator.Type type, Connection conn) { if ( type == null ) { return null; } switch (type) { case Address: return createAddressIndicatorReader(conn); case EmailAddress: return createEmailAddressIndicatorReader(conn); case File: return createFileIndicatorReader(conn); case Host: return createHostIndicatorReader(conn); case Url: return createUrlIndicatorReader(conn); default: return null; } } /** * Creates an instance of {@link DocumentReaderAdapter}. * * @param conn connection defining api urls * @return and instance of DocumentReaderAdapter */ public static DocumentReaderAdapter createDocumentReader(Connection conn) { return new DocumentReaderAdapter(conn); } public static BatchReaderAdapter createIndicatorBatchReader(Connection conn) { return new BatchReaderAdapter<>(conn); } public static ExchangeReaderAdapter createExchangeReader(Connection conn) { return new ExchangeReaderAdapter(conn); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy