/** * Checks if an arbitrary option is present. * @param number the option number * @return true if present */ public boolean hasOption(int number) { return Collections.binarySearch(asSortedList(), new Option(number)) >= 0; }
/** * Checks if an arbitrary option is present. * @param number the option number * @return true if present */ public boolean hasOption(int number) { return Collections.binarySearch(asSortedList(), new Option(number)) >= 0; }
for (Option opt : asSortedList()) { if (opt.getNumber()!=oldNr) { if (oldNr!=-1) {
for (Option opt : asSortedList()) { if (opt.getNumber()!=oldNr) { if (oldNr!=-1) {
@Override public String toString() { String appendix = ""; // crude way to check nothing extra is set in an empty message if (!hasEmptyToken() || getOptions().asSortedList().size()>0 || getPayloadSize()>0) { String payload = getPayloadString(); if (payload == null) { payload = "no payload"; } else { int len = payload.length(); if (payload.indexOf("\n")!=-1) payload = payload.substring(0, payload.indexOf("\n")); if (payload.length() > 24) payload = payload.substring(0,20); payload = "\""+payload+"\""; if (payload.length() != len+2) payload += ".. " + payload.length() + " bytes"; } appendix = " NON-EMPTY: Token="+Arrays.toString(getToken())+", "+getOptions()+", "+payload; } return String.format("%s MID=%5d%s", getType(), getMID(), appendix); }
@Override public String toString() { String appendix = ""; // crude way to check nothing extra is set in an empty message if (!hasEmptyToken() || getOptions().asSortedList().size()>0 || getPayloadSize()>0) { String payload = getPayloadString(); if (payload == null) { payload = "no payload"; } else { int len = payload.length(); if (payload.indexOf("\n")!=-1) payload = payload.substring(0, payload.indexOf("\n")); if (payload.length() > 24) payload = payload.substring(0,20); payload = "\""+payload+"\""; if (payload.length() != len+2) payload += ".. " + payload.length() + " bytes"; } appendix = " NON-EMPTY: Token="+Arrays.toString(getToken())+", "+getOptions()+", "+payload; } return String.format("%s MID=%5d%s", getType(), getMID(), appendix); }
List<Option> opts = options.asSortedList(); if (!opts.isEmpty()) { Map<String, List<String>> optMap = new HashMap<>();
public void check(Message message) { List<Option> options = message.getOptions().asSortedList(); for (Option option : options) { for (int n : numbers) { if (option.getNumber() == n) { fail("Must not have option number " + n + " but has " + option); } } } }
Header[] headers = getHttpHeaders(coapResponse.getOptions().asSortedList()); httpResponse.setHeaders(headers);
Header[] headers = getHttpHeaders(coapResponse.getOptions().asSortedList()); httpResponse.setHeaders(headers);
Header[] headers = getHttpHeaders(coapRequest.getOptions().asSortedList()); for (Header header : headers) { httpRequest.addHeader(header);
Header[] headers = getHttpHeaders(coapRequest.getOptions().asSortedList()); for (Header header : headers) { httpRequest.addHeader(header);
for (Option opt : options.asSortedList()) { Onem2m.Onem2mCoapOptionDef optDef = Onem2m.getCoapOptionCoap(opt.getNumber()); if (null == optDef) {
@Test public void testResponseParsing() { Response response = new Response(ResponseCode.CONTENT); response.setType(Type.NON); response.setMID(expectedMid); response.setToken(new byte[] { 22, -1, 0, 78, 100, 22 }); response.getOptions().addETag(new byte[] { 1, 0, 0, 0, 0, 1 }) .addLocationPath("/one/two/three/four/five/six/seven/eight/nine/ten") .addOption(new Option(57453, "Arbitrary".hashCode())).addOption(new Option(19205, "Arbitrary1")) .addOption(new Option(19205, "Arbitrary2")).addOption(new Option(19205, "Arbitrary3")); RawData rawData = serializer.serializeResponse(response); Response result = (Response) parser.parseMessage(rawData); assertEquals(response.getMID(), result.getMID()); assertArrayEquals(response.getToken(), result.getToken()); assertEquals(response.getOptions().asSortedList(), result.getOptions().asSortedList()); }
@Test public void testRequestParsing() { Request request = new Request(Code.POST); request.setType(Type.NON); request.setMID(expectedMid); request.setToken(new byte[] { 11, 82, -91, 77, 3 }); request.getOptions().addIfMatch(new byte[] { 34, -17 }).addIfMatch(new byte[] { 88, 12, -2, -99, 5 }) .setContentFormat(40).setAccept(40); RawData rawData = serializer.serializeRequest(request); // MessageHeader header = parser.parseHeader(rawData); // assertTrue(CoAP.isRequest(header.getCode())); // // Request result = parser.parseRequest(rawData); Request result = (Request) parser.parseMessage(rawData); assertEquals(request.getMID(), result.getMID()); assertArrayEquals(request.getToken(), result.getToken()); assertEquals(request.getOptions().asSortedList(), result.getOptions().asSortedList()); }
private static byte[] serializeOptionsAndPayload(final Message message) { DatagramWriter writer = new DatagramWriter(); List<Option> options = message.getOptions().asSortedList(); // already
writer.writeBytes(message.getToken()); List<Option> options = message.getOptions().asSortedList(); // already sorted int lastOptionNumber = 0; for (Option option:options) {
String resourceTypeOption = null; String resourceTypeQuerry = null; for (Option opt : options.asSortedList()) { switch (opt.getNumber()) { case Onem2m.CoapOption.ONEM2M_FR: