1ffe3c632Sopenharmony_ci/*
2ffe3c632Sopenharmony_ci * Protocol Buffers - Google's data interchange format
3ffe3c632Sopenharmony_ci * Copyright 2014 Google Inc.  All rights reserved.
4ffe3c632Sopenharmony_ci * https://developers.google.com/protocol-buffers/
5ffe3c632Sopenharmony_ci *
6ffe3c632Sopenharmony_ci * Redistribution and use in source and binary forms, with or without
7ffe3c632Sopenharmony_ci * modification, are permitted provided that the following conditions are
8ffe3c632Sopenharmony_ci * met:
9ffe3c632Sopenharmony_ci *
10ffe3c632Sopenharmony_ci *     * Redistributions of source code must retain the above copyright
11ffe3c632Sopenharmony_ci * notice, this list of conditions and the following disclaimer.
12ffe3c632Sopenharmony_ci *     * Redistributions in binary form must reproduce the above
13ffe3c632Sopenharmony_ci * copyright notice, this list of conditions and the following disclaimer
14ffe3c632Sopenharmony_ci * in the documentation and/or other materials provided with the
15ffe3c632Sopenharmony_ci * distribution.
16ffe3c632Sopenharmony_ci *     * Neither the name of Google Inc. nor the names of its
17ffe3c632Sopenharmony_ci * contributors may be used to endorse or promote products derived from
18ffe3c632Sopenharmony_ci * this software without specific prior written permission.
19ffe3c632Sopenharmony_ci *
20ffe3c632Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21ffe3c632Sopenharmony_ci * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22ffe3c632Sopenharmony_ci * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23ffe3c632Sopenharmony_ci * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24ffe3c632Sopenharmony_ci * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25ffe3c632Sopenharmony_ci * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26ffe3c632Sopenharmony_ci * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27ffe3c632Sopenharmony_ci * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28ffe3c632Sopenharmony_ci * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29ffe3c632Sopenharmony_ci * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30ffe3c632Sopenharmony_ci * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31ffe3c632Sopenharmony_ci */
32ffe3c632Sopenharmony_ci
33ffe3c632Sopenharmony_cipackage google;
34ffe3c632Sopenharmony_ci
35ffe3c632Sopenharmony_ciimport com.google.protobuf.jruby.*;
36ffe3c632Sopenharmony_ciimport org.jruby.Ruby;
37ffe3c632Sopenharmony_ciimport org.jruby.runtime.load.BasicLibraryService;
38ffe3c632Sopenharmony_ci
39ffe3c632Sopenharmony_ciimport java.io.IOException;
40ffe3c632Sopenharmony_ci
41ffe3c632Sopenharmony_cipublic class ProtobufJavaService implements BasicLibraryService {
42ffe3c632Sopenharmony_ci    @Override
43ffe3c632Sopenharmony_ci    public boolean basicLoad(Ruby ruby) throws IOException {
44ffe3c632Sopenharmony_ci        ruby.defineModule("Google");
45ffe3c632Sopenharmony_ci        RubyProtobuf.createProtobuf(ruby);
46ffe3c632Sopenharmony_ci        RubyDescriptor.createRubyDescriptor(ruby);
47ffe3c632Sopenharmony_ci        RubyBuilder.createRubyBuilder(ruby);
48ffe3c632Sopenharmony_ci        RubyFieldDescriptor.createRubyFileDescriptor(ruby);
49ffe3c632Sopenharmony_ci        RubyMessageBuilderContext.createRubyMessageBuilderContext(ruby);
50ffe3c632Sopenharmony_ci        RubyEnumDescriptor.createRubyEnumDescriptor(ruby);
51ffe3c632Sopenharmony_ci        RubyEnumBuilderContext.createRubyEnumBuilderContext(ruby);
52ffe3c632Sopenharmony_ci        RubyDescriptorPool.createRubyDescriptorPool(ruby);
53ffe3c632Sopenharmony_ci        RubyRepeatedField.createRubyRepeatedField(ruby);
54ffe3c632Sopenharmony_ci        RubyFieldDescriptor.createRubyFileDescriptor(ruby);
55ffe3c632Sopenharmony_ci        RubyMap.createRubyMap(ruby);
56ffe3c632Sopenharmony_ci        RubyOneofDescriptor.createRubyOneofDescriptor(ruby);
57ffe3c632Sopenharmony_ci        RubyOneofBuilderContext.createRubyOneofBuilderContext(ruby);
58ffe3c632Sopenharmony_ci        return true;
59ffe3c632Sopenharmony_ci    }
60ffe3c632Sopenharmony_ci}
61