All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gem.enum.GpiObservingMode.scala Maven / Gradle / Ivy

The newest version!
// Copyright (c) 2016-2020 Association of Universities for Research in Astronomy, Inc. (AURA)
// For license information see LICENSE or https://opensource.org/licenses/BSD-3-Clause

package gem
package enum

import cats.Eval
import cats.instances.string._
import cats.syntax.eq._
import gem.util.Enumerated
import gsp.math.MagnitudeValue

/**
 * Enumerated type for GPI ObservingMode.
 * @group Enumerations (Generated)
 */
sealed abstract class GpiObservingMode(
  val tag: String,
  val shortName: String,
  val longName: String,
  val filter: Option[GpiFilter],
  val filterIterable: Boolean,
  val apodizer: Option[GpiApodizer],
  val fpm: Option[GpiFPM],
  val lyot: Option[GpiLyot],
  val brightLimitPrism: Option[MagnitudeValue],
  val brightLimitWollaston: Option[MagnitudeValue],
  val correspondingHMode: Eval[GpiObservingMode],
  val obsolete: Boolean
) extends Product with Serializable

object GpiObservingMode {

  /** @group Constructors */ case object CORON_Y_BAND extends GpiObservingMode("CORON_Y_BAND", "Coronograph Y-band", "Coronograph Y-band", Some(GpiFilter.Y), false, Some(GpiApodizer.APOD_Y), Some(GpiFPM.FPM_Y), Some(GpiLyot.LYOT_080m12_03), Some(MagnitudeValue(50)), Some(MagnitudeValue(300)), cats.Eval.later(GpiObservingMode.unsafeFromTag("CORON_H_BAND")), false)
  /** @group Constructors */ case object CORON_J_BAND extends GpiObservingMode("CORON_J_BAND", "Coronograph J-band", "Coronograph J-band", Some(GpiFilter.J), false, Some(GpiApodizer.APOD_J), Some(GpiFPM.FPM_J), Some(GpiLyot.LYOT_080m12_04), Some(MagnitudeValue(50)), Some(MagnitudeValue(300)), cats.Eval.later(GpiObservingMode.unsafeFromTag("CORON_H_BAND")), false)
  /** @group Constructors */ case object CORON_H_BAND extends GpiObservingMode("CORON_H_BAND", "Coronograph H-band", "Coronograph H-band", Some(GpiFilter.H), false, Some(GpiApodizer.APOD_H), Some(GpiFPM.FPM_H), Some(GpiLyot.LYOT_080m12_04), Some(MagnitudeValue(50)), Some(MagnitudeValue(300)), cats.Eval.later(GpiObservingMode.unsafeFromTag("CORON_H_BAND")), false)
  /** @group Constructors */ case object CORON_K1_BAND extends GpiObservingMode("CORON_K1_BAND", "Coronograph K1-band", "Coronograph K1-band", Some(GpiFilter.K1), false, Some(GpiApodizer.APOD_K1), Some(GpiFPM.FPM_K1), Some(GpiLyot.LYOT_080m12_06_03), Some(MagnitudeValue(50)), Some(MagnitudeValue(300)), cats.Eval.later(GpiObservingMode.unsafeFromTag("CORON_H_BAND")), false)
  /** @group Constructors */ case object CORON_K2_BAND extends GpiObservingMode("CORON_K2_BAND", "Coronograph K2-band", "Coronograph K2-band", Some(GpiFilter.K2), false, Some(GpiApodizer.APOD_K2), Some(GpiFPM.FPM_K1), Some(GpiLyot.LYOT_080m12_07), Some(MagnitudeValue(50)), Some(MagnitudeValue(300)), cats.Eval.later(GpiObservingMode.unsafeFromTag("CORON_H_BAND")), false)
  /** @group Constructors */ case object H_STAR extends GpiObservingMode("H_STAR", "H_STAR", "H_STAR", Some(GpiFilter.H), false, Some(GpiApodizer.APOD_STAR), Some(GpiFPM.FPM_H), Some(GpiLyot.LYOT_080m12_03), Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("H_STAR")), true)
  /** @group Constructors */ case object H_LIWA extends GpiObservingMode("H_LIWA", "H_LIWA", "H_LIWA", Some(GpiFilter.H), false, Some(GpiApodizer.APOD_HL), Some(GpiFPM.FPM_K1), Some(GpiLyot.LYOT_080m12_04), Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("H_LIWA")), false)
  /** @group Constructors */ case object DIRECT_Y_BAND extends GpiObservingMode("DIRECT_Y_BAND", "Y direct", "Y direct", Some(GpiFilter.Y), true, Some(GpiApodizer.CLEAR), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Some(MagnitudeValue(550)), Some(MagnitudeValue(750)), cats.Eval.later(GpiObservingMode.unsafeFromTag("DIRECT_H_BAND")), false)
  /** @group Constructors */ case object DIRECT_J_BAND extends GpiObservingMode("DIRECT_J_BAND", "J direct", "J direct", Some(GpiFilter.J), true, Some(GpiApodizer.CLEAR), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Some(MagnitudeValue(550)), Some(MagnitudeValue(750)), cats.Eval.later(GpiObservingMode.unsafeFromTag("DIRECT_H_BAND")), false)
  /** @group Constructors */ case object DIRECT_H_BAND extends GpiObservingMode("DIRECT_H_BAND", "H direct", "H direct", Some(GpiFilter.H), true, Some(GpiApodizer.CLEAR), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Some(MagnitudeValue(550)), Some(MagnitudeValue(750)), cats.Eval.later(GpiObservingMode.unsafeFromTag("DIRECT_H_BAND")), false)
  /** @group Constructors */ case object DIRECT_K1_BAND extends GpiObservingMode("DIRECT_K1_BAND", "K1 direct", "K1 direct", Some(GpiFilter.K1), true, Some(GpiApodizer.CLEAR), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Some(MagnitudeValue(550)), Some(MagnitudeValue(750)), cats.Eval.later(GpiObservingMode.unsafeFromTag("DIRECT_H_BAND")), false)
  /** @group Constructors */ case object DIRECT_K2_BAND extends GpiObservingMode("DIRECT_K2_BAND", "K2 direct", "K2 direct", Some(GpiFilter.K2), true, Some(GpiApodizer.CLEAR), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Some(MagnitudeValue(550)), Some(MagnitudeValue(750)), cats.Eval.later(GpiObservingMode.unsafeFromTag("DIRECT_H_BAND")), false)
  /** @group Constructors */ case object NRM_Y extends GpiObservingMode("NRM_Y", "Non Redundant Mask Y", "Non Redundant Mask Y", Some(GpiFilter.Y), true, Some(GpiApodizer.NRM), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("NRM_H")), false)
  /** @group Constructors */ case object NRM_J extends GpiObservingMode("NRM_J", "Non Redundant Mask J", "Non Redundant Mask J", Some(GpiFilter.J), true, Some(GpiApodizer.NRM), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("NRM_H")), false)
  /** @group Constructors */ case object NRM_H extends GpiObservingMode("NRM_H", "Non Redundant Mask H", "Non Redundant Mask H", Some(GpiFilter.H), true, Some(GpiApodizer.NRM), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("NRM_H")), false)
  /** @group Constructors */ case object NRM_K1 extends GpiObservingMode("NRM_K1", "Non Redundant Mask K1", "Non Redundant Mask K1", Some(GpiFilter.K1), true, Some(GpiApodizer.NRM), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("NRM_H")), false)
  /** @group Constructors */ case object NRM_K2 extends GpiObservingMode("NRM_K2", "Non Redundant Mask K2", "Non Redundant Mask K2", Some(GpiFilter.K2), true, Some(GpiApodizer.NRM), Some(GpiFPM.SCIENCE), Some(GpiLyot.OPEN), Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("NRM_H")), false)
  /** @group Constructors */ case object DARK extends GpiObservingMode("DARK", "Dark", "Dark", Some(GpiFilter.H), false, Some(GpiApodizer.APOD_H), Some(GpiFPM.FPM_H), Some(GpiLyot.BLANK), Some(MagnitudeValue(50)), Some(MagnitudeValue(300)), cats.Eval.later(GpiObservingMode.unsafeFromTag("DARK")), false)
  /** @group Constructors */ case object UNBLOCKED_Y extends GpiObservingMode("UNBLOCKED_Y", "Y Unblocked", "Y Unblocked", Some(GpiFilter.Y), false, Some(GpiApodizer.APOD_Y), Some(GpiFPM.SCIENCE), Some(GpiLyot.LYOT_080m12_03), Some(MagnitudeValue(400)), Some(MagnitudeValue(650)), cats.Eval.later(GpiObservingMode.unsafeFromTag("UNBLOCKED_Y")), false)
  /** @group Constructors */ case object UNBLOCKED_J extends GpiObservingMode("UNBLOCKED_J", "J Unblocked", "J Unblocked", Some(GpiFilter.J), false, Some(GpiApodizer.APOD_J), Some(GpiFPM.SCIENCE), Some(GpiLyot.LYOT_080m12_04), Some(MagnitudeValue(400)), Some(MagnitudeValue(650)), cats.Eval.later(GpiObservingMode.unsafeFromTag("UNBLOCKED_J")), false)
  /** @group Constructors */ case object UNBLOCKED_H extends GpiObservingMode("UNBLOCKED_H", "H Unblocked", "H Unblocked", Some(GpiFilter.H), false, Some(GpiApodizer.APOD_H), Some(GpiFPM.SCIENCE), Some(GpiLyot.LYOT_080m12_04), Some(MagnitudeValue(400)), Some(MagnitudeValue(650)), cats.Eval.later(GpiObservingMode.unsafeFromTag("UNBLOCKED_H")), false)
  /** @group Constructors */ case object UNBLOCKED_K1 extends GpiObservingMode("UNBLOCKED_K1", "K1 Unblocked", "K1 Unblocked", Some(GpiFilter.K1), false, Some(GpiApodizer.APOD_K1), Some(GpiFPM.SCIENCE), Some(GpiLyot.LYOT_080m12_06_03), Some(MagnitudeValue(400)), Some(MagnitudeValue(650)), cats.Eval.later(GpiObservingMode.unsafeFromTag("UNBLOCKED_K1")), false)
  /** @group Constructors */ case object UNBLOCKED_K2 extends GpiObservingMode("UNBLOCKED_K2", "K2 Unblocked", "K2 Unblocked", Some(GpiFilter.K2), false, Some(GpiApodizer.APOD_K2), Some(GpiFPM.SCIENCE), Some(GpiLyot.LYOT_080m12_07), Some(MagnitudeValue(400)), Some(MagnitudeValue(650)), cats.Eval.later(GpiObservingMode.unsafeFromTag("UNBLOCKED_K2")), false)
  /** @group Constructors */ case object NONSTANDARD extends GpiObservingMode("NONSTANDARD", "Nonstandard", "Nonstandard", Option.empty[GpiFilter], false, Option.empty[GpiApodizer], Option.empty[GpiFPM], Option.empty[GpiLyot], Option.empty[MagnitudeValue], Option.empty[MagnitudeValue], cats.Eval.later(GpiObservingMode.unsafeFromTag("NONSTANDARD")), false)

  /** All members of GpiObservingMode, in canonical order. */
  val all: List[GpiObservingMode] =
    List(CORON_Y_BAND, CORON_J_BAND, CORON_H_BAND, CORON_K1_BAND, CORON_K2_BAND, H_STAR, H_LIWA, DIRECT_Y_BAND, DIRECT_J_BAND, DIRECT_H_BAND, DIRECT_K1_BAND, DIRECT_K2_BAND, NRM_Y, NRM_J, NRM_H, NRM_K1, NRM_K2, DARK, UNBLOCKED_Y, UNBLOCKED_J, UNBLOCKED_H, UNBLOCKED_K1, UNBLOCKED_K2, NONSTANDARD)

  /** Select the member of GpiObservingMode with the given tag, if any. */
  def fromTag(s: String): Option[GpiObservingMode] =
    all.find(_.tag === s)

  /** Select the member of GpiObservingMode with the given tag, throwing if absent. */
  def unsafeFromTag(s: String): GpiObservingMode =
    fromTag(s).getOrElse(throw new NoSuchElementException(s"GpiObservingMode: Invalid tag: '$s'"))

  /** @group Typeclass Instances */
  implicit val GpiObservingModeEnumerated: Enumerated[GpiObservingMode] =
    new Enumerated[GpiObservingMode] {
      def all = GpiObservingMode.all
      def tag(a: GpiObservingMode) = a.tag
      override def unsafeFromTag(s: String): GpiObservingMode =
        GpiObservingMode.unsafeFromTag(s)
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy