Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package com.demkom58.aenergy.data;
  2.  
  3. import org.spongepowered.api.Sponge;
  4. import org.spongepowered.api.data.DataContainer;
  5. import org.spongepowered.api.data.DataHolder;
  6. import org.spongepowered.api.data.DataView;
  7. import org.spongepowered.api.data.manipulator.mutable.common.AbstractData;
  8. import org.spongepowered.api.data.merge.MergeFunction;
  9. import org.spongepowered.api.data.value.mutable.Value;
  10.  
  11. import java.util.Optional;
  12.  
  13. public class AEnergyData extends AbstractData<AEnergyData, ImmutableAEnergyData> {
  14.     private String name;
  15.     private String id;
  16.  
  17.     AEnergyData(String name, String id) {
  18.         this.name = name;
  19.         this.id = id;
  20.         registerGettersAndSetters();
  21.     }
  22.  
  23.     @Override
  24.     protected void registerGettersAndSetters() {
  25.         registerFieldGetter(AEnergyDataKeys.STANDARD_ID, () -> this.id);
  26.         registerFieldGetter(AEnergyDataKeys.STANDARD_NAME, () -> this.name);
  27.         registerFieldSetter(AEnergyDataKeys.STANDARD_ID, id -> this.id = id);
  28.         registerFieldSetter(AEnergyDataKeys.STANDARD_NAME, name -> this.name = name);
  29.         registerKeyValue(AEnergyDataKeys.STANDARD_ID, this::id);
  30.         registerKeyValue(AEnergyDataKeys.STANDARD_NAME, this::name);
  31.     }
  32.  
  33.     public Value<String> name() {
  34.         return Sponge.getRegistry().getValueFactory().createValue(AEnergyDataKeys.STANDARD_NAME, name);
  35.     }
  36.  
  37.     public Value<String> id() {
  38.         return Sponge.getRegistry().getValueFactory().createValue(AEnergyDataKeys.STANDARD_ID, id);
  39.     }
  40.  
  41.     @Override
  42.     public Optional<AEnergyData> fill(DataHolder dataHolder, MergeFunction overlap) {
  43.         Optional<AEnergyData> otherData_ = dataHolder.get(AEnergyData.class);
  44.         if (otherData_.isPresent()) {
  45.             AEnergyData otherData = otherData_.get();
  46.             AEnergyData finalData = overlap.merge(this, otherData);
  47.             this.name = finalData.name;
  48.             this.id = finalData.id;
  49.         }
  50.         return Optional.of(this);
  51.     }
  52.  
  53.     @Override
  54.     public Optional<AEnergyData> from(DataContainer container) {
  55.         return from((DataView) container);
  56.     }
  57.  
  58.     public Optional<AEnergyData> from(DataView view) {
  59.         if (view.contains(AEnergyDataKeys.STANDARD_ID.getQuery()) && view.contains(AEnergyDataKeys.STANDARD_NAME.getQuery())) {
  60.             this.id = view.getString(AEnergyDataKeys.STANDARD_ID.getQuery()).get();
  61.             this.name = view.getString(AEnergyDataKeys.STANDARD_NAME.getQuery()).get();
  62.             return Optional.of(this);
  63.         } else {
  64.             return Optional.empty();
  65.         }
  66.     }
  67.  
  68.     @Override
  69.     public AEnergyData copy() {
  70.         return new AEnergyData(this.name, this.id);
  71.     }
  72.  
  73.     @Override
  74.     public ImmutableAEnergyData asImmutable() {
  75.         return new ImmutableAEnergyData(this.name, this.id);
  76.     }
  77.  
  78.     @Override
  79.     public int getContentVersion() {
  80.         return 1;
  81.     }
  82.  
  83.     @Override
  84.     public DataContainer toContainer() {
  85.         return super.toContainer()
  86.                 .set(AEnergyDataKeys.STANDARD_NAME.getQuery(), this.name)
  87.                 .set(AEnergyDataKeys.STANDARD_ID.getQuery(), this.id);
  88.     }
  89. }