###################################################################################
#                                                                                 #
#                   Copyright 2010-2013 Ning, Inc.                                #
#                                                                                 #
#      Ning 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.                                                         #
#                                                                                 #
###################################################################################


#
#                       DO NOT EDIT!!!
#    File automatically generated by killbill-java-parser (git@github.com:killbill/killbill-java-parser.git)
#


module Killbill
  module Plugin
    module Model

      java_package 'com.ning.billing.osgi.api'
      class OSGIKillbill

        include com.ning.billing.osgi.api.OSGIKillbill

        attr_accessor :account_user_api, :catalog_user_api, :subscription_timeline_api, :subscription_transfer_api, :subscription_user_api, :invoice_payment_api, :invoice_user_api, :overdue_user_api, :payment_api, :tenant_user_api, :usage_user_api, :audit_user_api, :custom_field_user_api, :export_user_api, :tag_user_api, :entitlement_api, :record_id_api, :plugin_config_service_api

        def initialize()
        end

        def to_java()
          # conversion for account_user_api [type = com.ning.billing.account.api.AccountUserApi]
          @account_user_api = @account_user_api.to_java unless @account_user_api.nil?

          # conversion for catalog_user_api [type = com.ning.billing.catalog.api.CatalogUserApi]
          @catalog_user_api = @catalog_user_api.to_java unless @catalog_user_api.nil?

          # conversion for subscription_timeline_api [type = com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi]
          @subscription_timeline_api = @subscription_timeline_api.to_java unless @subscription_timeline_api.nil?

          # conversion for subscription_transfer_api [type = com.ning.billing.subscription.api.transfer.SubscriptionTransferApi]
          @subscription_transfer_api = @subscription_transfer_api.to_java unless @subscription_transfer_api.nil?

          # conversion for subscription_user_api [type = com.ning.billing.subscription.api.user.SubscriptionUserApi]
          @subscription_user_api = @subscription_user_api.to_java unless @subscription_user_api.nil?

          # conversion for invoice_payment_api [type = com.ning.billing.invoice.api.InvoicePaymentApi]
          @invoice_payment_api = @invoice_payment_api.to_java unless @invoice_payment_api.nil?

          # conversion for invoice_user_api [type = com.ning.billing.invoice.api.InvoiceUserApi]
          @invoice_user_api = @invoice_user_api.to_java unless @invoice_user_api.nil?

          # conversion for overdue_user_api [type = com.ning.billing.overdue.OverdueUserApi]
          @overdue_user_api = @overdue_user_api.to_java unless @overdue_user_api.nil?

          # conversion for payment_api [type = com.ning.billing.payment.api.PaymentApi]
          @payment_api = @payment_api.to_java unless @payment_api.nil?

          # conversion for tenant_user_api [type = com.ning.billing.tenant.api.TenantUserApi]
          @tenant_user_api = @tenant_user_api.to_java unless @tenant_user_api.nil?

          # conversion for usage_user_api [type = com.ning.billing.usage.api.UsageUserApi]
          @usage_user_api = @usage_user_api.to_java unless @usage_user_api.nil?

          # conversion for audit_user_api [type = com.ning.billing.util.api.AuditUserApi]
          @audit_user_api = @audit_user_api.to_java unless @audit_user_api.nil?

          # conversion for custom_field_user_api [type = com.ning.billing.util.api.CustomFieldUserApi]
          @custom_field_user_api = @custom_field_user_api.to_java unless @custom_field_user_api.nil?

          # conversion for export_user_api [type = com.ning.billing.util.api.ExportUserApi]
          @export_user_api = @export_user_api.to_java unless @export_user_api.nil?

          # conversion for tag_user_api [type = com.ning.billing.util.api.TagUserApi]
          @tag_user_api = @tag_user_api.to_java unless @tag_user_api.nil?

          # conversion for entitlement_api [type = com.ning.billing.entitlement.api.EntitlementApi]
          @entitlement_api = @entitlement_api.to_java unless @entitlement_api.nil?

          # conversion for record_id_api [type = com.ning.billing.util.api.RecordIdApi]
          @record_id_api = @record_id_api.to_java unless @record_id_api.nil?

          # conversion for plugin_config_service_api [type = com.ning.billing.osgi.api.config.PluginConfigServiceApi]
          @plugin_config_service_api = @plugin_config_service_api.to_java unless @plugin_config_service_api.nil?
          self
        end

        def to_ruby(j_obj)
          # conversion for account_user_api [type = com.ning.billing.account.api.AccountUserApi]
          @account_user_api = j_obj.account_user_api
          @account_user_api = Killbill::Plugin::Model::AccountUserApi.new.to_ruby(@account_user_api) unless @account_user_api.nil?

          # conversion for catalog_user_api [type = com.ning.billing.catalog.api.CatalogUserApi]
          @catalog_user_api = j_obj.catalog_user_api
          @catalog_user_api = Killbill::Plugin::Model::CatalogUserApi.new.to_ruby(@catalog_user_api) unless @catalog_user_api.nil?

          # conversion for subscription_timeline_api [type = com.ning.billing.subscription.api.timeline.SubscriptionTimelineApi]
          @subscription_timeline_api = j_obj.subscription_timeline_api
          @subscription_timeline_api = Killbill::Plugin::Model::SubscriptionTimelineApi.new.to_ruby(@subscription_timeline_api) unless @subscription_timeline_api.nil?

          # conversion for subscription_transfer_api [type = com.ning.billing.subscription.api.transfer.SubscriptionTransferApi]
          @subscription_transfer_api = j_obj.subscription_transfer_api
          @subscription_transfer_api = Killbill::Plugin::Model::SubscriptionTransferApi.new.to_ruby(@subscription_transfer_api) unless @subscription_transfer_api.nil?

          # conversion for subscription_user_api [type = com.ning.billing.subscription.api.user.SubscriptionUserApi]
          @subscription_user_api = j_obj.subscription_user_api
          @subscription_user_api = Killbill::Plugin::Model::SubscriptionUserApi.new.to_ruby(@subscription_user_api) unless @subscription_user_api.nil?

          # conversion for invoice_payment_api [type = com.ning.billing.invoice.api.InvoicePaymentApi]
          @invoice_payment_api = j_obj.invoice_payment_api
          @invoice_payment_api = Killbill::Plugin::Model::InvoicePaymentApi.new.to_ruby(@invoice_payment_api) unless @invoice_payment_api.nil?

          # conversion for invoice_user_api [type = com.ning.billing.invoice.api.InvoiceUserApi]
          @invoice_user_api = j_obj.invoice_user_api
          @invoice_user_api = Killbill::Plugin::Model::InvoiceUserApi.new.to_ruby(@invoice_user_api) unless @invoice_user_api.nil?

          # conversion for overdue_user_api [type = com.ning.billing.overdue.OverdueUserApi]
          @overdue_user_api = j_obj.overdue_user_api
          @overdue_user_api = Killbill::Plugin::Model::OverdueUserApi.new.to_ruby(@overdue_user_api) unless @overdue_user_api.nil?

          # conversion for payment_api [type = com.ning.billing.payment.api.PaymentApi]
          @payment_api = j_obj.payment_api
          @payment_api = Killbill::Plugin::Model::PaymentApi.new.to_ruby(@payment_api) unless @payment_api.nil?

          # conversion for tenant_user_api [type = com.ning.billing.tenant.api.TenantUserApi]
          @tenant_user_api = j_obj.tenant_user_api
          @tenant_user_api = Killbill::Plugin::Model::TenantUserApi.new.to_ruby(@tenant_user_api) unless @tenant_user_api.nil?

          # conversion for usage_user_api [type = com.ning.billing.usage.api.UsageUserApi]
          @usage_user_api = j_obj.usage_user_api
          @usage_user_api = Killbill::Plugin::Model::UsageUserApi.new.to_ruby(@usage_user_api) unless @usage_user_api.nil?

          # conversion for audit_user_api [type = com.ning.billing.util.api.AuditUserApi]
          @audit_user_api = j_obj.audit_user_api
          @audit_user_api = Killbill::Plugin::Model::AuditUserApi.new.to_ruby(@audit_user_api) unless @audit_user_api.nil?

          # conversion for custom_field_user_api [type = com.ning.billing.util.api.CustomFieldUserApi]
          @custom_field_user_api = j_obj.custom_field_user_api
          @custom_field_user_api = Killbill::Plugin::Model::CustomFieldUserApi.new.to_ruby(@custom_field_user_api) unless @custom_field_user_api.nil?

          # conversion for export_user_api [type = com.ning.billing.util.api.ExportUserApi]
          @export_user_api = j_obj.export_user_api
          @export_user_api = Killbill::Plugin::Model::ExportUserApi.new.to_ruby(@export_user_api) unless @export_user_api.nil?

          # conversion for tag_user_api [type = com.ning.billing.util.api.TagUserApi]
          @tag_user_api = j_obj.tag_user_api
          @tag_user_api = Killbill::Plugin::Model::TagUserApi.new.to_ruby(@tag_user_api) unless @tag_user_api.nil?

          # conversion for entitlement_api [type = com.ning.billing.entitlement.api.EntitlementApi]
          @entitlement_api = j_obj.entitlement_api
          @entitlement_api = Killbill::Plugin::Model::EntitlementApi.new.to_ruby(@entitlement_api) unless @entitlement_api.nil?

          # conversion for record_id_api [type = com.ning.billing.util.api.RecordIdApi]
          @record_id_api = j_obj.record_id_api
          @record_id_api = Killbill::Plugin::Model::RecordIdApi.new.to_ruby(@record_id_api) unless @record_id_api.nil?

          # conversion for plugin_config_service_api [type = com.ning.billing.osgi.api.config.PluginConfigServiceApi]
          @plugin_config_service_api = j_obj.plugin_config_service_api
          @plugin_config_service_api = Killbill::Plugin::Model::PluginConfigServiceApi.new.to_ruby(@plugin_config_service_api) unless @plugin_config_service_api.nil?
          self
        end

      end
    end
  end
end