gt:             if (cache == null) {
context: package fr.guiguilechat.jcelechat.model.sde.types.module;
  
  import java.io.InputStreamReader;
  import java.util.Collections;
  import java.util.LinkedHashMap;
  import java.util.Map;
  import fr.guiguilechat.jcelechat.model.sde.Attribute;
  import fr.guiguilechat.jcelechat.model.sde.IMetaCategory;
  import fr.guiguilechat.jcelechat.model.sde.IMetaGroup;
  import fr.guiguilechat.jcelechat.model.sde.annotations.DefaultDoubleValue;
  import fr.guiguilechat.jcelechat.model.sde.annotations.DefaultIntValue;
  import fr.guiguilechat.jcelechat.model.sde.annotations.HighIsGood;
  import fr.guiguilechat.jcelechat.model.sde.annotations.Stackable;
  import fr.guiguilechat.jcelechat.model.sde.types.Module;
  import org.yaml.snakeyaml.Yaml;
  
  public class RemoteHullRepairer
      extends Module
  {
      /**
       * The amount of charge used from the capacitor for a module activation.
       */
      @HighIsGood(false)
      @Stackable(true)
      @DefaultDoubleValue(0.0)
      public double CapacitorNeed;
      /**
       * CPU need of module
       */
      @HighIsGood(false)
      @Stackable(true)
      @DefaultDoubleValue(0.0)
      public double Cpu;
      /**
       * Length of activation time.
       */
      @HighIsGood(false)
      @Stackable(true)
      @DefaultDoubleValue(0.0)
      public double Duration;
      /**
       * distance from maximum range at which effectiveness has fallen by half
       */
      @HighIsGood(true)
      @Stackable(false)
      @DefaultIntValue(0)
      public int FalloffEffectiveness;
      /**
       * 
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultDoubleValue(0.0)
      public double HeatAbsorbtionRateModifier;
      /**
       * 
       */
      @HighIsGood(false)
      @Stackable(true)
      @DefaultDoubleValue(0.0)
      public double HeatDamage;
      /**
       * Distance below which range does not affect the to-hit equation.
       */
      @HighIsGood(true)
      @Stackable(false)
      @DefaultIntValue(0)
      public int MaxRange;
      /**
       * Authoring has been moved to FSD
       * The ranking of the module within its tech level
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(0)
      public int MetaLevel;
      /**
       * 
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultDoubleValue(0.0)
      public double OverloadSelfDurationBonus;
      /**
       * current power need
       */
      @HighIsGood(false)
      @Stackable(true)
      @DefaultIntValue(0)
      public int Power;
      /**
       * The type ID of the skill that is required.
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(0)
      public int RequiredSkill1;
      /**
       * Required skill level for skill 1
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(0)
      public int RequiredSkill1Level;
      /**
       * The type ID of the skill that is required.
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(0)
      public int RequiredSkill2;
      /**
       * Required skill level for skill 2
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(0)
      public int RequiredSkill2Level;
      /**
       * 
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(0)
      public int RequiredThermoDynamicsSkill;
      /**
       * An amount to modify the structural damage by.
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(0)
      public int StructureDamageAmount;
      /**
       * Authoring has been moved to FSD
       * Tech level of an item
       */
      @HighIsGood(true)
      @Stackable(true)
      @DefaultIntValue(1)
      public int TechLevel;
      public static final RemoteHullRepairer.MetaGroup METAGROUP = new RemoteHullRepairer.MetaGroup();
  
      @Override
      public Number attribute(Attribute attribute) {
          switch (attribute.getId()) {
              case  6 :
              {
                  return CapacitorNeed;
              }
              case  50 :
              {
                  return Cpu;
              }
              case  73 :
              {
                  return Duration;
              }
              case  2044 :
              {
                  return FalloffEffectiveness;
              }
              case  1180 :
              {
                  return HeatAbsorbtionRateModifier;
              }
              case  1211 :
              {
                  return HeatDamage;
              }
              case  54 :
              {
                  return MaxRange;
              }
              case  633 :
              {
                  return MetaLevel;
              }
              case  1206 :
              {
                  return OverloadSelfDurationBonus;
              }
              case  30 :
              {
                  return Power;
              }
              case  182 :
              {
                  return RequiredSkill1;
              }
              case  277 :
              {
                  return RequiredSkill1Level;
              }
              case  183 :
              {
                  return RequiredSkill2;
              }
              case  278 :
              {
                  return RequiredSkill2Level;
              }
              case  1212 :
              {
                  return RequiredThermoDynamicsSkill;
              }
              case  83 :
              {
                  return StructureDamageAmount;
              }
              case  422 :
              {
                  return TechLevel;
              }
              default:
              {
                  return super.attribute((attribute));
              }
          }
      }
  
      @Override
      public IMetaGroup<RemoteHullRepairer> getGroup() {
          return METAGROUP;
      }
  
      public static class MetaGroup
          implements IMetaGroup<RemoteHullRepairer>
      {
          public static final String RESOURCE_PATH = "SDE/types/module/RemoteHullRepairer.yaml";
          private Map<String, RemoteHullRepairer> cache = (null);
  
          @Override
          public IMetaCategory<? super RemoteHullRepairer> category() {
              return Module.METACAT;
          }
  
          @Override
          public int getGroupId() {
              return  585;
          }
  
          @Override
          public String getName() {
              return "RemoteHullRepairer";
          }
  
          @Override
          public synchronized Map<String, RemoteHullRepairer> load() {
  