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

org.pcap4j.packet.factory.SimplePacketFactoryBinder Maven / Gradle / Ivy

The newest version!
/*_##########################################################################
  _##
  _##  Copyright (C) 2013-2014  Pcap4J.org
  _##
  _##########################################################################
*/

package org.pcap4j.packet.factory;

import org.pcap4j.packet.Packet;
import org.pcap4j.packet.namednumber.NamedNumber;

/**
 * @author Kaito Yamada
 * @since pcap4j 0.9.16
 */
final class SimplePacketFactoryBinder {

  private static final SimplePacketFactoryBinder INSTANCE = new SimplePacketFactoryBinder();

  private SimplePacketFactoryBinder() {}

  public static SimplePacketFactoryBinder getInstance() {
    return INSTANCE;
  }

  @SuppressWarnings("unchecked")
  public > PacketFactory getPacketFactory(
      Class targetClass, Class numberClass) {
    if (Packet.class.isAssignableFrom(targetClass)) {
      return (PacketFactory) StaticUnknownPacketFactory.getInstance();
    } else {
      StringBuilder sb = new StringBuilder(100);
      sb.append("targetClass: ").append(targetClass).append(" numberClass: ").append(numberClass);
      throw new IllegalArgumentException(sb.toString());
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy