
com.threatconnect.sdk.client.reader.ReaderAdapterFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-sdk Show documentation
Show all versions of java-sdk Show documentation
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