/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_util_XURLTransformer_idl__ #define __com_sun_star_util_XURLTransformer_idl__ #include #include module com { module sun { module star { module util { /** supports parsing and assembling of URLs @see URL @see URLTransformer */ published interface XURLTransformer: com::sun::star::uno::XInterface { /** parses the string in URL::Complete which should contain a syntactically complete URL.

The implementation is allowed to correct minor failures in URL::Complete if the meaning of the URL remain unchanged. Parts of the URL are stored in the other fields of aURL.

@param aURL the URL which include the complete string notation and will contain all parsed parts of it after finishing this call. URL::Complete can be overwritten if the implementation corrected minor failures. @returns `TRUE` if parsing was successful (means if given URL was syntactically correct) or `FALSE` otherwise. */ boolean parseStrict( [inout] com::sun::star::util::URL aURL ); /** parses the string in URL::Complete, which may contain a syntactically complete URL or is specified by the provided protocol

The implementation can use smart functions to correct or interpret URL::Complete if it is not a syntactically complete URL. The parts of the URL are stored in the other fields of aURL.

@param aURL the URL which include the string notation and will contain all parsed parts of it after finishing this call. This includes URL::Complete. @param sSmartProtocol optional information which protocol specification should be used to parse URL::Complete. If empty the implementation can use a protocol which fits best. @returns `TRUE` if parsing was successful (means if URL::Complete could be syntactically correct) or `FALSE` otherwise. */ boolean parseSmart( [inout] com::sun::star::util::URL aURL, [in] string sSmartProtocol ); /** assembles the parts of the URL specified by aURL and stores it into URL::Complete @param aURL the URL which contains all necessary information in a structured form. The member URL::Complete contains the URL in string notation after the operation finished successfully. Otherwise the content of URL::Complete is not defined. @returns `TRUE` if assembling was successful or `FALSE` otherwise. */ boolean assemble( [inout] com::sun::star::util::URL aURL ); /** returns a representation of the URL for UI purposes only

Sometimes it can be useful to show a URL on an user interface in a more "human readable" form. Such URL can't be used on any API call, but make it easier for the user to understand it.

@param aURL URL in structured form which should be shown at the UI @param bWithPassword specifies whether the password will be included in the encoding or not. Usually passwords should never be shown at the user interface. @returns a string representing the aURL if it is syntactically correct. A empty string if aURL is not syntactically correct. */ string getPresentation( [in] com::sun::star::util::URL aURL, [in] boolean bWithPassword ); }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */