getAbstractWarden static method

AbstractWarden getAbstractWarden(
  1. WardenType localWardenType,
  2. WardenType remoteWardenType
)

Implementation

static AbstractWarden getAbstractWarden(
    WardenType localWardenType,
    WardenType remoteWardenType) {
  AbstractWarden abstractWarden;
  switch (localWardenType) {
    case WardenType.ADMIN:
      switch (remoteWardenType) {
        case WardenType.ADMIN:
          abstractWarden = LocalAdminRemoteAdminWarden();
          return abstractWarden;
        case WardenType.USER:
          throw IllegalStateException("Cannot send from User to Admin");
        case WardenType.WRITE_SERVER:
          abstractWarden = LocalAdminRemoteWriteServerWarden();
          return abstractWarden;
        case WardenType.READ_SERVER:
          throw IllegalStateException(
              "Cannot send from Read Server to Admin");
        case WardenType.NULL:
          throw IllegalStateException(
              "NULL is invalid type");
      }
    case WardenType.USER:
      switch (remoteWardenType) {
        case WardenType.ADMIN:
          throw IllegalStateException("Cannot send from Admin to User");
        case WardenType.USER:
          abstractWarden = LocalUserRemoteUserWarden();
          return abstractWarden;
        case WardenType.WRITE_SERVER:
          abstractWarden = LocalUserRemoteReadServerWarden();
          return abstractWarden;
        case WardenType.READ_SERVER:
          abstractWarden = LocalUserRemoteReadServerWarden();
          return abstractWarden;
        case WardenType.NULL:
          throw IllegalStateException(
              "NULL is invalid type");
      }
    case WardenType.WRITE_SERVER:
      switch (remoteWardenType) {
        case WardenType.ADMIN:
          abstractWarden = LocalWriteServerRemoteAdminWarden();
          return abstractWarden;
        case WardenType.USER:
          abstractWarden = LocalWriteServerRemoteUserWarden();
          return abstractWarden;
        case WardenType.WRITE_SERVER:
          abstractWarden = LocalWriteServerRemoteWriteServerWarden();
          return abstractWarden;
        case WardenType.READ_SERVER:
          abstractWarden = LocalWriteServerRemoteReadServerWarden();
          return abstractWarden;
        case WardenType.NULL:
          throw IllegalStateException(
              "NULL is invalid type");
      }
    case WardenType.READ_SERVER:
      switch (remoteWardenType) {
        case WardenType.ADMIN:
          throw IllegalStateException(
              "Cannot send from Admin to Read Server");
        case WardenType.USER:
          abstractWarden = LocalReadServerRemoteUserWarden();
          return abstractWarden;
        case WardenType.WRITE_SERVER:
          abstractWarden = LocalReadServerRemoteWriteServerWarden();
          return abstractWarden;
        case WardenType.READ_SERVER:
          throw IllegalStateException(
              "Cannot send from Read Server to Read Server");
        case WardenType.NULL:
          throw IllegalStateException(
              "NULL is invalid type");
      }
    case WardenType.NULL:
      throw IllegalStateException(
          "NULL is invalid type");
  }
}