/* 
 * 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
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
*/ 

interface rootInterface {};

module org {
  module apache {

    interface IpTest {
      void test();
    };

    module yoko {
      interface IpInterface {
        void setTest(in IpTest test);
      };                             
      interface IpService : IpInterface,::org::apache::IpTest,rootInterface {
        void setCallback(in IpInterface appInterface);                          
        void setTestCallback(in IpTest test);
      };      
    };
  };  
};

module A {
    module B {
        module C {
            module D {
                interface Interface1 {
                    void testInterface1();
                };
            };
        };
    };
};

module A {
    module B {
        module C {
            module E {
                interface Interface2 : D::Interface1 {
                    void testInterface2();
                };
		interface Interface4 : E::Interface2 {
		};
            };
        };
    };
};

module X {
    interface Interface3 : A::B::C::D::Interface1 {
     };
};


