public class XMLConversionService extends Service implements csbase.remote.XMLConversionServiceInterface
XMLConversionService implementa o serviço de conversão
de arquivos XML. Este serviço é usado para converter arquivos XML para
torná-los compatíveis com a última versão do DTD. Isto é feito usando-se
conversores XML
IMPORTANTE (1): Este serviço deverá ser usado como um super-serviço para conversões de aplicações específicas. Assim, não deverá ser instanciado (createService()) diretamente, mas sim os sub-serviços (sub-classes deste), que deverão implementar o createService() retornando uma instância de sua classe específica. Outras duas obrigatoriedades para sub-classes deste são: 1 - implementar o método createConverter(String) para retornar o convertedor xml específico de sua aplicação e 2 - declarar que o sub-serviço específico implementa XMLConversionServiceInterface (caso contrário, o ProxyUtils, que só verifica as interfaces diretamente implementadas dará um erro, indicando que o sub-serviço não implementa nenhuma interface de serviço remoto). Opcionalmente, o sub-serviço poderá implementar o método postConvert() para executar operações específicas de pós conversão. No projeto MARLIM há um exemplo (MarlimXMLConversionService) que pode ser usado como exemplo
IMPORTANTE (2): atualmente somos forçados a sobrescrever o arquivo
original (é possível antes fazer um backup) pois o CSBase não permite
transmitirmos dados diretamente por channel do servidor para o cliente sem
que este conteúdo esteja gravado em um ServerProjectFile.
Idealmente o resultado da conversão seria transferido diretamente do documento DOM em memória para o cliente via rede, sem a necessidade de gravá-lo previamente como um arquivo XML. Com isto o cliente poderia ler o arquivo diretamente da rede, marcá-lo como "sujo" e deixar a gravação por conta do usuário, no cliente.
| Constructor and Description |
|---|
XMLConversionService()
Cria uma instância do serviço.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
append(File src,
OutputStream outputStream)
Grava o conteúdo de um arquivo em um stream de saída.
|
tecgraf.javautils.xml.conversion.XMLConverter.XMLConversionStatus |
convertXMLToFile(Object projectId,
String[] clientPath,
boolean validate,
String dtdPrefix) |
String |
convertXMLToString(Object projectId,
String[] clientPath,
boolean validate,
String dtdPrefix) |
protected tecgraf.javautils.xml.conversion.XMLConverter |
createConverter(String dtdPrefix)
Cria o conversor a ser utilizado.
|
static void |
createService()
Cria a instância do serviço.
|
static XMLConversionService |
getInstance()
Retorna a instância do serviço.
|
protected String |
getXMLEndMarker()
Retorna o marcador da tag final do arquivo XML.
|
protected boolean |
has2Update(Object arg,
Object event) |
void |
initService()
Método abstrato de inicialização do serviço.
|
protected void |
postConvert(Object projectId,
String[] clientPath,
String dtdPrefix,
OutputStream outputStream,
String xmlData,
tecgraf.javautils.xml.conversion.XMLConverter.XMLConversionStatus status)
Método com as ações de pós conversão.
|
protected void |
preConvert(Object projectId,
String[] clientPath,
String dtdPrefix,
String xmlData)
Executa as ações antes da conversão
|
void |
shutdownService()
Método abstrato de término do serviço
|
getBooleanProperty, getDefaultLocale, getDoubleProperty, getExternalPropertyFile, getFormattedString, getFormattedString, getInitializationDependencies, getInstance, getIntProperty, getKey, getLongProperty, getName, getOptionalString, getOptionalString, getOSPropertyPath, getSenderName, getServices, getString, getString, getStringListProperty, getStringProperty, getSystemId, getThreadLocale, getUser, getUserPermission, hasProperty, incrCounter, isActive, isEnabled, isInternalServerRequest, isLoggingNotifications, isPropertyNull, logNotification, setEnabled, setKey, setSystemId, setUserIdhandleException, handleFatalErroraddObserver, countObservers, deleteObserver, deleteObserver, deleteObservers, has2update, notifyObserverspublic XMLConversionService()
throws ServerException
ServerException - se houver algum erro na criação do serviçopublic void initService()
throws ServerException
initService in class ServiceServerException - em caso de falhapublic void shutdownService()
throws ServerException
shutdownService in class ServiceServerException - em caso de falha.protected boolean has2Update(Object arg, Object event)
has2Update in class csbase.remote.RemoteObjectObservablepublic tecgraf.javautils.xml.conversion.XMLConverter.XMLConversionStatus convertXMLToFile(Object projectId, String[] clientPath, boolean validate, String dtdPrefix) throws RemoteException
convertXMLToFile in interface csbase.remote.XMLConversionServiceInterfaceRemoteExceptionprotected tecgraf.javautils.xml.conversion.XMLConverter createConverter(String dtdPrefix) throws tecgraf.javautils.xml.conversion.exception.XMLConversionException
dtdPrefix - prefixo DTDtecgraf.javautils.xml.conversion.exception.XMLConversionException - em caso de falha de conversão.protected void postConvert(Object projectId, String[] clientPath, String dtdPrefix, OutputStream outputStream, String xmlData, tecgraf.javautils.xml.conversion.XMLConverter.XMLConversionStatus status)
projectId - - identificador do projetoclientPath - - path relativo para o arquivo no projetodtdPrefix - - string que será prefixada na declaração do DTD. Pode ser
null caso não se deseje um prefixo específicooutputStream - - stream do arquivo convertidoxmlData - - conteúdo do arquivo xmlstatus - - o status da conversãoprotected void preConvert(Object projectId, String[] clientPath, String dtdPrefix, String xmlData)
projectId - - identificador do projetoclientPath - - path relativo para o arquivo no projetodtdPrefix - - string que será prefixada na declaração do DTD. Pode ser
null caso não se deseje um prefixo específicoxmlData - - conteúdo do arquivo xmlprotected String getXMLEndMarker()
public String convertXMLToString(Object projectId, String[] clientPath, boolean validate, String dtdPrefix) throws RemoteException
convertXMLToString in interface csbase.remote.XMLConversionServiceInterfaceRemoteExceptionprotected void append(File src, OutputStream outputStream) throws tecgraf.javautils.xml.conversion.exception.XMLConversionException
src - origem dos dadosoutputStream - stream de saídatecgraf.javautils.xml.conversion.exception.XMLConversionException - em caso de falha de conversão.public static XMLConversionService getInstance()
public static void createService()
throws ServerException
ServerException - em caso de falha de criação do serviço.Copyright © 2016. All rights reserved.