text: //
  //  _   _         ______    _ _ _   _             _ _ _
  // | \ | |       |  ____|  | (_) | (_)           | | | |
  // |  \| | ___   | |__   __| |_| |_ _ _ __   __ _| | | |
  // | . ` |/ _ \  |  __| / _` | | __| | '_ \ / _` | | | |
  // | |\  | (_) | | |___| (_| | | |_| | | | | (_| |_|_|_|
  // |_| \_|\___/  |______\__,_|_|\__|_|_| |_|\__, (_|_|_)
  //                                           __/ |
  //                                          |___/
  // 
  // This file is auto-generated. Do not edit manually
  // 
  // Copyright 2013-2020 Automatak, LLC
  // 
  // Licensed to Green Energy Corp (www.greenenergycorp.com) and Automatak
  // LLC (www.automatak.com) under one or more contributor license agreements.
  // See the NOTICE file distributed with this work for additional information
  // regarding copyright ownership. Green Energy Corp and Automatak LLC license
  // 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.
  //
  
  #include "JCache.h"
  
  namespace jni
  {
      cache::AnalogConfig JCache::AnalogConfig;
      cache::AnalogInput JCache::AnalogInput;
      cache::AnalogOutputDouble64 JCache::AnalogOutputDouble64;
      cache::AnalogOutputFloat32 JCache::AnalogOutputFloat32;
      cache::AnalogOutputInt16 JCache::AnalogOutputInt16;
      cache::AnalogOutputInt32 JCache::AnalogOutputInt32;
      cache::AnalogOutputStatus JCache::AnalogOutputStatus;
      cache::AnalogOutputStatusConfig JCache::AnalogOutputStatusConfig;
      cache::ApplicationIIN JCache::ApplicationIIN;
      cache::ArrayList JCache::ArrayList;
      cache::AssignClassType JCache::AssignClassType;
      cache::BinaryConfig JCache::BinaryConfig;
      cache::BinaryInput JCache::BinaryInput;
      cache::BinaryOutputStatus JCache::BinaryOutputStatus;
      cache::BinaryOutputStatusConfig JCache::BinaryOutputStatusConfig;
      cache::ChannelListener JCache::ChannelListener;
      cache::ChannelState JCache::ChannelState;
      cache::ChannelStatistics JCache::ChannelStatistics;
      cache::ClassAssignment JCache::ClassAssignment;
      cache::ClassField JCache::ClassField;
      cache::CommandHandler JCache::CommandHandler;
      cache::CommandHeaders JCache::CommandHeaders;
      cache::CommandPointResult JCache::CommandPointResult;
      cache::CommandPointState JCache::CommandPointState;
      cache::CommandProcessor JCache::CommandProcessor;
      cache::CommandStatus JCache::CommandStatus;
      cache::CommandTaskResult JCache::CommandTaskResult;
      cache::CompletableFuture JCache::CompletableFuture;
      cache::ControlRelayOutputBlock JCache::ControlRelayOutputBlock;
      cache::Counter JCache::Counter;
      cache::CounterConfig JCache::CounterConfig;
      cache::DNP3Exception JCache::DNP3Exception;
      cache::DNPTime JCache::DNPTime;
      cache::Database JCache::Database;
      cache::DatabaseConfig JCache::DatabaseConfig;
      cache::DatabaseImpl JCache::DatabaseImpl;
      cache::DoubleBinaryConfig JCache::DoubleBinaryConfig;
      cache::DoubleBit JCache::DoubleBit;
      cache::DoubleBitBinaryInput JCache::DoubleBitBinaryInput;
      cache::Duration JCache::Duration;
      cache::Entry JCache::Entry;
      cache::EventAnalogOutputStatusVariation JCache::EventAnalogOutputStatusVariation;
      cache::EventAnalogVariation JCache::EventAnalogVariation;
      cache::EventBinaryOutputStatusVariation JCache::EventBinaryOutputStatusVariation;
      cache::EventBinaryVariation JCache::EventBinaryVariation;
      cache::EventBufferConfig JCache::EventBufferConfig;
      cache::EventConfig JCache::EventConfig;
      cache::EventCounterVariation JCache::EventCounterVariation;
      cache::EventDoubleBinaryVariation JCache::EventDoubleBinaryVariation;
      cache::EventFrozenCounterVariation JCache::EventFrozenCounterVariation;
      cache::EventMode JCache::EventMode;
      cache::Flags JCache::Flags;
      cache::FrozenCounter JCache::FrozenCounter;
      cache::FrozenCounterConfig JCache::FrozenCounterConfig;
      cache::GroupVariation JCache::GroupVariation;
      cache::Header JCache::Header;
      cache::HeaderInfo JCache::HeaderInfo;
      cache::IINField JCache::IINField;
      cache::IPEndpoint JCache::IPEndpoint;
      cache::IndexQualifierMode JCache::IndexQualifierMode;
      cache::IndexedValue JCache::IndexedValue;
      cache::Integer JCache::Integer;
      cache::Iterable JCache::Iterable;
      cache::Iterator JCache::Iterator;
      cache::LinkLayerConfig JCache::LinkLayerConfig;
      cache::LinkLayerStatistics JCache::LinkLayerStatistics;
      cache::LinkStatistics JCache::LinkStatistics;
      cache::List JCache::List;
      cache::LogEntry JCache::LogEntry;
      cache::LogHandler JCache::LogHandler;
      cache::Map JCache::Map;
      cache::MasterApplication JCache::MasterApplication;
      cache::MasterConfig JCache::MasterConfig;
      cache::MasterStackConfig JCache::MasterStackConfig;
      cache::MasterTaskType JCache::MasterTaskType;
      cache::NumRetries JCache::NumRetries;
      cache::Object JCache::Object;
      cache::OperateType JCache::OperateType;
      cache::OperationType JCache::OperationType;
      cache::OutstationApplication JCache::OutstationApplication;
      cache::OutstationConfig JCache::OutstationConfig;
      cache::OutstationStackConfig JCache::OutstationStackConfig;
      cache::ParserStatistics JCache::ParserStatistics;
      cache::PointClass JCache::PointClass;
      cache::QualifierCode JCache::QualifierCode;
      cache::Range JCache::Range;
      cache::ResponseInfo JCache::ResponseInfo;
      cache::RestartMode JCache::RestartMode;
      cache::SOEHandler JCache::SOEHandler;
      cache::Set JCache::Set;
      cache::Stack JCache::Stack;
      cache::StackStatistics JCache::StackStatistics;
      cache::StaticAnalogOutputStatusVariation JCache::StaticAnalogOutputStatusVariation;
      cache::StaticAnalogVariation JCache::StaticAnalogVariation;
      cache::StaticBinaryOutputStatusVariation JCache::StaticBinaryOutputStatusVariation;
      cache::StaticBinaryVariation JCache::StaticBinaryVariation;
      cache::StaticCounterVariation JCache::StaticCounterVariation;
      cache::StaticDoubleBinaryVariation JCache::StaticDoubleBinaryVariation;
      cache::StaticFrozenCounterVariation JCache::StaticFrozenCounterVariation;
      cache::StaticTypeBitField JCache::StaticTypeBitField;
      cache::TLSConfig JCache::TLSConfig;
      cache::TaskCompletion JCache::TaskCompletion;
      cache::TaskId JCache::TaskId;
      cache::TaskInfo JCache::TaskInfo;
      cache::TimeSyncMode JCache::TimeSyncMode;
      cache::TimestampQuality JCache::TimestampQuality;
      cache::TransportStatistics JCache::TransportStatistics;
      cache::TripCloseCode JCache::TripCloseCode;
  
      bool JCache::init(JNIEnv* env)
      {
          return AnalogConfig.init(env)
          && AnalogInput.init(env)
          && AnalogOutputDouble64.init(env)
          && AnalogOutputFloat32.init(env)
          && AnalogOutputInt16.init(env)
          && AnalogOutputInt32.init(env)
          && AnalogOutputStatus.init(env)
          && AnalogOutputStatusConfig.init(env)
          && ApplicationIIN.init(env)
          && ArrayList.init(env)
          && AssignClassType.init(env)
          && BinaryConfig.init(env)
          && BinaryInput.init(env)
          && BinaryOutputStatus.init(env)
          && BinaryOutputStatusConfig.init(env)
          && ChannelListener.init(env)
          && ChannelState.init(env)
          && ChannelStatistics.init(env)
          && ClassAssignment.init(env)
          && ClassField.init(env)
          && CommandHandler.init(env)
          && CommandHeaders.init(env)
          && CommandPointResult.init(env)
          && CommandPointState.init(env)
          && CommandProcessor.init(env)
          && CommandStatus.init(env)
          && CommandTaskResult.init(env)
          && CompletableFuture.init(env)
          && ControlRelayOutputBlock.init(env)
          && Counter.init(env)
          && CounterConfig.init(env)
          && DNP3Exception.init(env)
          && DNPTime.init(env)
          && Database.init(env)
          && DatabaseConfig.init(env)
          && DatabaseImpl.init(env)
          && DoubleBinaryConfig.init(env)
          && DoubleBit.init(env)
          && DoubleBitBinaryInput.init(env)
          && Duration.init(env)
          && Entry.init(env)
          && EventAnalogOutputStatusVariation.init(env)
          && EventAnalogVariation.init(env)
          && EventBinaryOutputStatusVariation.init(env)
          && EventBinaryVariation.init(env)
          && EventBufferConfig.init(env)
          && EventConfig.init(env)
          && EventCounterVariation.init(env)
          && EventDoubleBinaryVariation.init(env)
          && EventFrozenCounterVariation.init(env)
          && EventMode.init(env)
          && Flags.init(env)
          && FrozenCounter.init(env)
          && FrozenCounterConfig.init(env)
          && GroupVariation.init(env)
          && Header.init(env)
          && HeaderInfo.init(env)
          && IINField.init(env)
          && IPEndpoint.init(env)
          && IndexQualifierMode.init(env)
          && IndexedValue.init(env)
          && Integer.init(env)
          && Iterable.init(env)
          && Iterator.init(env)
          && LinkLayerConfig.init(env)
          && LinkLayerStatistics.init(env)
          && LinkStatistics.init(env)
          && List.init(env)
          && LogEntry.init(env)
          && LogHandler.init(env)
          && Map.init(env)
          && MasterApplication.init(env)
          && MasterConfig.init(env)
          && MasterStackConfig.init(env)
          && MasterTaskType.init(env)
          && NumRetries.init(env)
          && Object.init(env)
          && OperateType.init(env)
          && OperationType.init(env)
          && OutstationApplication.init(env)
          && OutstationConfig.init(env)
          && OutstationStackConfig.init(env)
          && ParserStatistics.init(env)
          && PointClass.init(env)
          && QualifierCode.init(env)
          && Range.init(env)
          && ResponseInfo.init(env)
          && RestartMode.init(env)
          && SOEHandler.init(env)
          && Set.init(env)
          && Stack.init(env)
          && StackStatistics.init(env)
          && StaticAnalogOutputStatusVariation.init(env)
          && StaticAnalogVariation.init(env)
          && StaticBinaryOutputStatusVariation.init(env)
          && StaticBinaryVariation.init(env)
          && StaticCounterVariation.init(env)
          && StaticDoubleBinaryVariation.init(env)
          && StaticFrozenCounterVariation.init(env)
          && StaticTypeBitField.init(env)
          && TLSConfig.init(env)
          && TaskCompletion.init(env)
          && TaskId.init(env)
          && TaskInfo.init(env)
          && TimeSyncMode.init(env)
          && TimestampQuality.init(env)
          && TransportStatistics.init(env)
          && TripCloseCode.init(env)
          ;
      }
  
      void JCache::cleanup(JNIEnv* env)
      {
          AnalogConfig.cleanup(env);
          AnalogInput.cleanup(env);
          AnalogOutputDouble64.cleanup(env);
          AnalogOutputFloat32.cleanup(env);
          AnalogOutputInt16.cleanup(env);
          AnalogOutputInt32.cleanup(env);
          AnalogOutputStatus.cleanup(env);
          AnalogOutputStatusConfig.cleanup(env);
          ApplicationIIN.cleanup(env);
          ArrayList.cleanup(env);
          AssignClassType.cleanup(env);
          BinaryConfig.cleanup(env);
          BinaryInput.cleanup(env);
          BinaryOutputStatus.cleanup(env);
          BinaryOutputStatusConfig.cleanup(env);
          ChannelListener.cleanup(env);
          ChannelState.cleanup(env);
          ChannelStatistics.cleanup(env);
          ClassAssignment.cleanup(env);
          ClassField.cleanup(env);
          CommandHandler.cleanup(env);
          CommandHeaders.cleanup(env);
          CommandPointResult.cleanup(env);
          CommandPointState.cleanup(env);
          CommandProcessor.cleanup(env);
          CommandStatus.cleanup(env);
          CommandTaskResult.cleanup(env);
          CompletableFuture.cleanup(env);
          ControlRelayOutputBlock.cleanup(env);
          Counter.cleanup(env);
          CounterConfig.cleanup(env);
          DNP3Exception.cleanup(env);
          DNPTime.cleanup(env);
          Database.cleanup(env);
          DatabaseConfig.cleanup(env);
          DatabaseImpl.cleanup(env);
          DoubleBinaryConfig.cleanup(env);
          DoubleBit.cleanup(env);
          DoubleBitBinaryInput.cleanup(env);
          Duration.cleanup(env);
          Entry.cleanup(env);
          EventAnalogOutputStatusVariation.cleanup(env);
          EventAnalogVariation.cleanup(env);
          EventBinaryOutputStatusVariation.cleanup(env);
          EventBinaryVariation.cleanup(env);
          EventBufferConfig.cleanup(env);
          EventConfig.cleanup(env);
          EventCounterVariation.cleanup(env);
          EventDoubleBinaryVariation.cleanup(env);
          EventFrozenCounterVariation.cleanup(env);
          EventMode.cleanup(env);
          Flags.cleanup(env);
          FrozenCounter.cleanup(env);
          FrozenCounterConfig.cleanup(env);
          GroupVariation.cleanup(env);
          Header.cleanup(env);
          HeaderInfo.cleanup(env);
          IINField.cleanup(env);
          IPEndpoint.cleanup(env);
          IndexQualifierMode.cleanup(env);
          IndexedValue.cleanup(env);
          Integer.cleanup(env);
          Iterable.cleanup(env);
          Iterator.cleanup(env);
          LinkLayerConfig.cleanup(env);
          LinkLayerStatistics.cleanup(env);
          LinkStatistics.cleanup(env);
          List.cleanup(env);
          LogEntry.cleanup(env);
          LogHandler.cleanup(env);
          Map.cleanup(env);
          MasterApplication.cleanup(env);
          MasterConfig.cleanup(env);
          MasterStackConfig.cleanup(env);
          MasterTaskType.cleanup(env);
          NumRetries.cleanup(env);
          Object.cleanup(env);
          OperateType.cleanup(env);
          OperationType.cleanup(env);
          OutstationApplication.cleanup(env);
          OutstationConfig.cleanup(env);
          OutstationStackConfig.cleanup(env);
          ParserStatistics.cleanup(env);
          PointClass.cleanup(env);
          QualifierCode.cleanup(env);
          Range.cleanup(env);
          ResponseInfo.cleanup(env);
          RestartMode.cleanup(env);
          SOEHandler.cleanup(env);
          Set.cleanup(env);
          Stack.cleanup(env);
          StackStatistics.cleanup(env);
          StaticAnalogOutputStatusVariation.cleanup(env);
          StaticAnalogVariation.cleanup(env);
          StaticBinaryOutputStatusVariation.cleanup(env);
          StaticBinaryVariation.cleanup(env);
          StaticCounterVariation.cleanup(env);
          StaticDoubleBinaryVariation.cleanup(env);
          StaticFrozenCounterVariation.cleanup(env);
          StaticTypeBitField.cleanup(env);
          TLSConfig.cleanup(env);
          TaskCompletion.cleanup(env);
          TaskId.cleanup(env);
          TaskInfo.cleanup(env);
          TimeSyncMode.cleanup(env);
          TimestampQuality.cleanup(env);
          TransportStatistics.cleanup(env);
          TripCloseCode.cleanup(env);
      }
  }
  