/* -*- 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_beans_XIntroTest_idl__
#define __com_sun_star_beans_XIntroTest_idl__

#include <com/sun/star/uno/XInterface.idl>
#include <com/sun/star/beans/Property.idl>
#include <com/sun/star/beans/PropertyValue.idl>
#include <com/sun/star/uno/TypeClass.idl>
#include <com/sun/star/beans/XPropertiesChangeListener.idl>

module ModuleA
{
//module com { module sun { module star { module beans {

//interface XPropertyChangeListener;
//interface XPropertiesChangeListener;


/** This is a test interface for introspection.

    <p>IMPORTANT: FOR TEST ONLY!

    <p>The following interface is just for testing purposes. It will not
    stay in the product. It is only used as an exportable test class,
    i.e. for BASIC integration.

    @deprecated
*/
interface XIntroTest: com::sun::star::uno::XInterface
{

    /** contains the ID-String of the implementation.
     */
    [attribute] string  ObjectName;


    /** contains the first name of a person.
     */
    [readonly, attribute] string    FirstName;


    /** contains the last name of a person.
     */
    [readonly, attribute] string    LastName;


    /** contains the age of a person.
     */
    [readonly, attribute] short     Age;


    /** contains the number of children person has.
     */
    [attribute] short               ChildrenCount;


    /** contains a struct of type Property.
     */
    [attribute] com::sun::star::beans::Property         FirstStruct;


    /** contains a struct of type PropertyValue.
     */
    [attribute] com::sun::star::beans::PropertyValue    SecondStruct;


    /** output method
    */
    void writeln( [in] string Text );


    /** ...
    */
    long getDroenk();


    /** get further introspection test objects
    */
    XIntroTest getIntroTest();
    //com::sun::star::beans::XIntroTest getIntroTest();


    /** !!! No property, because parameter exists
    */
    long getUps( [in] long l );


    /** ...
    */
    void setDroenk( [in] long l );


    /** ...
    */
    short getBla();


    /** !!! Not the set method for property Bla, because param type != return type.
    */
    void setBla( [in] long n );


    /** ...
    */
    short getBlub();


    /** ...
    */
    void setBlub( [in] short n );


    /** ...
    */
    short getGulp();


    /** !!! Not the set method for property Gulp, because return type != void.
    */
    short setGulp( [in] short n );


    /** ...
    */
    com::sun::star::uno::TypeClass getTypeClass( [in] short n );


    /** ...
    */
    void setTypeClass( [in] com::sun::star::uno::TypeClass t,
             [in] double d1,
             [in] double d2 );


    /**
    */
    sequence<string> getStrings();


    /** ...
    */
    void setStrings( [in] sequence<string> Strings );


    /** ...
    */
    void setStringsPerMethod( [in] sequence<string> Strings,
             [in] short n );


    /**
    */
    sequence< sequence< sequence< short > > > getMultiSequence();


    /** ...
    */
    void setMultiSequence( [in] sequence< sequence< sequence< short > > > Seq );


    /**Add a PropertiesChangeListener
    */
    void addPropertiesChangeListener( [in] sequence< string > PropertyNames,
             [in] com::sun::star::beans::XPropertiesChangeListener Listener );


    /**Remove a PropertiesChangeListener
    */
    void removePropertiesChangeListener( [in] com::sun::star::beans::XPropertiesChangeListener Listener );

};



};
//}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
