Skip to content

Commit 6cd7faa

Browse files
committed
Adicionada documentação adicional
1 parent afccb99 commit 6cd7faa

File tree

8 files changed

+83
-43
lines changed

8 files changed

+83
-43
lines changed

file_encoder.log

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/main/java/core/util/BitUtils.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,4 @@ public static int setBit(int data, int index) {
2929
return data | (1 << index);
3030
}
3131

32-
/**
33-
* Converte um inteiro em um array de inteiros que podem assumir o valor de um ou zero
34-
* Exemplo: 3 => [1, 0, 1]
35-
*
36-
* @param bitset Valor a ser convertido
37-
* @return {@code int[]}
38-
*/
39-
public static int[] toBitArray(int bitset) {
40-
int[] bitArray = new int[bitSetLength(bitset)];
41-
for (int i=0; i<bitArray.length; i++) {
42-
bitArray[i] = (bitset >> (bitArray.length - i - 1)) & 1;
43-
}
44-
return bitArray;
45-
}
46-
4732
}

src/main/java/core/util/FileUtils.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@
66

77
public class FileUtils {
88

9+
/**
10+
* Verifica se a extensao de um arquivo corresponde a informada por parametro
11+
*
12+
* @param file Arquivo
13+
* @param extennsionName Extensao a ser verificada
14+
* @return {@code boolean}
15+
*/
916
public static boolean checkExtensionName(File file, String extennsionName) {
1017
if (isNull(file)) {
1118
return false;
@@ -14,19 +21,45 @@ public static boolean checkExtensionName(File file, String extennsionName) {
1421
return extensionOpt.isPresent() && extensionOpt.get().equals(extennsionName);
1522
}
1623

24+
/**
25+
* Retorna um novo arquivo com o mesmo nome do arquivo informado e com uma extensao diferente
26+
*
27+
* @param file Arquivo
28+
* @param extension Nova extensao
29+
* @return {@code File}
30+
*/
1731
public static File changeExtension(File file, String extension) {
1832
String filename = _getFileNameWithoutExtension(file) + "." + extension;
1933
return new File(file.getParent(), filename);
2034
}
2135

36+
/**
37+
* Retorna um novo arquivo com o mesmo nome do arquivo informado concatenando uma nova extensao
38+
*
39+
* @param file Arquivo
40+
* @param extension Extensao a ser concatenada
41+
* @return {@code File}
42+
*/
2243
public static File appendExtension(File file, String extension) {
2344
return new File(file.getParent(), file.getName() + "." + extension);
2445
}
2546

47+
/**
48+
* Retorna um novo arquivo com o mesmo nome do arquivo informado sem extensao
49+
*
50+
* @param file Arquivo
51+
* @return {@code File}
52+
*/
2653
public static File removeExtension(File file) {
2754
return new File(file.getParent(), _getFileNameWithoutExtension(file));
2855
}
2956

57+
/**
58+
* Retorna a extensao do arquivo a partir do seu nome
59+
*
60+
* @param filename Nome do arquivo
61+
* @return {@code Optional<String>}
62+
*/
3063
public static Optional<String> getFileExtension(String filename) {
3164
return Optional.ofNullable(filename)
3265
.filter(f -> f.contains("."))

src/main/java/encoder/Encoder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import java.io.InputStream;
55
import java.io.OutputStream;
66

7+
/**
8+
* Interface com metodos para a codificacao e decodificacao de uma stream de dados.
9+
*/
710
public interface Encoder {
811

912
public void encode(InputStream reader, OutputStream writer) throws IOException;

src/main/java/encoder/bean/CodingType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import java.util.Arrays;
44

5+
/**
6+
* Tipos de codificacao disponiveis.
7+
*/
58
public enum CodingType {
69

710
GOLOMB("Golomb", 0),
@@ -10,7 +13,9 @@ public enum CodingType {
1013
UNARY("Unária", 3),
1114
DELTA("Delta", 4);
1215

16+
/* Descricao da codificacao */
1317
private String name;
18+
/* Numero inteiro colocado no cabecalho do arquivo codificado */
1419
private int header;
1520

1621
private CodingType(String name, int header) {

src/main/java/errorcorrecting/crc/CrcUtils.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,17 @@
22

33
import core.util.BitUtils;
44

5+
/**
6+
* Classe responsavel pelo tratamento de erro CRC.
7+
*/
58
public class CrcUtils implements PolynomialCodes {
69

10+
/**
11+
* Calcula o resto da divisao polinomial CRC-8 AMT
12+
*
13+
* @param data Informacao a ser dividida
14+
* @return {@code int}
15+
*/
716
public static int calculateCrc8(int data) {
817
int shift = BitUtils.bitSetLength(data) - 1;
918
int crc = (data << 8);
@@ -13,7 +22,14 @@ public static int calculateCrc8(int data) {
1322
}
1423
return crc & 0xFF;
1524
}
16-
25+
26+
/**
27+
* Verifica se o resto da divisao polinomial CRC-8 esta de acordo com o esperado
28+
*
29+
* @param data Informacao a ser processada
30+
* @param remainder Resto da divisao esperado
31+
* @return {@code boolean}
32+
*/
1733
public static boolean checkCrc8(int data, int remainder) {
1834
return calculateCrc8(data) == remainder;
1935
}

src/main/java/errorcorrecting/crc/PolynomialCodes.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package errorcorrecting.crc;
22

3+
/**
4+
* Constantes com os polinomiais utilizados na codificacao CRC.
5+
*/
36
public interface PolynomialCodes {
47

58
public final int POLYNOMIAL_CRC8_ATM = 0b100000111;

src/main/java/errorcorrecting/hamming/HammingUtils.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,19 @@
22

33
import core.util.BitUtils;
44

5+
/**
6+
* Classe responsavel pelo tratamento de erro Hamming.
7+
*/
58
public class HammingUtils {
69

10+
/**
11+
* Retorna o codeword Hamming de 7 bits a partir de um simbolo de 4 bits
12+
*
13+
* @param symbol Simbolo a ser processado
14+
* @return {@code int}
15+
*/
716
public static int getCodeword(int symbol) {
8-
// r1 r2 m1 r4 m2 m3 m4
17+
// Sequencia codificada: r1 r2 m1 r4 m2 m3 m4
918
int r1 = getFirstBitHamming(symbol) << 6;
1019
int r2 = getSecondBitHamming(symbol) << 5;
1120
int r4 = getThirdBitHamming(symbol) << 3;
@@ -14,13 +23,25 @@ public static int getCodeword(int symbol) {
1423
return r1 | r2 | r4 | m1 | m234;
1524
}
1625

26+
/**
27+
* Retorna o simbolo decodificado de um codeword Hamming
28+
*
29+
* @param codeword Codeword Hamming
30+
* @return {@code int}
31+
*/
1732
public static int parseCodeword(int codeword) {
1833
int m1 = (codeword >> 1) & 0b1000;
1934
int m234 = codeword & 0b0111;
2035
int symbol = m1 | m234;
2136
return symbol;
2237
}
2338

39+
/**
40+
* Retorna o simbolo decodificado de um codeword Hamming corrigindo os bits inconsistentes
41+
*
42+
* @param codeword Codeword Hamming
43+
* @return {@code int}
44+
*/
2445
public static int parseAndCorrectCodeword(int codeword) {
2546
int symbol = parseCodeword(codeword);
2647
int r1Check = ((codeword >> 6) & 1) ^ getFirstBitHamming(symbol);

0 commit comments

Comments
 (0)