public static void main(String[] args) { // Passo 1: Popular a ficha FichaProcedimentoMasterThrift thriftFichaProcedimento = getFicha(); // Passo 2: Popular o DadoTransporte usando os dados da ficha e do software que está enviando. DadoTransporteThrift dadoTransporteThrift = getDadoTransporte(thriftFichaProcedimento); // Passo 3: Serializar a ficha utilizando o TBinaryProtocol da biblioteca thrift. byte[] fichaSerializada = SerializadorThrift.serializar(thriftFichaProcedimento); // Passo 4: Adicionar a ficha serializada e seu tipo no DadoTransporte. dadoTransporteThrift.setTipoDadoSerializado(TIPO_DADO_SERIALIZADO_FICHA_PROCEDIMENTO); dadoTransporteThrift.setDadoSerializado(fichaSerializada); // Não esquecer de informar a versão da ficha a ser exportada (não é a versão do e-SUS AB) VersaoThrift versaoThrift = new VersaoThrift(2, 0, 0); dadoTransporteThrift.setVersao(versaoThrift); try { // Passo 5: Criar um arquivo zip para conter as fichas File zipFile = new File(System.getProperty("user.home") + "/exemploConversaoThrift.zip"); ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(zipFile)); // Passo 6: Dar um nome para o arquivo (nesse caso usamos o UUID da ficha) sempre // acrescentando a extensão ".esus" ao final String entryName = dadoTransporteThrift.getUuidDadoSerializado() + EXTENSAO_EXPORT; // Passo 7: Adicionar uma nova entrada (novo arquivo) dentro do zip com o nome definido outputStream.putNextEntry(new ZipEntry(entryName)); // Passo 8: serializar o DadoTransporte utilizando o TBinaryProtocol da biblioteca thrift byte[] dadoTransporteSerializado = SerializadorThrift.serializar(dadoTransporteThrift); // Passo 9: escrever o dadoTransporteSerializado no arquivo zip outputStream.write(dadoTransporteSerializado); // Para adicionar mais fichas no mesmo zip, repetir os passos 6, 7, 8 e 9 com as demais fichas // Passo 10: Finalizar o arquivo zip outputStream.close(); } catch (IOException e) { e.printStackTrace(); } }
public void setFieldValue(_Fields field, Object value) { switch (field) { case UUID_DADO_SERIALIZADO: if (value == null) { unsetUuidDadoSerializado(); } else { setUuidDadoSerializado((String) value); } break; case TIPO_DADO_SERIALIZADO: if (value == null) { unsetTipoDadoSerializado(); } else { setTipoDadoSerializado((Long) value); } break; case CNES_DADO_SERIALIZADO: if (value == null) { unsetCnesDadoSerializado(); } else { setCnesDadoSerializado((String) value); } break; case COD_IBGE: if (value == null) { unsetCodIbge(); } else { setCodIbge((String) value); } break; case INE_DADO_SERIALIZADO: if (value == null) { unsetIneDadoSerializado(); } else { setIneDadoSerializado((String) value); } break; case NUM_LOTE: if (value == null) { unsetNumLote(); } else { setNumLote((Long) value); } break; case DADO_SERIALIZADO: if (value == null) { unsetDadoSerializado(); } else { setDadoSerializado((ByteBuffer) value); } break; case REMETENTE: if (value == null) { unsetRemetente(); } else { setRemetente((DadoInstalacaoThrift) value); } break; case ORIGINADORA: if (value == null) { unsetOriginadora(); } else { setOriginadora((DadoInstalacaoThrift) value); } break; case VERSAO: if (value == null) { unsetVersao(); } else { setVersao( (br.gov.saude.esus.transport.common.api.configuracaodestino.VersaoThrift) value); } break; } }
/** Dado serializado a partir de um Thrift */ public byte[] getDadoSerializado() { setDadoSerializado(org.apache.thrift.TBaseHelper.rightSize(dadoSerializado)); return dadoSerializado == null ? null : dadoSerializado.array(); }