diff options
Diffstat (limited to 'xmlsecurity/tools/demo/JavaFlatFilter.java')
-rw-r--r-- | xmlsecurity/tools/demo/JavaFlatFilter.java | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/xmlsecurity/tools/demo/JavaFlatFilter.java b/xmlsecurity/tools/demo/JavaFlatFilter.java new file mode 100644 index 000000000000..331ace804072 --- /dev/null +++ b/xmlsecurity/tools/demo/JavaFlatFilter.java @@ -0,0 +1,225 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +package com.sun.star.xml.security.eval; + +import com.sun.star.registry.XRegistryKey; +import com.sun.star.comp.loader.FactoryHelper; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.xml.sax.InputSource; +import com.sun.star.xml.sax.XDocumentHandler; +import com.sun.star.xml.sax.XParser; +import com.sun.star.xml.sax.XDTDHandler; +import com.sun.star.xml.sax.XEntityResolver; +import com.sun.star.xml.sax.XErrorHandler; +import com.sun.star.xml.sax.XAttributeList; +import com.sun.star.lang.XSingleServiceFactory; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.lang.XTypeProvider; +import com.sun.star.lang.XServiceInfo; +import com.sun.star.lang.Locale; + +/* + * the JavaFlatFilter class is a pure java filter, which does nothing + * but forwarding the SAX events to the next document handler. + * The purpose of this class is to calculate the time consumed by + * the UNO C++/Java bridge during exporting/importing. + */ +public class JavaFlatFilter extends Object + implements XDocumentHandler, XParser, XTypeProvider, XServiceInfo +{ + XDocumentHandler m_xDocumentHandler; + + /* XDocumentHandler */ + public void startDocument() + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.startDocument(); + } + + public void endDocument() + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.endDocument(); + } + + public void startElement (String aName, com.sun.star.xml.sax.XAttributeList xAttribs ) + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.startElement(aName, xAttribs); + } + + public void endElement ( String aName ) + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.endElement(aName); + } + + public void characters ( String aChars ) + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.characters(aChars); + } + + public void ignorableWhitespace ( String aWhitespaces ) + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.ignorableWhitespace(aWhitespaces); + } + + public void processingInstruction ( String aTarget, String aData ) + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.processingInstruction(aTarget, aData); + } + + public void setDocumentLocator (com.sun.star.xml.sax.XLocator xLocator ) + throws com.sun.star.xml.sax.SAXException + { + m_xDocumentHandler.setDocumentLocator(xLocator); + } + + /* XParser */ + public void parseStream(InputSource strucInputSource) + { + } + + public void setDocumentHandler(XDocumentHandler xDocumentHandler) + { + m_xDocumentHandler = xDocumentHandler; + } + + public void setDTDHandler(XDTDHandler xHandler) + { + } + + public void setEntityResolver(XEntityResolver xResolver) + { + } + + public void setErrorHandler(XErrorHandler xHandler) + { + } + + public void setLocale(Locale locale) + { + } + + /* + * XTypeProvider implementation + * maintain a static implementation id for all instances of JavaFlatFilter + * initialized by the first call to getImplementationId() + */ + protected static byte[] _implementationId; + public com.sun.star.uno.Type[] getTypes() + { + com.sun.star.uno.Type[] retValue = new com.sun.star.uno.Type[4]; + + /* + * instantiate Type instances for each interface you support and add them to Type[] array + * this object implements XServiceInfo, XTypeProvider and XSignFilter + */ + retValue[0]= new com.sun.star.uno.Type( XServiceInfo.class); + retValue[1]= new com.sun.star.uno.Type( XTypeProvider.class); + retValue[2]= new com.sun.star.uno.Type( XDocumentHandler.class); + retValue[3]= new com.sun.star.uno.Type( XParser.class); + + /* + * XInterface is not needed for Java components, the UnoRuntime does its job + */ + + return retValue; + } + + synchronized public byte[] getImplementationId() + { + if (_implementationId == null) { + _implementationId= new byte[16]; + int hash = hashCode(); // hashDode of this object + _implementationId[0] = (byte)(hash & 0xff); + _implementationId[1] = (byte)((hash >>> 8) & 0xff); + _implementationId[2] = (byte)((hash >>> 16) & 0xff); + _implementationId[3] = (byte)((hash >>>24) & 0xff); + } + return _implementationId; + } + + + /* + * XServiceInfo implementation + * hold the service name in a private static member variable of the class + */ + protected static final String __serviceName = "com.sun.star.xml.crypto.eval.JavaFlatFilter"; + public String getImplementationName( ) + { + return getClass().getName(); + } + + public boolean supportsService(String serviceName) + { + boolean rc = false; + + if ( serviceName.equals( __serviceName)) + { + rc = true; + } + + return rc; + } + + public String[] getSupportedServiceNames( ) + { + String[] retValue= new String[0]; + retValue[0]= __serviceName; + return retValue; + } + + /* static __getServiceFactory() implementation */ + public static XSingleServiceFactory __getServiceFactory(String implName, + XMultiServiceFactory multiFactory, + com.sun.star.registry.XRegistryKey regKey) + { + com.sun.star.lang.XSingleServiceFactory xSingleServiceFactory = null; + if (implName.equals( JavaFlatFilter.class.getName()) ) + { + xSingleServiceFactory = FactoryHelper.getServiceFactory( JavaFlatFilter.class, + JavaFlatFilter.__serviceName, + multiFactory, + regKey); + } + + return xSingleServiceFactory; + } + + /* static __writeRegistryServiceInfo implementation */ + public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) + { + return FactoryHelper.writeRegistryServiceInfo( JavaFlatFilter.class.getName(), + __serviceName, + regKey); + } +} |