Class/Object

org.cert.netsa.io.ipfix

DeepFieldExtractor

Related Docs: object DeepFieldExtractor | package ipfix

Permalink

final case class DeepFieldExtractor[T] extends FieldExtractor[T] with Product with Serializable

Extracts the specified field from a Record or a Sub-Record and casts the field to a type.

A simple string returns the named IE in the top-level record:

val protoEx = DeepFieldExtractor[Short]("protocolIdentifier") val proto = protoEx.extractFrom(r.get) proto: Option[Short] = Some(6)

One or more template names may preceed the named IE. Separate the sequence of template names and the IE by DeepFieldExtractor$.delim.

val initialTcpEx = DeepFieldExtractor[Short]("yaf_tcp_rev/initialTCPFlags") val initialTcp = initialTcpEx.extractFrom(r.get) initialTcp: Option[Short] = Some(2)

Prepend the DeepFieldExtractor$.deepPrefix to either a lone IE name or a template name and IE sequence to start searching for the path at any depth within the Record.

val unionTcpEx = DeepFieldExtractor[Short]("* /unionTCPFlags") val unionTcp = unionTcpEx.extractFrom(r.get) unionTcp: Option[Short] = Some(28)

To get a BasicList containing a specific IE from a Record, wrap the IE's name ieName as "basicList[ieName]" (see DeepFieldExtractor$.wrapAsBasicList). For these, the type parameter T should always be BasicList.

val agentEx = DeepFieldExtractor[BasicList]("* /basicList[httpUserAgent]") val agent = agentEx.extractFrom(r.get) agent: Option[org.cert.netsa.io.ipfix.BasicList] = Some((BL ...))

Use the BasicList's elements method to get the contents of the BasicList:

val v = Vector.empty[String] ++ agent.get.elements

Maintains a mapping from Template to field position to improve performance when extracting a field from multiple Records that share the same Template.

T

The type to cast the field to.

See also

SimpleFieldExtractor for a simplified version

Linear Supertypes
Serializable, Serializable, Product, Equals, FieldExtractor[T], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DeepFieldExtractor
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. FieldExtractor
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def extractFrom(record: Record): Option[T]

    Permalink

    Extracts the field from a Record as an Option.

    Extracts the field from a Record as an Option.

    returns

    The value referenced from the record or None.

    Definition Classes
    DeepFieldExtractorFieldExtractor
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  13. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. val path: String

    Permalink

    The path to the field to extract.

  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  16. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from FieldExtractor[T]

Inherited from AnyRef

Inherited from Any

Ungrouped