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(java.io.File src,
java.io.OutputStream outputStream)
Grava o conteúdo de um arquivo em um stream de saída.
|
tecgraf.javautils.xml.conversion.XMLConverter.XMLConversionStatus |
convertXMLToFile(java.lang.Object projectId,
java.lang.String[] clientPath,
boolean validate,
java.lang.String dtdPrefix) |
java.lang.String |
convertXMLToString(java.lang.Object projectId,
java.lang.String[] clientPath,
boolean validate,
java.lang.String dtdPrefix) |
protected tecgraf.javautils.xml.conversion.XMLConverter |
createConverter(java.lang.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 java.lang.String |
getXMLEndMarker()
Retorna o marcador da tag final do arquivo XML.
|
protected boolean |
has2Update(java.lang.Object arg,
java.lang.Object event) |
void |
initService()
Método abstrato de inicialização do serviço.
|
protected void |
postConvert(java.lang.Object projectId,
java.lang.String[] clientPath,
java.lang.String dtdPrefix,
java.io.OutputStream outputStream,
java.lang.String xmlData,
tecgraf.javautils.xml.conversion.XMLConverter.XMLConversionStatus status)
Método com as ações de pós conversão.
|
protected void |
preConvert(java.lang.Object projectId,
java.lang.String[] clientPath,
java.lang.String dtdPrefix,
java.lang.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(java.lang.Object arg,
java.lang.Object event)
has2Update in class csbase.remote.RemoteObjectObservablepublic tecgraf.javautils.xml.conversion.XMLConverter.XMLConversionStatus convertXMLToFile(java.lang.Object projectId,
java.lang.String[] clientPath,
boolean validate,
java.lang.String dtdPrefix)
throws java.rmi.RemoteException
convertXMLToFile in interface csbase.remote.XMLConversionServiceInterfacejava.rmi.RemoteExceptionprotected tecgraf.javautils.xml.conversion.XMLConverter createConverter(java.lang.String dtdPrefix)
throws tecgraf.javautils.xml.conversion.exception.XMLConversionException
dtdPrefix - tecgraf.javautils.xml.conversion.exception.XMLConversionExceptionprotected void postConvert(java.lang.Object projectId,
java.lang.String[] clientPath,
java.lang.String dtdPrefix,
java.io.OutputStream outputStream,
java.lang.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(java.lang.Object projectId,
java.lang.String[] clientPath,
java.lang.String dtdPrefix,
java.lang.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 java.lang.String getXMLEndMarker()
public java.lang.String convertXMLToString(java.lang.Object projectId,
java.lang.String[] clientPath,
boolean validate,
java.lang.String dtdPrefix)
throws java.rmi.RemoteException
convertXMLToString in interface csbase.remote.XMLConversionServiceInterfacejava.rmi.RemoteExceptionprotected void append(java.io.File src,
java.io.OutputStream outputStream)
throws tecgraf.javautils.xml.conversion.exception.XMLConversionException
src - origem dos dadosoutputStream - stream de saídatecgraf.javautils.xml.conversion.exception.XMLConversionExceptionpublic static XMLConversionService getInstance()
public static void createService()
throws ServerException
ServerExceptionCopyright © 2018. All Rights Reserved.