public static ErrorCode parse(byte[] data) throws MessageAttributeParsingException {
		try {
			if (data.length < 4) {
				throw new MessageAttributeParsingException("Data array too short");
			}
			byte classHeaderByte = data[3];
			int classHeader = Utility.oneByteToInteger(classHeaderByte);
			if ((classHeader < 1) || (classHeader > 6)) throw new MessageAttributeParsingException("Class parsing error");
			byte numberByte = data[4];
			int number = Utility.oneByteToInteger(numberByte);
			if ((number < 0) || (number > 99)) throw new MessageAttributeParsingException("Number parsing error");
			int responseCode = (classHeader * 100) + number;
			ErrorCode result = new ErrorCode();
			result.setResponseCode(responseCode);
			return result;
		} catch (UtilityException ue) {
			throw new MessageAttributeParsingException("Parsing error");
		} catch (MessageAttributeException mae) {
			throw new MessageAttributeParsingException("Parsing error");
		}		
	}