BarcodeBean.java 1.13 KB
package fi.codecrew.moya.beans;

import java.io.IOException;
import java.io.InputStream;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.utilities.BarcodeUtils;

/**
 * Session Bean implementation class BarcodeBean
 */
@Stateless
@LocalBean
public class BarcodeBean implements BarcodeBeanLocal {

	private static final String PRINTED_CARD_PREFIX = "200";
	private static final Logger logger = LoggerFactory.getLogger(BarcodeBean.class);

	/**
	 * Default constructor.
	 */
	public BarcodeBean() {
		// TODO Auto-generated constructor stub
	}

	public InputStream getCardBarcode(PrintedCard printedCard) throws IOException {
		StringBuilder sb = new StringBuilder();
		sb.append(PRINTED_CARD_PREFIX);
		String idStr = printedCard.getId().toString();

		for (int i = 12 - idStr.length() - sb.length(); i > 0; --i) {
			sb.append("0");
		}
		sb.append(idStr);
		String barcode = sb.toString();
		logger.debug("Geneating barcode for card {} : {}", printedCard, barcode);
		return BarcodeUtils.getBarcodeEAN(barcode);
	}
}