public class IPAddressLargeDivisionGrouping extends AddressDivisionGroupingBase implements IPAddressDivisionSeries
Constructor and Description |
---|
IPAddressLargeDivisionGrouping(IPAddressLargeDivision[] divisions,
IPAddressNetwork<?,?,?,?,?> network) |
Modifier and Type | Method and Description |
---|---|
boolean |
containsPrefixBlock(int prefixLength)
Returns whether the values of this series contains the prefix block for the given prefix length.
|
boolean |
containsSinglePrefixBlock(int prefixLength)
Returns whether the values of this series contains a single prefix block for the given prefix length.
|
boolean |
equals(Object o)
Two groupings are equal if:
- they match type/version (ipv4, ipv6, mac, or a specific grouping class)
- they match division counts
- each division matches bit counts
- each division matches their specific grouping class
- each division matches values
Prefix lengths, for those groupings and/or divisionsS that have them, are ignored.
|
IPAddressLargeDivision |
getDivision(int index) |
IPAddressNetwork<?,?,?,?,?> |
getNetwork() |
Integer |
getNetworkPrefixLength()
Returns the CIDR network prefix length of the series, or null if the series has no associated prefix length.
|
Integer |
getPrefixLength()
The bit-length of the portion of the address that is not specific to an individual address but common amongst a group of addresses.
|
Integer |
getPrefixLengthForSingleBlock()
Returns a prefix length for which the range of this segment grouping matches the block of addresses for that prefix.
|
getBytes, getBytes, getBytes, getCount, getDivisionCount, getDivisionStrings, getMinPrefixLengthForBlock, getPrefixCount, getUpperBytes, getUpperBytes, getUpperBytes, getUpperValue, getValue, hashCode, includesMax, includesZero, isFullRange, isMax, isMultiple, isPrefixBlock, isPrefixed, isSequential, isSinglePrefixBlock, isZero, toString
getBitCount, getBlockCount, getCount, getDivisionStrings, getPrefixCount, getPrefixCount, getSequentialBlockIndex, isMore, isPrefixBlock, isPrefixed, isSequential, isSinglePrefixBlock
compareTo, getBitsForCount, getBlockSize, getByteCount, getBytes, getBytes, getBytes, getMinPrefixLengthForBlock, getUpperBytes, getUpperBytes, getUpperBytes, getUpperValue, getValue, includesMax, includesZero, isFullRange, isMax, isMultiple, isZero
isPrefixBlock, isPrefixed
getDivisionCount
public IPAddressLargeDivisionGrouping(IPAddressLargeDivision[] divisions, IPAddressNetwork<?,?,?,?,?> network)
public IPAddressNetwork<?,?,?,?,?> getNetwork()
getNetwork
in interface IPAddressStringDivisionSeries
public IPAddressLargeDivision getDivision(int index)
getDivision
in interface AddressDivisionSeries
getDivision
in interface IPAddressDivisionSeries
getDivision
in interface AddressStringDivisionSeries
getDivision
in interface IPAddressStringDivisionSeries
getDivision
in class AddressDivisionGroupingBase
public boolean containsPrefixBlock(int prefixLength)
AddressItem
Use AddressItem.getMinPrefixLengthForBlock()
to determine the smallest prefix length for which this method returns true.
containsPrefixBlock
in interface AddressItem
public boolean containsSinglePrefixBlock(int prefixLength) throws PrefixLenException
AddressItem
Use AddressItem.getPrefixLengthForSingleBlock()
to determine whether there is a prefix length for which this method returns true.
containsSinglePrefixBlock
in interface AddressItem
PrefixLenException
- if prefixLength exceeds the bit count or is negativepublic Integer getPrefixLengthForSingleBlock()
AddressDivisionGroupingBase
getPrefixLengthForSingleBlock
in interface AddressItem
getPrefixLengthForSingleBlock
in class AddressDivisionGroupingBase
public Integer getPrefixLength()
AddressDivisionSeries
Typically this is the largest number of bits in the upper-most portion of the section for which the remaining bits assume all possible values.
For IP addresses, this must be explicitly defined when the address is created. For example, 1.2.0.0/16 has a prefix length of 16, while 1.2.*.* has no prefix length, even though they both represent the same set of addresses and are considered equal. Prefixes can be considered variable for any given IP addresses and can depend on the routing table.
The methods AddressItem.getMinPrefixLengthForBlock()
and AddressItem.getPrefixLengthForSingleBlock()
can help you to obtain or define a prefix length if one does not exist already.
1.2.0.0/16 and 1.2.*.* both the same equivalent and minimum prefix length of 16.
For MAC addresses, the prefix is initially defined by the range, so 1:2:3:*:*:* has a prefix length of 24 by definition. Addresses derived from the original may retain the original prefix length regardless of their range.
getPrefixLength
in interface AddressDivisionSeries
getPrefixLength
in interface IPAddressStringDivisionSeries
getPrefixLength
in class AddressDivisionGroupingBase
public Integer getNetworkPrefixLength()
IPAddressDivisionSeries
Equivalent to AddressDivisionSeries.getPrefixLength()
,
which is the more general concept of set of address series that share the same set of leading bits.
For IP addresses and sections the prefix length and the CIDR network prefix length are the same thing.
For IP addresses and sections each individual segment has an associated prefix length which is determine by the network prefix length. The segment prefix lengths follow the pattern: null, null, ...., null, x, 0, 0, ..., 0
For instance, an IPv4 address 1.2.3.4/16 has the network prefix length 16. The segment prefix lengths are [null, 8, 0, 0] The segment prefix lengths of 1.2.3.4/22 are [null, null, 6, 0]
getNetworkPrefixLength
in interface IPAddressDivisionSeries
public boolean equals(Object o)
AddressDivisionGroupingBase
equals
in class AddressDivisionGroupingBase