encode method

void encode (
  1. XdrDataOutputStream stream,
  2. XdrClaimPredicate encodedClaimPredicate
)

Implementation

static void encode(
    XdrDataOutputStream stream, XdrClaimPredicate encodedClaimPredicate) {
  stream.writeInt(encodedClaimPredicate.discriminant.value);
  switch (encodedClaimPredicate.discriminant) {
    case XdrClaimPredicateType.CLAIM_PREDICATE_UNCONDITIONAL:
      break;
    case XdrClaimPredicateType.CLAIM_PREDICATE_AND:
      int pSize = encodedClaimPredicate.andPredicates.length;
      stream.writeInt(pSize);
      for (int i = 0; i < pSize; i++) {
        XdrClaimPredicate.encode(
            stream, encodedClaimPredicate.andPredicates[i]);
      }
      break;
    case XdrClaimPredicateType.CLAIM_PREDICATE_OR:
      int pSize = encodedClaimPredicate.orPredicates.length;
      stream.writeInt(pSize);
      for (int i = 0; i < pSize; i++) {
        XdrClaimPredicate.encode(
            stream, encodedClaimPredicate.orPredicates[i]);
      }
      break;
    case XdrClaimPredicateType.CLAIM_PREDICATE_NOT:
      if (encodedClaimPredicate.notPredicate != null) {
        stream.writeInt(1);
        XdrClaimPredicate.encode(stream, encodedClaimPredicate.notPredicate);
      } else {
        stream.writeInt(0);
      }
      break;
    case XdrClaimPredicateType.CLAIM_PREDICATE_BEFORE_ABSOLUTE_TIME:
      XdrInt64.encode(stream, encodedClaimPredicate.absBefore);
      break;
    case XdrClaimPredicateType.CLAIM_PREDICATE_BEFORE_RELATIVE_TIME:
      XdrInt64.encode(stream, encodedClaimPredicate.relBefore);
      break;
  }
}