
com.threatconnect.sdk.client.writer.WriterAdapterFactory 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.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