package uk.ac.bbsrc.tgac.miso.core.service.printing.schema.impl;
import net.sf.json.JSONObject;
import net.sourceforge.fluxion.spi.ServiceProvider;
import org.apache.commons.codec.binary.Base64;
import uk.ac.bbsrc.tgac.miso.core.factory.barcode.BarcodeLabelFactory;
import uk.ac.bbsrc.tgac.miso.core.service.printing.factory.FileGeneratingBarcodeLabelFactory;
import uk.ac.bbsrc.tgac.miso.core.service.printing.schema.BarcodableSchema;
import uk.ac.bbsrc.tgac.miso.core.util.LimsUtils;
import java.io.File;
import java.io.UnsupportedEncodingException;
/**
* Created with IntelliJ IDEA.
* User: bianx
* Date: 09/05/2013
* Time: 11:48
* To change this template use File | Settings | File Templates.
*/
@ServiceProvider
public class Brady1DBarcodeLabelSchema implements BarcodableSchema<File, JSONObject> {
private BarcodeLabelFactory<File, JSONObject, BarcodableSchema<File, JSONObject>> barcodeLabelFactory = new FileGeneratingBarcodeLabelFactory<JSONObject>();
public String getName() {
return "brady1DBarcodeLabelSchema";
}
private JSONObject jsonObject;
@Override
public Class<JSONObject> isStateFor() {
return JSONObject.class; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public File getPrintableLabel(JSONObject jsonObject) {
return barcodeLabelFactory.getLabel(this, jsonObject);
}
@Override
public BarcodeLabelFactory getBarcodeLabelFactory() {
return barcodeLabelFactory;
}
@Override
public String getRawState(JSONObject jsonObject) {
StringBuilder sb = new StringBuilder();
try {
String field1 = jsonObject.getString("field1");
String count = jsonObject.getString("field2");
sb.append("m m").append("\n");
sb.append("J").append("\n");
sb.append("S l1;0,0,6,9,50").append("\n");
sb.append("B 1,0,0,CODE128,5,0.25;").append(field1).append("\n");
sb.append("A ").append(count).append("\n");
}
catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
}