blob: 301d417c9aeada9d809826af8430b21041f27205 [file] [log] [blame]
package com.android.server.wifi.anqp;
import java.net.ProtocolException;
import java.nio.ByteBuffer;
import java.util.Arrays;
/**
* The ANQP Capability List element, 802.11-2012 section 8.4.4.3
*/
public class CapabilityListElement extends ANQPElement {
private final Constants.ANQPElementType[] mCapabilities;
public CapabilityListElement(Constants.ANQPElementType infoID, ByteBuffer payload)
throws ProtocolException {
super(infoID);
if ((payload.remaining() & 1) == 1)
throw new ProtocolException("Odd length");
mCapabilities = new Constants.ANQPElementType[payload.remaining() / Constants.BYTES_IN_SHORT];
int index = 0;
while (payload.hasRemaining()) {
int capID = payload.getShort() & Constants.SHORT_MASK;
Constants.ANQPElementType capability = Constants.mapANQPElement(capID);
if (capability == null)
throw new ProtocolException("Unknown capability: " + capID);
mCapabilities[index++] = capability;
}
}
public Constants.ANQPElementType[] getCapabilities() {
return mCapabilities;
}
@Override
public String toString() {
return "CapabilityList{" +
"mCapabilities=" + Arrays.toString(mCapabilities) +
'}';
}
}