Advertisement
Guest User

Immutable

a guest
Apr 18th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. import org.spongepowered.api.Sponge;
  2. import org.spongepowered.api.data.DataContainer;
  3. import org.spongepowered.api.data.manipulator.immutable.common.AbstractImmutableData;
  4. import org.spongepowered.api.data.value.immutable.ImmutableValue;
  5.  
  6. public class Immutable extends AbstractImmutableData<Immutable, StringData> {
  7.  
  8. private String stringStorage;
  9. {
  10. registerGetters();
  11. }
  12.  
  13. Immutable() {
  14. }
  15.  
  16. Immutable(String stringStorage) {
  17. this.stringStorage = stringStorage;
  18. }
  19.  
  20. @Override
  21. protected void registerGetters() {
  22. registerFieldGetter(StringKeys.STRING_STORAGE, this::getStringStorage);
  23. registerKeyValue(StringKeys.STRING_STORAGE, this::stringStorage);
  24. }
  25.  
  26. public String getStringStorage() {
  27. return stringStorage;
  28. }
  29.  
  30. public ImmutableValue<String> stringStorage() {
  31. return Sponge.getRegistry().getValueFactory().createValue(StringKeys.STRING_STORAGE, stringStorage).asImmutable();
  32. }
  33.  
  34. @Override
  35. public StringData asMutable() {
  36. return new StringData(stringStorage);
  37. }
  38.  
  39. @Override
  40. public int getContentVersion() {
  41. return 1;
  42. }
  43.  
  44. @Override
  45. public DataContainer toContainer() {
  46. return super.toContainer()
  47. .set(StringKeys.STRING_STORAGE.getQuery(), stringStorage);
  48. }
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement