ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

RPg and java

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • RPg and java

    Hi I'm writing my first program which calls java from RPG, I have some questions. In my case I need to use the google protobuf.

    I have to use a class wtih many sub-classes, if I look into the directory which contains the package I saw something like this:

    MainClass.class
    MainClass$Sub-Class1.class
    MainClass$Sub-Class1$SubSubClass2.class
    MainClass$Sub-Class2.class

    and so on.
    Now If I try to construct the class MainClass.Sub-Class1.class when call I receive a message: No classs method found, While If I try to construct the class: MainClass$Sub-Class1.class it works, but some Java programmers tell me this is not correct, I'll have to use the class: MainClass.Sub-Class1.class. I didn't know java but I think when it make Import of my package it construct all the classes you need... Could I construct directly MainClass.Sub-Class1.class?

    Many thanks

  • #2
    Can you show us the prototypes you are using. What is your classpath setting? etc. etc.

    How did you create the prototypes? Did you use the RDi wizard or o it by hand?

    Comment


    • #3
      Hi Jon,

      I did it by hand... because my boss don't want to spend to buy me RDI...

      I create two jar files, once with google protobuf and another with the my vendor apps.

      This are my prototypes...

      Code:
      // Metodi JAVA
      // ------------------------------------------------------------------------------------------------------------
      // CodedOutputStream
      Dcl-pr CodedOutputStreamNewInstance Object(*JAVA :'com.google.protobuf.CodedOutputStream')
      ExtProc(*JAVA :'com.google.protobuf.CodedOutputStream' :'newInstance') static;
      *n Object(*JAVA :'java.io.OutputStream');
      End-pr;
      Dcl-pr CodedInputStreamNewInstance Object(*JAVA :'com.google.protobuf.CodedInputStream')
      ExtProc(*JAVA :'com.google.protobuf.CodedInputStream' :'newInstance') static;
      *n varchar(1000) ccsid(819) const;
      End-pr;
      Dcl-pr ReadInt32 Int(10)
      ExtProc(*JAVA :'com.google.protobuf.CodedInputStream' :'readInt32') ;
      End-pr;
      Dcl-pr getTotalBytesRead Int(10)
      ExtProc(*JAVA :'com.google.protobuf.CodedInputStream' :'getTotalBytesRead') ;
      End-pr;
      Dcl-pr computeWriteRawBytes ExtProc(*JAVA :'com.google.protobuf.CodedOutputStream' :'writeRawBytes') ;
      *n varChar(200) ccsid(819);
      End-pr;
      Dcl-pr computeInt32SizeNoTag Int(10)
      ExtProc(*JAVA :'com.google.protobuf.CodedOutputStream' :'computeInt32SizeNoTag') static ;
      *n Int(10) value;
      End-pr;
      Dcl-pr computewriteInt32NoTag
      ExtProc(*JAVA :'com.google.protobuf.CodedOutputStream' :'writeInt32NoTag') ;
      *n Int(10) value;
      End-pr;
      Dcl-pr computeFlush
      ExtProc(*JAVA :'com.google.protobuf.CodedOutputStream' :'flush') ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Costruttore classe EtmsAdmin
      Dcl-pr EtmsAdminConstructor Object(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin':*Constructor);
      End-pr;
      // Logon
      Dcl-pr EtmsAdminLogon Object(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin$Logon')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin$Logon':*Constructor);
      End-pr;
      Dcl-pr LogonBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr LogonNewBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'newBuilder') ;
      End-pr;
      Dcl-pr Logonbuild Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'build') ;
      End-pr;
      Dcl-pr LogonWriteTO ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon' :'writeTo') ;
      *n Object(*JAVA :'com.google.protobuf.CodedOutputStream');
      End-pr;
      Dcl-pr LogonToString Object(*JAVA :'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon' :'toString') ;
      End-pr;
      Dcl-pr LogonSetSessionId Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'setSessionID') ;
      *n Object(*JAVA :'java.lang.String') const;
      End-pr;
      Dcl-pr LogonSetProtocolVersion Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'setProtocolVersion') ;
      *n Int(10) value;
      End-pr;
      Dcl-pr LogonSetTimestamp Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'setTimestamp') ;
      *n Int(20) value;
      End-pr;
      Dcl-pr LogonSetMsgSeqNo Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'setMsgSeqNo') ;
      *n Int(10) value;
      End-pr;
      Dcl-pr LogongetSessionID Object(*JAVA :'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'getSessionID') ;
      End-pr;
      Dcl-pr LogongetTimestamp Int(20)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'getTimestamp') ;
      End-pr;
      Dcl-pr LogongetSerializedSize Int(10)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon' :'getSerializedSize') ;
      End-pr;
      Dcl-pr LogonisInitialized Ind
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon' :'isInitialized') ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Logout
      Dcl-pr EtmsAdminLogout Object(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin$Logout')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin$Logout':*Constructor);
      End-pr;
      Dcl-pr LogoutBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr Logoutbuild Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder' :'build') ;
      End-pr;
      Dcl-pr LogoutWriteTO ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout' :'writeTo') ;
      *n Object(*JAVA :'com.google.protobuf.CodedOutputStream');
      End-pr;
      Dcl-pr LogoutSetTimestamp Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder' :'setTimestamp') ;
      *n Int(20) value;
      End-pr;
      Dcl-pr LogoutSetSessionId Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder' :'setSessionID') ;
      *n Object(*JAVA :'java.lang.String') Const;
      End-pr;
      Dcl-pr LogoutSetText Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder' :'setText') ;
      *n Object(*JAVA :'java.lang.String') Const;
      End-pr;
      Dcl-pr LogoutgetSessionID Object(*JAVA :'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder' :'getSessionID') ;
      End-pr;
      Dcl-pr LogoutgetTimestamp Int(20)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder' :'getTimestamp') ;
      End-pr;
      Dcl-pr LogoutgetSerializedSize Int(10)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout' :'getSerializedSize') ;
      End-pr;
      Dcl-pr LogoutisInitialized Ind
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout' :'isInitialized') ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Heartbeat
      Dcl-pr EtmsAdminHeartbeat Object(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat':*Constructor);
      End-pr;
      Dcl-pr HeartbeatBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr Heartbeatbuild Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder' :'build') ;
      End-pr;
      Dcl-pr HeartbeatWriteTO ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon' :'writeTo') ;
      *n Object(*JAVA :'com.google.protobuf.CodedOutputStream');
      End-pr;
      Dcl-pr HeartbeatSetTimestamp Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat$Builder' :'setTimestamp') ;
      *n Int(20) value;
      End-pr;
      Dcl-pr HeartbeatgetTimestamp Int(20)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat$Builder' :'getTimestamp') ;
      End-pr;
      Dcl-pr HeartbeatgetSerializedSize Int(10)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat' :'getSerializedSize') ;
      End-pr;
      Dcl-pr HeartbeatisInitialized Ind
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat' :'isInitialized') ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Logon Answer
      Dcl-pr LogonAnswerBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$LogonAnswer$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$LogonAnswer$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr LogonAnswerParseFrom Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$LogonAnswer')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$LogonAnswer' :'parseFrom' ) static;
      *n Varchar(1000) ccsid(819);
      End-pr;
      Dcl-pr LogonAnswerGetSessionId Object(*JAVA :'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$LogonAnswer' :'getSessionID' ) ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Margin Request
      Dcl-pr EtmsMarginRequest Object(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$MarginRequest')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$MarginRequest':*Constructor);
      End-pr;
      Dcl-pr MarginRequestBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr MarginRequestbuild Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'build') ;
      End-pr;
      Dcl-pr MarginRequestWriteTO ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest' :'writeTo') ;
      *n Object(*JAVA :'com.google.protobuf.CodedOutputStream');
      End-pr;
      Dcl-pr MarginRequestSetClRequestId Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setClRequestId') ;
      *n Int(20) value;
      End-pr;
      Dcl-pr MarginRequestSetClearingHouse Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setClearingHouse') ;
      *n Object(*JAVA :'java.lang.String') const;
      End-pr;
      Dcl-pr MarginRequestSetPositions Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setPositions') ;
      *n Int(10) value;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position');
      End-pr;
      Dcl-pr MarginRequestAddPositions Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'addPositions') ;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position');
      End-pr;
      Dcl-pr MarginRequestSetCollaterals Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setCollaterals') ;
      *n Int(10) value;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral');
      End-pr;
      Dcl-pr MarginRequestAddCollaterals Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'addCollaterals') ;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral');
      End-pr;
      Dcl-pr MarginRequestSetResultCurrency Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setResultCurrency') ;
      *n Object(*JAVA :'java.lang.String') const;
      End-pr;
      Dcl-pr MarginRequestSetMarginAdjustment Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setMarginAdjustment') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr MarginRequestSetInitial Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setInitial') ;
      *n Ind value;
      End-pr;
      Dcl-pr MarginRequestSetCurrentSide Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setCurrentSide') ;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Side');
      End-pr;
      Dcl-pr MarginRequestSetAccountType Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setAccountType') ;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$AccountType');
      End-pr;
      Dcl-pr MarginRequestsetDetails Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder' :'setDetails') ;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$DetailType');
      End-pr;
      Dcl-pr MarginRequestgetSerializedSize Int(10)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest' :'getSerializedSize') ;
      End-pr;
      Dcl-pr MarginRequestisInitialized Ind
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest' :'isInitialized') ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Position
      Dcl-pr EtmsMarginPosition Object(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$Position')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$Position':*Constructor);
      End-pr;
      Dcl-pr PositionBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr Positionbuild Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder' :'build') ;
      End-pr;
      Dcl-pr PositionWriteTO ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position' :'writeTo') ;
      *n Object(*JAVA :'com.google.protobuf.CodedOutputStream');
      End-pr;
      Dcl-pr PositionSetData Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder' :'setData') ;
      *n Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data');
      End-pr;
      Dcl-pr PositionSetCode Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder' :'setCode') ;
      *n Object(*JAVA :'java.lang.String') const;
      End-pr;
      Dcl-pr PositionisInitialized Ind
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position' :'isInitialized') ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Data
      Dcl-pr EtmsMarginData Object(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$Data')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$Data':*Constructor);
      End-pr;
      Dcl-pr DataBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr Databuild Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'build') ;
      End-pr;
      Dcl-pr DataWriteTO ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data' :'writeTo') ;
      *n Object(*JAVA :'com.google.protobuf.CodedOutputStream');
      End-pr;
      Dcl-pr DataSetNetQty Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setNetQty') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr DataSetNetPrice Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setNetPrice') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr DataSetBuyQty Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setBuyQty') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr DataSetAvgBuyPrc Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setAvgBuyPrc') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr DataSetSellQty Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setSellQty') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr DataSetAvgSellPrc Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setAvgSellPrc') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr DataSetExass Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setExass') ;
      *n ind value;
      End-pr;
      Dcl-pr DataSetMktPrc Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder' :'setMktPrc') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr DataisInitialized Ind
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data' :'isInitialized') ;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Collateral
      Dcl-pr EtmsMarginCollateral Object(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$Collateral')
      ExtProc(*JAVA:'it.itsoftware.etms.proto.EtmsMargin$Collateral':*Constructor);
      End-pr;
      Dcl-pr CollateralBuilderConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder' :*Constructor ) ;
      End-pr;
      Dcl-pr Collateralbuild Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder' :'build') ;
      End-pr;
      Dcl-pr CollateralWriteTO ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral' :'writeTo') ;
      *n Object(*JAVA :'com.google.protobuf.CodedOutputStream');
      End-pr;
      Dcl-pr CollateralSetCode Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder' :'setCode') ;
      *n Object(*JAVA :'java.lang.String') const;
      End-pr;
      Dcl-pr CollateralSetAvailableQty Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder' :'setAvailableQty') ;
      *n Float(8) value;
      End-pr;
      Dcl-pr CollateralisInitialized Ind
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral' :'isInitialized') ;
      End-pr;
      // Side
      Dcl-pr SideValueOf Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Side')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Side' :'valueOf') static;
      *n Int(10) value;
      End-pr;
      // Account Type
      Dcl-pr AccountTypeValueOf Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$AccountType')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$AccountType' :'valueOf') static;
      *n Int(10) value;
      End-pr;
      // Detail Type
      Dcl-pr DetailTypeValueOf Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$DetailType')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$DetailType' :'valueOf') static;
      *n Int(10) value;
      End-pr;
      // ------------------------------------------------------------------------------------------------------------
      // Margin Response
      Dcl-pr MarginResponseParseFrom Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'parseFrom' ) static;
      *n Varchar(1000) ccsid(819);
      End-pr;
      Dcl-pr MarginResponseGetClRequestId Int(20)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getClRequestId' ) ;
      End-pr;
      Dcl-pr MarginResponseGetInitialMargin Float(8)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getInitialMargin' ) ;
      End-pr;
      Dcl-pr MarginResponseGetPremium Float(8)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getPremium' ) ;
      End-pr;
      Dcl-pr MarginResponseGetClose Float(8)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getClose' ) ;
      End-pr;
      Dcl-pr MarginResponseGetVariationMargin Float(8)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getVariationMargin' ) ;
      End-pr;
      Dcl-pr MarginResponsegetCurrentLiquidatingMargin Float(8)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getCurrentLiquidatingMargin' ) ;
      End-pr;
      Dcl-pr MarginResponseGetCurrency Object(*JAVA :'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getCurrency' ) ;
      End-pr;
      Dcl-pr MarginResponseGetDetailsCount Int(10)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getDetailsCount' ) ;
      End-pr;
      Dcl-pr MarginResponseGetDetails Like(Detail)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getDetails' ) ;
      *n int(10) value;
      End-pr;
      // Margin Response Details
      Dcl-pr MarginResponseDetailsConstructor Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail$Builder')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail$Builder' :*Constructor ) ;
      End-pr;
      //Dcl-pr MarginResponseGetDetailsList Like(Detail)
      // ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse' :'getDetailsList' ) ;
      //End-pr;
      Dcl-pr MarginResponseDetailsGetClRequestId Int(20)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail' :'getClRequestId' ) ;
      End-pr;
      Dcl-pr DetailGetContractGroup Object(*JAVA : 'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail' :'getContractGroup' ) ;
      End-pr;
      Dcl-pr DetailGetCurrencyCode Object(*JAVA : 'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail' :'getCurrencyCode' ) ;
      End-pr;
      Dcl-pr DetailGetExchangeName Object(*JAVA : 'java.lang.String')
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail' :'getExchangeName' ) ;
      End-pr;
      Dcl-pr DetailgetValuesList Like(Entry)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail' :'getContractGroup' ) ;
      *n int(10) value;
      End-pr;
      Dcl-pr DetailGetValuesCount Int(10)
      ExtProc(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail' :'getValuesCount' ) ;
      End-pr;
      // Byte Array
      Dcl-pr ByteArrayOutputStream Object(*JAVA :'java.io.ByteArrayOutputStream')
      ExtProc(*JAVA :'java.io.ByteArrayOutputStream':*Constructor);
      End-pr;
      Dcl-pr ByteArrayInputStream Object(*JAVA :'java.io.ByteArrayInputStream')
      ExtProc(*JAVA :'java.io.ByteArrayInputStream' :*Constructor);
      *n VarChar(1000) Const;
      End-pr;
      Dcl-pr ToByteArray varChar(1000) ccsid(819) ExtProc(*JAVA :'java.io.ByteArrayOutputStream':'toByteArray') ;
      End-pr;
      Dcl-pr ByteReset ExtProc(*JAVA :'java.io.ByteArrayOutputStream':'reset') ;
      End-pr;
      Dcl-pr NewList Object(*JAVA :'java.util.List')
      Extproc(*JAVA :'java.util.List': *Constructor);
      End-pr;
      Dcl-pr ByteSize Int(10) ExtProc(*JAVA :'java.io.ByteArrayOutputStream':'size') ;
      End-pr;
      // Java String
      Dcl-pr string Object ExtProc(*JAVA :'java.lang.String':*Constructor);
      *n VarChar(100) Const;
      End-pr;
      Dcl-pr getBytes VarChar(100) ExtProc(*JAVA :'java.lang.String':'getBytes');
      End-pr;
      // OpenStdio per redirect Standart Output
      Dcl-Pr OpenStdIo ExtPgm('PAOLOS/OPENSTDIO');
      End-Pr;
      // Variabili Java
      Dcl-s CodedOutputStream Object(*JAVA : 'com.google.protobuf.CodedOutputStream');
      Dcl-s CodedInputStream Object(*JAVA : 'com.google.protobuf.CodedInputStream');
      Dcl-s ByteArrayOut Object(*JAVA :'java.io.ByteArrayOutputStream');
      Dcl-s ByteArrayInp Object(*JAVA :'java.io.ByteArrayInputStream');
      Dcl-s EtmsAdmin Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin');
      Dcl-s Logon Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon');
      Dcl-s LogonBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logon$Builder');
      Dcl-s Logout Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout');
      Dcl-s LogoutBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Logout$Builder');
      Dcl-s LogonAnswer Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$LogonAnswer');
      Dcl-s LogonAnswerBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$LogonAnswer$Builder');
      Dcl-s Heartbeat Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat');
      Dcl-s HeartbeatBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsAdmin$Heartbeat$Builder');
      Dcl-s MarginRequest Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest');
      Dcl-s MarginRequestBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginRequest$Builder');
      Dcl-s MarginResponse Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse');
      Dcl-s Position Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position');
      Dcl-s PositionBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Position$Builder');
      Dcl-s Data Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data');
      Dcl-s DataBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Data$Builder');
      Dcl-s Collateral Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral');
      Dcl-s CollateralBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Collateral$Builder');
      Dcl-s Side Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$Side');
      Dcl-s AccountType Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$AccountType');
      Dcl-s DetailType Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$DetailType');
      //Dcl-s Detail Object(*JAVA :'java.util.List');
      Dcl-s Detail Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$MarginResponse$Detail');
      Dcl-s DetailList Object(*JAVA :'java.util.List');
      Dcl-s DetailBuilder Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$DetailMarginResponse$Detail');
      Dcl-s Entry Object(*JAVA :'it.itsoftware.etms.proto.EtmsMargin$DetailMarginResponse$Detail$Entry');
      Dcl-s SessionId Object(*JAVA :'java.lang.String');
      Dcl-s MessageString Object(*JAVA :'java.lang.String');
      Dcl-s getSessionId Object(*JAVA :'java.lang.String');
      I know it's a bit complicated...

      Comment


      • #4
        Without the jar files as well I can't really guess just looking at this and I'm afraid I don't have enough time to download it all and explore.

        Two thoughts for you.

        First. If you don't know Java - why use the Java version? Why not use the PHP or Python and feed it from a data queue? Or for that matter use the C++ version which (with a little work) should be easily callable from RPG. The C++ version will also be much faster. Don't know if performance is an issue in this application but using RPG JNI is never going to be the fastest approach.

        Second thought. Download the trial version of RDi - it is good for 120 days which is more than long enough to get a few comparisons between what you have coded and what the RDi wizard produces. I suggest using the web install method rather than downloading the whole set of image files which are huge. Who knows - once your boss sees how much easier it makes jobs like this and improves your regualr RPG work he may even lets th moths out f his wallet!

        Comment

        Working...
        X