AreWe

Untitled

Mar 12th, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. @Override
  2. public Map<String, Object> decodeDataFields(List<FieldDefinition> fieldDefinitions, byte[] fieldBytes) {
  3.  
  4. Map<String, Object> fieldValues = new HashMap<>();
  5.  
  6. // TODO Exercise 2 add code here
  7.  
  8. int byteCounter = 0;
  9. for(FieldDefinition fd : fieldDefinitions) { // int size = fieldDefinitions.size(); for(int i=0; i<size; i++) {}
  10.  
  11. if(fd.getType().getByteLength()!=-1) {
  12.  
  13. final byte[] masivche = new byte[fd.getType().getByteLength()];
  14.  
  15. int startByte = byteCounter, endByte = byteCounter+fd.getType().getByteLength();
  16.  
  17. int localCounter = 0;
  18. for(int i=startByte; i<endByte; i++) {
  19. masivche[localCounter] = fieldBytes[i];
  20. localCounter++;
  21. }
  22. byteCounter+=fd.getType().getByteLength();
  23.  
  24. Object object = new Object();
  25. ByteBuffer buffer = ByteBuffer.wrap(masivche);
  26. switch(fd.getType()) {
  27. case Byte:
  28. object = masivche[0];
  29. break;
  30. case Short:
  31. object = buffer.getShort();
  32. break;
  33. case Int:
  34. object = buffer.getInt();
  35. break;
  36. case Long:
  37. object = buffer.getLong();
  38. break;
  39. case Float:
  40. object = buffer.getFloat();
  41. break;
  42. case Double:
  43. object = buffer.getDouble();
  44. break;
  45. }
  46.  
  47. fieldValues.put(fd.getName(), object);
  48.  
  49. }
  50.  
  51. }
  52.  
  53. return fieldValues;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment