Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public Map<String, Object> decodeDataFields(List<FieldDefinition> fieldDefinitions, byte[] fieldBytes) {
- Map<String, Object> fieldValues = new HashMap<>();
- // TODO Exercise 2 add code here
- int byteCounter = 0;
- for(FieldDefinition fd : fieldDefinitions) { // int size = fieldDefinitions.size(); for(int i=0; i<size; i++) {}
- if(fd.getType().getByteLength()!=-1) {
- final byte[] masivche = new byte[fd.getType().getByteLength()];
- int startByte = byteCounter, endByte = byteCounter+fd.getType().getByteLength();
- int localCounter = 0;
- for(int i=startByte; i<endByte; i++) {
- masivche[localCounter] = fieldBytes[i];
- localCounter++;
- }
- byteCounter+=fd.getType().getByteLength();
- Object object = new Object();
- ByteBuffer buffer = ByteBuffer.wrap(masivche);
- switch(fd.getType()) {
- case Byte:
- object = masivche[0];
- break;
- case Short:
- object = buffer.getShort();
- break;
- case Int:
- object = buffer.getInt();
- break;
- case Long:
- object = buffer.getLong();
- break;
- case Float:
- object = buffer.getFloat();
- break;
- case Double:
- object = buffer.getDouble();
- break;
- }
- fieldValues.put(fd.getName(), object);
- }
- }
- return fieldValues;
- }
Advertisement
Add Comment
Please, Sign In to add comment