All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pnuema.java.barcode.symbologies.FIM Maven / Gradle / Ivy

package com.pnuema.java.barcode.symbologies;

import com.pnuema.java.barcode.BarcodeCommon;
import com.pnuema.java.barcode.IBarcode;

/**
 * FIM encoding
 */
public class FIM extends BarcodeCommon implements IBarcode {
    public enum FIMTypes {FIM_A, FIM_B, FIM_C, FIM_D, FIM_E}

    public FIM(String input) {
        input = input.trim();

        String[] FIM_Codes = {"110010011", "101101101", "110101011", "111010111", "101000101"};
        switch (input) {
            case "A":
            case "a":
                setRawData(FIM_Codes[FIMTypes.FIM_A.ordinal()]);
                break;
            case "B":
            case "b":
                setRawData(FIM_Codes[FIMTypes.FIM_B.ordinal()]);
                break;
            case "C":
            case "c":
                setRawData(FIM_Codes[FIMTypes.FIM_C.ordinal()]);
                break;
            case "D":
            case "d":
                setRawData(FIM_Codes[FIMTypes.FIM_D.ordinal()]);
                break;
            case "E":
            case "e":
                setRawData(FIM_Codes[FIMTypes.FIM_E.ordinal()]);
                break;
            default:
                error("EFIM-1: Could not determine encoding type. (Only pass in A, B, C, D, or E)");
                break;
        }
    }

    private String encodeFIM() {
        StringBuilder encoded = new StringBuilder();
        for (char c : getRawData().toCharArray()) {
            encoded.append(c).append("0");
        }

        encoded = new StringBuilder(encoded.substring(0, encoded.length() - 1));

        return encoded.toString();
    }

    public String getEncodedValue() {
        return encodeFIM();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy