Hex Artifact Content
Not logged in

Artifact 69cb92a5d669299cf1b5d6d1e69ec16ef1a47e8a:


0000: 70 61 63 6b 61 67 65 20 6f 72 67 2e 69 6e 74 65  package org.inte
0010: 72 6c 65 64 67 65 72 2e 63 6f 64 65 63 73 3b 0a  rledger.codecs;.
0020: 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65  .import org.inte
0030: 72 6c 65 64 67 65 72 2e 49 6e 74 65 72 6c 65 64  rledger.Interled
0040: 67 65 72 41 64 64 72 65 73 73 3b 0a 69 6d 70 6f  gerAddress;.impo
0050: 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67  rt org.interledg
0060: 65 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65  er.codecs.oer.Oe
0070: 72 47 65 6e 65 72 61 6c 69 7a 65 64 54 69 6d 65  rGeneralizedTime
0080: 43 6f 64 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72  Codec;.import or
0090: 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f  g.interledger.co
00a0: 64 65 63 73 2e 6f 65 72 2e 4f 65 72 47 65 6e 65  decs.oer.OerGene
00b0: 72 61 6c 69 7a 65 64 54 69 6d 65 43 6f 64 65 63  ralizedTimeCodec
00c0: 2e 4f 65 72 47 65 6e 65 72 61 6c 69 7a 65 64 54  .OerGeneralizedT
00d0: 69 6d 65 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e  ime;.import org.
00e0: 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64 65  interledger.code
00f0: 63 73 2e 6f 65 72 2e 4f 65 72 49 41 35 53 74 72  cs.oer.OerIA5Str
0100: 69 6e 67 43 6f 64 65 63 3b 0a 69 6d 70 6f 72 74  ingCodec;.import
0110: 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72   org.interledger
0120: 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65 72 49  .codecs.oer.OerI
0130: 41 35 53 74 72 69 6e 67 43 6f 64 65 63 2e 4f 65  A5StringCodec.Oe
0140: 72 49 41 35 53 74 72 69 6e 67 3b 0a 69 6d 70 6f  rIA5String;.impo
0150: 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67  rt org.interledg
0160: 65 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65  er.codecs.oer.Oe
0170: 72 4c 65 6e 67 74 68 50 72 65 66 69 78 43 6f 64  rLengthPrefixCod
0180: 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69  ec;.import org.i
0190: 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64 65 63  nterledger.codec
01a0: 73 2e 6f 65 72 2e 4f 65 72 4c 65 6e 67 74 68 50  s.oer.OerLengthP
01b0: 72 65 66 69 78 43 6f 64 65 63 2e 4f 65 72 4c 65  refixCodec.OerLe
01c0: 6e 67 74 68 50 72 65 66 69 78 3b 0a 69 6d 70 6f  ngthPrefix;.impo
01d0: 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67  rt org.interledg
01e0: 65 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65  er.codecs.oer.Oe
01f0: 72 4f 63 74 65 74 53 74 72 69 6e 67 43 6f 64 65  rOctetStringCode
0200: 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e  c;.import org.in
0210: 74 65 72 6c 65 64 67 65 72 2e 63 6f 64 65 63 73  terledger.codecs
0220: 2e 6f 65 72 2e 4f 65 72 4f 63 74 65 74 53 74 72  .oer.OerOctetStr
0230: 69 6e 67 43 6f 64 65 63 2e 4f 65 72 4f 63 74 65  ingCodec.OerOcte
0240: 74 53 74 72 69 6e 67 3b 0a 69 6d 70 6f 72 74 20  tString;.import 
0250: 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e  org.interledger.
0260: 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65 72 53 65  codecs.oer.OerSe
0270: 71 75 65 6e 63 65 4f 66 41 64 64 72 65 73 73 43  quenceOfAddressC
0280: 6f 64 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67  odec;.import org
0290: 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64  .interledger.cod
02a0: 65 63 73 2e 6f 65 72 2e 4f 65 72 53 65 71 75 65  ecs.oer.OerSeque
02b0: 6e 63 65 4f 66 41 64 64 72 65 73 73 43 6f 64 65  nceOfAddressCode
02c0: 63 2e 4f 65 72 53 65 71 75 65 6e 63 65 4f 66 41  c.OerSequenceOfA
02d0: 64 64 72 65 73 73 3b 0a 69 6d 70 6f 72 74 20 6f  ddress;.import o
02e0: 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 63  rg.interledger.c
02f0: 6f 64 65 63 73 2e 6f 65 72 2e 4f 65 72 55 69 6e  odecs.oer.OerUin
0300: 74 32 35 36 43 6f 64 65 63 3b 0a 69 6d 70 6f 72  t256Codec;.impor
0310: 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65  t org.interledge
0320: 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65 72  r.codecs.oer.Oer
0330: 55 69 6e 74 32 35 36 43 6f 64 65 63 2e 4f 65 72  Uint256Codec.Oer
0340: 55 69 6e 74 32 35 36 3b 0a 69 6d 70 6f 72 74 20  Uint256;.import 
0350: 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e  org.interledger.
0360: 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65 72 55 69  codecs.oer.OerUi
0370: 6e 74 33 32 43 6f 64 65 63 3b 0a 69 6d 70 6f 72  nt32Codec;.impor
0380: 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65  t org.interledge
0390: 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65 72  r.codecs.oer.Oer
03a0: 55 69 6e 74 33 32 43 6f 64 65 63 2e 4f 65 72 55  Uint32Codec.OerU
03b0: 69 6e 74 33 32 3b 0a 69 6d 70 6f 72 74 20 6f 72  int32;.import or
03c0: 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f  g.interledger.co
03d0: 64 65 63 73 2e 6f 65 72 2e 4f 65 72 55 69 6e 74  decs.oer.OerUint
03e0: 36 34 43 6f 64 65 63 3b 0a 69 6d 70 6f 72 74 20  64Codec;.import 
03f0: 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e  org.interledger.
0400: 63 6f 64 65 63 73 2e 6f 65 72 2e 4f 65 72 55 69  codecs.oer.OerUi
0410: 6e 74 36 34 43 6f 64 65 63 2e 4f 65 72 55 69 6e  nt64Codec.OerUin
0420: 74 36 34 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e  t64;.import org.
0430: 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64 65  interledger.code
0440: 63 73 2e 6f 65 72 2e 4f 65 72 55 69 6e 74 38 43  cs.oer.OerUint8C
0450: 6f 64 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67  odec;.import org
0460: 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64  .interledger.cod
0470: 65 63 73 2e 6f 65 72 2e 4f 65 72 55 69 6e 74 38  ecs.oer.OerUint8
0480: 43 6f 64 65 63 2e 4f 65 72 55 69 6e 74 38 3b 0a  Codec.OerUint8;.
0490: 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72  import org.inter
04a0: 6c 65 64 67 65 72 2e 63 6f 64 65 63 73 2e 6f 65  ledger.codecs.oe
04b0: 72 2e 69 6c 70 2e 43 6f 6e 64 69 74 69 6f 6e 4f  r.ilp.ConditionO
04c0: 65 72 43 6f 64 65 63 3b 0a 69 6d 70 6f 72 74 20  erCodec;.import 
04d0: 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e  org.interledger.
04e0: 63 6f 64 65 63 73 2e 6f 65 72 2e 69 6c 70 2e 46  codecs.oer.ilp.F
04f0: 75 6c 66 69 6c 6c 6d 65 6e 74 4f 65 72 43 6f 64  ulfillmentOerCod
0500: 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69  ec;.import org.i
0510: 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64 65 63  nterledger.codec
0520: 73 2e 6f 65 72 2e 69 6c 70 2e 49 6e 74 65 72 6c  s.oer.ilp.Interl
0530: 65 64 67 65 72 41 64 64 72 65 73 73 4f 65 72 43  edgerAddressOerC
0540: 6f 64 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67  odec;.import org
0550: 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64  .interledger.cod
0560: 65 63 73 2e 6f 65 72 2e 69 6c 70 2e 49 6e 74 65  ecs.oer.ilp.Inte
0570: 72 6c 65 64 67 65 72 50 61 63 6b 65 74 54 79 70  rledgerPacketTyp
0580: 65 4f 65 72 43 6f 64 65 63 3b 0a 69 6d 70 6f 72  eOerCodec;.impor
0590: 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65  t org.interledge
05a0: 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 69 6c 70  r.codecs.oer.ilp
05b0: 2e 49 6e 74 65 72 6c 65 64 67 65 72 50 61 79 6d  .InterledgerPaym
05c0: 65 6e 74 4f 65 72 43 6f 64 65 63 3b 0a 69 6d 70  entOerCodec;.imp
05d0: 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64  ort org.interled
05e0: 67 65 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 69  ger.codecs.oer.i
05f0: 6c 70 2e 49 6e 74 65 72 6c 65 64 67 65 72 50 72  lp.InterledgerPr
0600: 6f 74 6f 63 6f 6c 50 72 6f 74 6f 63 6f 6c 45 72  otocolProtocolEr
0610: 72 6f 72 4f 65 72 43 6f 64 65 63 3b 0a 69 6d 70  rorOerCodec;.imp
0620: 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64  ort org.interled
0630: 67 65 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 69  ger.codecs.oer.i
0640: 6c 71 70 2e 51 75 6f 74 65 42 79 44 65 73 74 69  lqp.QuoteByDesti
0650: 6e 61 74 69 6f 6e 41 6d 6f 75 6e 74 52 65 71 75  nationAmountRequ
0660: 65 73 74 4f 65 72 43 6f 64 65 63 3b 0a 69 6d 70  estOerCodec;.imp
0670: 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64  ort org.interled
0680: 67 65 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 69  ger.codecs.oer.i
0690: 6c 71 70 2e 51 75 6f 74 65 42 79 44 65 73 74 69  lqp.QuoteByDesti
06a0: 6e 61 74 69 6f 6e 41 6d 6f 75 6e 74 52 65 73 70  nationAmountResp
06b0: 6f 6e 73 65 4f 65 72 43 6f 64 65 63 3b 0a 69 6d  onseOerCodec;.im
06c0: 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65  port org.interle
06d0: 64 67 65 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e  dger.codecs.oer.
06e0: 69 6c 71 70 2e 51 75 6f 74 65 42 79 53 6f 75 72  ilqp.QuoteBySour
06f0: 63 65 41 6d 6f 75 6e 74 52 65 71 75 65 73 74 4f  ceAmountRequestO
0700: 65 72 43 6f 64 65 63 3b 0a 69 6d 70 6f 72 74 20  erCodec;.import 
0710: 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e  org.interledger.
0720: 63 6f 64 65 63 73 2e 6f 65 72 2e 69 6c 71 70 2e  codecs.oer.ilqp.
0730: 51 75 6f 74 65 42 79 53 6f 75 72 63 65 41 6d 6f  QuoteBySourceAmo
0740: 75 6e 74 52 65 73 70 6f 6e 73 65 4f 65 72 43 6f  untResponseOerCo
0750: 64 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e  dec;.import org.
0760: 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 6f 64 65  interledger.code
0770: 63 73 2e 6f 65 72 2e 69 6c 71 70 2e 51 75 6f 74  cs.oer.ilqp.Quot
0780: 65 4c 69 71 75 69 64 69 74 79 52 65 71 75 65 73  eLiquidityReques
0790: 74 4f 65 72 43 6f 64 65 63 3b 0a 69 6d 70 6f 72  tOerCodec;.impor
07a0: 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65  t org.interledge
07b0: 72 2e 63 6f 64 65 63 73 2e 6f 65 72 2e 69 6c 71  r.codecs.oer.ilq
07c0: 70 2e 51 75 6f 74 65 4c 69 71 75 69 64 69 74 79  p.QuoteLiquidity
07d0: 52 65 73 70 6f 6e 73 65 4f 65 72 43 6f 64 65 63  ResponseOerCodec
07e0: 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74  ;.import org.int
07f0: 65 72 6c 65 64 67 65 72 2e 63 6f 64 65 63 73 2e  erledger.codecs.
0800: 6f 65 72 2e 69 70 72 2e 49 6e 74 65 72 6c 65 64  oer.ipr.Interled
0810: 67 65 72 50 61 79 6d 65 6e 74 52 65 71 75 65 73  gerPaymentReques
0820: 74 4f 65 72 43 6f 64 65 63 3b 0a 69 6d 70 6f 72  tOerCodec;.impor
0830: 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67 65  t org.interledge
0840: 72 2e 63 6f 64 65 63 73 2e 70 61 63 6b 65 74 74  r.codecs.packett
0850: 79 70 65 73 2e 49 6e 74 65 72 6c 65 64 67 65 72  ypes.Interledger
0860: 50 61 63 6b 65 74 54 79 70 65 3b 0a 69 6d 70 6f  PacketType;.impo
0870: 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64 67  rt org.interledg
0880: 65 72 2e 63 6f 64 65 63 73 2e 70 73 6b 2e 50 73  er.codecs.psk.Ps
0890: 6b 4d 65 73 73 61 67 65 42 69 6e 61 72 79 43 6f  kMessageBinaryCo
08a0: 64 65 63 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e  dec;.import org.
08b0: 69 6e 74 65 72 6c 65 64 67 65 72 2e 63 72 79 70  interledger.cryp
08c0: 74 6f 63 6f 6e 64 69 74 69 6f 6e 73 2e 43 6f 6e  toconditions.Con
08d0: 64 69 74 69 6f 6e 3b 0a 69 6d 70 6f 72 74 20 6f  dition;.import o
08e0: 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 63  rg.interledger.c
08f0: 72 79 70 74 6f 63 6f 6e 64 69 74 69 6f 6e 73 2e  ryptoconditions.
0900: 46 75 6c 66 69 6c 6c 6d 65 6e 74 3b 0a 69 6d 70  Fulfillment;.imp
0910: 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65 64  ort org.interled
0920: 67 65 72 2e 63 72 79 70 74 6f 63 6f 6e 64 69 74  ger.cryptocondit
0930: 69 6f 6e 73 2e 50 72 65 69 6d 61 67 65 53 68 61  ions.PreimageSha
0940: 32 35 36 43 6f 6e 64 69 74 69 6f 6e 3b 0a 69 6d  256Condition;.im
0950: 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65  port org.interle
0960: 64 67 65 72 2e 63 72 79 70 74 6f 63 6f 6e 64 69  dger.cryptocondi
0970: 74 69 6f 6e 73 2e 50 72 65 69 6d 61 67 65 53 68  tions.PreimageSh
0980: 61 32 35 36 46 75 6c 66 69 6c 6c 6d 65 6e 74 3b  a256Fulfillment;
0990: 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65  .import org.inte
09a0: 72 6c 65 64 67 65 72 2e 69 6c 70 2e 49 6e 74 65  rledger.ilp.Inte
09b0: 72 6c 65 64 67 65 72 50 61 79 6d 65 6e 74 3b 0a  rledgerPayment;.
09c0: 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72  import org.inter
09d0: 6c 65 64 67 65 72 2e 69 6c 70 2e 49 6e 74 65 72  ledger.ilp.Inter
09e0: 6c 65 64 67 65 72 50 72 6f 74 6f 63 6f 6c 45 72  ledgerProtocolEr
09f0: 72 6f 72 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e  ror;.import org.
0a00: 69 6e 74 65 72 6c 65 64 67 65 72 2e 69 6c 71 70  interledger.ilqp
0a10: 2e 51 75 6f 74 65 42 79 44 65 73 74 69 6e 61 74  .QuoteByDestinat
0a20: 69 6f 6e 41 6d 6f 75 6e 74 52 65 71 75 65 73 74  ionAmountRequest
0a30: 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74  ;.import org.int
0a40: 65 72 6c 65 64 67 65 72 2e 69 6c 71 70 2e 51 75  erledger.ilqp.Qu
0a50: 6f 74 65 42 79 44 65 73 74 69 6e 61 74 69 6f 6e  oteByDestination
0a60: 41 6d 6f 75 6e 74 52 65 73 70 6f 6e 73 65 3b 0a  AmountResponse;.
0a70: 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72  import org.inter
0a80: 6c 65 64 67 65 72 2e 69 6c 71 70 2e 51 75 6f 74  ledger.ilqp.Quot
0a90: 65 42 79 53 6f 75 72 63 65 41 6d 6f 75 6e 74 52  eBySourceAmountR
0aa0: 65 71 75 65 73 74 3b 0a 69 6d 70 6f 72 74 20 6f  equest;.import o
0ab0: 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 69  rg.interledger.i
0ac0: 6c 71 70 2e 51 75 6f 74 65 42 79 53 6f 75 72 63  lqp.QuoteBySourc
0ad0: 65 41 6d 6f 75 6e 74 52 65 73 70 6f 6e 73 65 3b  eAmountResponse;
0ae0: 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65  .import org.inte
0af0: 72 6c 65 64 67 65 72 2e 69 6c 71 70 2e 51 75 6f  rledger.ilqp.Quo
0b00: 74 65 4c 69 71 75 69 64 69 74 79 52 65 71 75 65  teLiquidityReque
0b10: 73 74 3b 0a 69 6d 70 6f 72 74 20 6f 72 67 2e 69  st;.import org.i
0b20: 6e 74 65 72 6c 65 64 67 65 72 2e 69 6c 71 70 2e  nterledger.ilqp.
0b30: 51 75 6f 74 65 4c 69 71 75 69 64 69 74 79 52 65  QuoteLiquidityRe
0b40: 73 70 6f 6e 73 65 3b 0a 69 6d 70 6f 72 74 20 6f  sponse;.import o
0b50: 72 67 2e 69 6e 74 65 72 6c 65 64 67 65 72 2e 69  rg.interledger.i
0b60: 70 72 2e 49 6e 74 65 72 6c 65 64 67 65 72 50 61  pr.InterledgerPa
0b70: 79 6d 65 6e 74 52 65 71 75 65 73 74 3b 0a 69 6d  ymentRequest;.im
0b80: 70 6f 72 74 20 6f 72 67 2e 69 6e 74 65 72 6c 65  port org.interle
0b90: 64 67 65 72 2e 70 73 6b 2e 50 73 6b 4d 65 73 73  dger.psk.PskMess
0ba0: 61 67 65 3b 0a 0a 2f 2a 2a 0a 20 2a 20 41 20 66  age;../**. * A f
0bb0: 61 63 74 6f 72 79 20 63 6c 61 73 73 20 66 6f 72  actory class for
0bc0: 20 63 6f 6e 73 74 72 75 63 74 69 6e 67 20 61 20   constructing a 
0bd0: 43 6f 64 65 63 43 6f 6e 74 65 78 74 20 74 68 61  CodecContext tha
0be0: 74 20 63 61 6e 20 72 65 61 64 20 61 6e 64 20 77  t can read and w
0bf0: 72 69 74 65 20 49 6e 74 65 72 6c 65 64 67 65 72  rite Interledger
0c00: 20 6f 62 6a 65 63 74 73 20 75 73 69 6e 67 0a 20   objects using. 
0c10: 2a 20 41 53 4e 2e 31 20 4f 45 52 20 65 6e 63 6f  * ASN.1 OER enco
0c20: 64 69 6e 67 2e 0a 20 2a 2f 0a 70 75 62 6c 69 63  ding.. */.public
0c30: 20 63 6c 61 73 73 20 43 6f 64 65 63 43 6f 6e 74   class CodecCont
0c40: 65 78 74 46 61 63 74 6f 72 79 20 7b 0a 0a 20 20  extFactory {..  
0c50: 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 65 20  /**.   * Create 
0c60: 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 7b  an instance of {
0c70: 40 6c 69 6e 6b 20 43 6f 64 65 63 43 6f 6e 74 65  @link CodecConte
0c80: 78 74 7d 20 74 68 61 74 20 65 6e 63 6f 64 65 73  xt} that encodes
0c90: 20 61 6e 64 20 64 65 63 6f 64 65 73 20 49 6e 74   and decodes Int
0ca0: 65 72 6c 65 64 67 65 72 20 70 61 63 6b 65 74 73  erledger packets
0cb0: 20 75 73 69 6e 67 0a 20 20 20 2a 20 41 53 4e 2e   using.   * ASN.
0cc0: 31 20 4f 45 52 20 65 6e 63 6f 64 69 6e 67 2e 0a  1 OER encoding..
0cd0: 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72     *.   * @retur
0ce0: 6e 20 41 20 6e 65 77 20 69 6e 73 74 61 6e 63 65  n A new instance
0cf0: 20 6f 66 20 7b 40 6c 69 6e 6b 20 43 6f 64 65 63   of {@link Codec
0d00: 43 6f 6e 74 65 78 74 7d 2e 0a 20 20 20 2a 2f 0a  Context}..   */.
0d10: 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20    public static 
0d20: 43 6f 64 65 63 43 6f 6e 74 65 78 74 20 69 6e 74  CodecContext int
0d30: 65 72 6c 65 64 67 65 72 28 29 20 7b 0a 0a 20 20  erledger() {..  
0d40: 20 20 2f 2f 20 4f 45 52 20 42 61 73 65 2e 2e 2e    // OER Base...
0d50: 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20  .    return new 
0d60: 43 6f 64 65 63 43 6f 6e 74 65 78 74 28 29 0a 20  CodecContext(). 
0d70: 20 20 20 20 20 2e 72 65 67 69 73 74 65 72 28 4f       .register(O
0d80: 65 72 55 69 6e 74 38 2e 63 6c 61 73 73 2c 20 6e  erUint8.class, n
0d90: 65 77 20 4f 65 72 55 69 6e 74 38 43 6f 64 65 63  ew OerUint8Codec
0da0: 28 29 29 0a 20 20 20 20 20 20 2e 72 65 67 69 73  ()).      .regis
0db0: 74 65 72 28 4f 65 72 55 69 6e 74 33 32 2e 63 6c  ter(OerUint32.cl
0dc0: 61 73 73 2c 20 6e 65 77 20 4f 65 72 55 69 6e 74  ass, new OerUint
0dd0: 33 32 43 6f 64 65 63 28 29 29 0a 20 20 20 20 20  32Codec()).     
0de0: 20 2e 72 65 67 69 73 74 65 72 28 4f 65 72 55 69   .register(OerUi
0df0: 6e 74 36 34 2e 63 6c 61 73 73 2c 20 6e 65 77 20  nt64.class, new 
0e00: 4f 65 72 55 69 6e 74 36 34 43 6f 64 65 63 28 29  OerUint64Codec()
0e10: 29 0a 20 20 20 20 20 20 2e 72 65 67 69 73 74 65  ).      .registe
0e20: 72 28 4f 65 72 55 69 6e 74 32 35 36 2e 63 6c 61  r(OerUint256.cla
0e30: 73 73 2c 20 6e 65 77 20 4f 65 72 55 69 6e 74 32  ss, new OerUint2
0e40: 35 36 43 6f 64 65 63 28 29 29 0a 20 20 20 20 20  56Codec()).     
0e50: 20 2e 72 65 67 69 73 74 65 72 28 4f 65 72 4c 65   .register(OerLe
0e60: 6e 67 74 68 50 72 65 66 69 78 2e 63 6c 61 73 73  ngthPrefix.class
0e70: 2c 20 6e 65 77 20 4f 65 72 4c 65 6e 67 74 68 50  , new OerLengthP
0e80: 72 65 66 69 78 43 6f 64 65 63 28 29 29 0a 20 20  refixCodec()).  
0e90: 20 20 20 20 2e 72 65 67 69 73 74 65 72 28 4f 65      .register(Oe
0ea0: 72 49 41 35 53 74 72 69 6e 67 2e 63 6c 61 73 73  rIA5String.class
0eb0: 2c 20 6e 65 77 20 4f 65 72 49 41 35 53 74 72 69  , new OerIA5Stri
0ec0: 6e 67 43 6f 64 65 63 28 29 29 0a 20 20 20 20 20  ngCodec()).     
0ed0: 20 2e 72 65 67 69 73 74 65 72 28 4f 65 72 4f 63   .register(OerOc
0ee0: 74 65 74 53 74 72 69 6e 67 2e 63 6c 61 73 73 2c  tetString.class,
0ef0: 20 6e 65 77 20 4f 65 72 4f 63 74 65 74 53 74 72   new OerOctetStr
0f00: 69 6e 67 43 6f 64 65 63 28 29 29 0a 20 20 20 20  ingCodec()).    
0f10: 20 20 2e 72 65 67 69 73 74 65 72 28 4f 65 72 47    .register(OerG
0f20: 65 6e 65 72 61 6c 69 7a 65 64 54 69 6d 65 2e 63  eneralizedTime.c
0f30: 6c 61 73 73 2c 20 6e 65 77 20 4f 65 72 47 65 6e  lass, new OerGen
0f40: 65 72 61 6c 69 7a 65 64 54 69 6d 65 43 6f 64 65  eralizedTimeCode
0f50: 63 28 29 29 0a 20 20 20 20 20 20 2e 72 65 67 69  c()).      .regi
0f60: 73 74 65 72 28 4f 65 72 53 65 71 75 65 6e 63 65  ster(OerSequence
0f70: 4f 66 41 64 64 72 65 73 73 2e 63 6c 61 73 73 2c  OfAddress.class,
0f80: 20 6e 65 77 20 4f 65 72 53 65 71 75 65 6e 63 65   new OerSequence
0f90: 4f 66 41 64 64 72 65 73 73 43 6f 64 65 63 28 29  OfAddressCodec()
0fa0: 29 0a 0a 20 20 20 20 20 20 2f 2f 20 49 4c 50 0a  )..      // ILP.
0fb0: 20 20 20 20 20 20 2e 72 65 67 69 73 74 65 72 28        .register(
0fc0: 49 6e 74 65 72 6c 65 64 67 65 72 41 64 64 72 65  InterledgerAddre
0fd0: 73 73 2e 63 6c 61 73 73 2c 20 6e 65 77 20 49 6e  ss.class, new In
0fe0: 74 65 72 6c 65 64 67 65 72 41 64 64 72 65 73 73  terledgerAddress
0ff0: 4f 65 72 43 6f 64 65 63 28 29 29 0a 20 20 20 20  OerCodec()).    
1000: 20 20 2e 72 65 67 69 73 74 65 72 28 49 6e 74 65    .register(Inte
1010: 72 6c 65 64 67 65 72 50 61 63 6b 65 74 54 79 70  rledgerPacketTyp
1020: 65 2e 63 6c 61 73 73 2c 20 6e 65 77 20 49 6e 74  e.class, new Int
1030: 65 72 6c 65 64 67 65 72 50 61 63 6b 65 74 54 79  erledgerPacketTy
1040: 70 65 4f 65 72 43 6f 64 65 63 28 29 29 0a 20 20  peOerCodec()).  
1050: 20 20 20 20 2e 72 65 67 69 73 74 65 72 28 49 6e      .register(In
1060: 74 65 72 6c 65 64 67 65 72 50 61 79 6d 65 6e 74  terledgerPayment
1070: 2e 63 6c 61 73 73 2c 20 6e 65 77 20 49 6e 74 65  .class, new Inte
1080: 72 6c 65 64 67 65 72 50 61 79 6d 65 6e 74 4f 65  rledgerPaymentOe
1090: 72 43 6f 64 65 63 28 29 29 0a 20 20 20 20 20 20  rCodec()).      
10a0: 2e 72 65 67 69 73 74 65 72 28 49 6e 74 65 72 6c  .register(Interl
10b0: 65 64 67 65 72 50 72 6f 74 6f 63 6f 6c 45 72 72  edgerProtocolErr
10c0: 6f 72 2e 63 6c 61 73 73 2c 20 6e 65 77 20 49 6e  or.class, new In
10d0: 74 65 72 6c 65 64 67 65 72 50 72 6f 74 6f 63 6f  terledgerProtoco
10e0: 6c 50 72 6f 74 6f 63 6f 6c 45 72 72 6f 72 4f 65  lProtocolErrorOe
10f0: 72 43 6f 64 65 63 28 29 29 0a 20 20 20 20 20 20  rCodec()).      
1100: 2e 72 65 67 69 73 74 65 72 28 49 6e 74 65 72 6c  .register(Interl
1110: 65 64 67 65 72 50 61 79 6d 65 6e 74 52 65 71 75  edgerPaymentRequ
1120: 65 73 74 2e 63 6c 61 73 73 2c 20 6e 65 77 20 49  est.class, new I
1130: 6e 74 65 72 6c 65 64 67 65 72 50 61 79 6d 65 6e  nterledgerPaymen
1140: 74 52 65 71 75 65 73 74 4f 65 72 43 6f 64 65 63  tRequestOerCodec
1150: 28 29 29 0a 20 20 20 20 20 20 2e 72 65 67 69 73  ()).      .regis
1160: 74 65 72 28 43 6f 6e 64 69 74 69 6f 6e 2e 63 6c  ter(Condition.cl
1170: 61 73 73 2c 20 6e 65 77 20 43 6f 6e 64 69 74 69  ass, new Conditi
1180: 6f 6e 4f 65 72 43 6f 64 65 63 28 29 29 0a 20 20  onOerCodec()).  
1190: 20 20 20 20 2e 72 65 67 69 73 74 65 72 28 50 72      .register(Pr
11a0: 65 69 6d 61 67 65 53 68 61 32 35 36 43 6f 6e 64  eimageSha256Cond
11b0: 69 74 69 6f 6e 2e 63 6c 61 73 73 2c 20 6e 65 77  ition.class, new
11c0: 20 43 6f 6e 64 69 74 69 6f 6e 4f 65 72 43 6f 64   ConditionOerCod
11d0: 65 63 28 29 29 0a 20 20 20 20 20 20 2e 72 65 67  ec()).      .reg
11e0: 69 73 74 65 72 28 46 75 6c 66 69 6c 6c 6d 65 6e  ister(Fulfillmen
11f0: 74 2e 63 6c 61 73 73 2c 20 6e 65 77 20 46 75 6c  t.class, new Ful
1200: 66 69 6c 6c 6d 65 6e 74 4f 65 72 43 6f 64 65 63  fillmentOerCodec
1210: 28 29 29 0a 20 20 20 20 20 20 2e 72 65 67 69 73  ()).      .regis
1220: 74 65 72 28 50 72 65 69 6d 61 67 65 53 68 61 32  ter(PreimageSha2
1230: 35 36 46 75 6c 66 69 6c 6c 6d 65 6e 74 2e 63 6c  56Fulfillment.cl
1240: 61 73 73 2c 20 6e 65 77 20 46 75 6c 66 69 6c 6c  ass, new Fulfill
1250: 6d 65 6e 74 4f 65 72 43 6f 64 65 63 28 29 29 0a  mentOerCodec()).
1260: 0a 20 20 20 20 20 20 2f 2f 20 49 4c 51 50 0a 20  .      // ILQP. 
1270: 20 20 20 20 20 2e 72 65 67 69 73 74 65 72 28 51       .register(Q
1280: 75 6f 74 65 42 79 44 65 73 74 69 6e 61 74 69 6f  uoteByDestinatio
1290: 6e 41 6d 6f 75 6e 74 52 65 71 75 65 73 74 2e 63  nAmountRequest.c
12a0: 6c 61 73 73 2c 0a 20 20 20 20 20 20 20 20 6e 65  lass,.        ne
12b0: 77 20 51 75 6f 74 65 42 79 44 65 73 74 69 6e 61  w QuoteByDestina
12c0: 74 69 6f 6e 41 6d 6f 75 6e 74 52 65 71 75 65 73  tionAmountReques
12d0: 74 4f 65 72 43 6f 64 65 63 28 29 29 0a 20 20 20  tOerCodec()).   
12e0: 20 20 20 2e 72 65 67 69 73 74 65 72 28 51 75 6f     .register(Quo
12f0: 74 65 42 79 44 65 73 74 69 6e 61 74 69 6f 6e 41  teByDestinationA
1300: 6d 6f 75 6e 74 52 65 73 70 6f 6e 73 65 2e 63 6c  mountResponse.cl
1310: 61 73 73 2c 0a 20 20 20 20 20 20 20 20 6e 65 77  ass,.        new
1320: 20 51 75 6f 74 65 42 79 44 65 73 74 69 6e 61 74   QuoteByDestinat
1330: 69 6f 6e 41 6d 6f 75 6e 74 52 65 73 70 6f 6e 73  ionAmountRespons
1340: 65 4f 65 72 43 6f 64 65 63 28 29 29 0a 20 20 20  eOerCodec()).   
1350: 20 20 20 2e 72 65 67 69 73 74 65 72 28 51 75 6f     .register(Quo
1360: 74 65 42 79 53 6f 75 72 63 65 41 6d 6f 75 6e 74  teBySourceAmount
1370: 52 65 71 75 65 73 74 2e 63 6c 61 73 73 2c 20 6e  Request.class, n
1380: 65 77 20 51 75 6f 74 65 42 79 53 6f 75 72 63 65  ew QuoteBySource
1390: 41 6d 6f 75 6e 74 52 65 71 75 65 73 74 4f 65 72  AmountRequestOer
13a0: 43 6f 64 65 63 28 29 29 0a 20 20 20 20 20 20 2e  Codec()).      .
13b0: 72 65 67 69 73 74 65 72 28 51 75 6f 74 65 42 79  register(QuoteBy
13c0: 53 6f 75 72 63 65 41 6d 6f 75 6e 74 52 65 73 70  SourceAmountResp
13d0: 6f 6e 73 65 2e 63 6c 61 73 73 2c 20 6e 65 77 20  onse.class, new 
13e0: 51 75 6f 74 65 42 79 53 6f 75 72 63 65 41 6d 6f  QuoteBySourceAmo
13f0: 75 6e 74 52 65 73 70 6f 6e 73 65 4f 65 72 43 6f  untResponseOerCo
1400: 64 65 63 28 29 29 0a 20 20 20 20 20 20 2e 72 65  dec()).      .re
1410: 67 69 73 74 65 72 28 51 75 6f 74 65 4c 69 71 75  gister(QuoteLiqu
1420: 69 64 69 74 79 52 65 71 75 65 73 74 2e 63 6c 61  idityRequest.cla
1430: 73 73 2c 20 6e 65 77 20 51 75 6f 74 65 4c 69 71  ss, new QuoteLiq
1440: 75 69 64 69 74 79 52 65 71 75 65 73 74 4f 65 72  uidityRequestOer
1450: 43 6f 64 65 63 28 29 29 0a 20 20 20 20 20 20 2e  Codec()).      .
1460: 72 65 67 69 73 74 65 72 28 51 75 6f 74 65 4c 69  register(QuoteLi
1470: 71 75 69 64 69 74 79 52 65 73 70 6f 6e 73 65 2e  quidityResponse.
1480: 63 6c 61 73 73 2c 20 6e 65 77 20 51 75 6f 74 65  class, new Quote
1490: 4c 69 71 75 69 64 69 74 79 52 65 73 70 6f 6e 73  LiquidityRespons
14a0: 65 4f 65 72 43 6f 64 65 63 28 29 29 0a 0a 20 20  eOerCodec())..  
14b0: 20 20 20 20 2f 2f 20 50 53 4b 0a 20 20 20 20 20      // PSK.     
14c0: 20 2e 72 65 67 69 73 74 65 72 28 50 73 6b 4d 65   .register(PskMe
14d0: 73 73 61 67 65 2e 63 6c 61 73 73 2c 20 6e 65 77  ssage.class, new
14e0: 20 50 73 6b 4d 65 73 73 61 67 65 42 69 6e 61 72   PskMessageBinar
14f0: 79 43 6f 64 65 63 28 29 29 3b 0a 20 20 7d 0a 0a  yCodec());.  }..
1500: 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63  .  public static
1510: 20 43 6f 64 65 63 43 6f 6e 74 65 78 74 20 69 6e   CodecContext in
1520: 74 65 72 6c 65 64 67 65 72 4a 73 6f 6e 28 29 20  terledgerJson() 
1530: 7b 0a 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20  {.    throw new 
1540: 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e  RuntimeException
1550: 28 22 4e 6f 74 20 79 65 74 20 69 6d 70 6c 65 6d  ("Not yet implem
1560: 65 6e 74 65 64 21 22 29 3b 0a 20 20 7d 0a 0a 20  ented!");.  }.. 
1570: 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 43   public static C
1580: 6f 64 65 63 43 6f 6e 74 65 78 74 20 69 6e 74 65  odecContext inte
1590: 72 6c 65 64 67 65 72 50 72 6f 74 6f 62 75 66 28  rledgerProtobuf(
15a0: 29 20 7b 0a 20 20 20 20 74 68 72 6f 77 20 6e 65  ) {.    throw ne
15b0: 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69  w RuntimeExcepti
15c0: 6f 6e 28 22 4e 6f 74 20 79 65 74 20 69 6d 70 6c  on("Not yet impl
15d0: 65 6d 65 6e 74 65 64 21 22 29 3b 0a 20 20 7d 0a  emented!");.  }.
15e0: 0a 7d 0a                                         .}.