Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Optional;
- import org.spongepowered.api.Sponge;
- import org.spongepowered.api.data.DataContainer;
- import org.spongepowered.api.data.DataHolder;
- import org.spongepowered.api.data.DataView;
- import org.spongepowered.api.data.manipulator.mutable.common.AbstractData;
- import org.spongepowered.api.data.merge.MergeFunction;
- import org.spongepowered.api.data.value.mutable.Value;
- public class StringData extends AbstractData<StringData, Immutable> {
- private String stringStorage;
- {
- registerGettersAndSetters();
- }
- StringData() {
- }
- StringData(String stringStorage) {
- this.stringStorage = stringStorage;
- }
- @Override
- protected void registerGettersAndSetters() {
- registerFieldGetter(StringKeys.STRING_STORAGE, this::getStringStorage);
- registerFieldSetter(StringKeys.STRING_STORAGE, this::setStringStorage);
- registerKeyValue(StringKeys.STRING_STORAGE, this::stringStorage);
- }
- public String getStringStorage() {
- return stringStorage;
- }
- public void setStringStorage(String stringStorage) {
- this.stringStorage = stringStorage;
- }
- public Value<String> stringStorage() {
- return Sponge.getRegistry().getValueFactory().createValue(StringKeys.STRING_STORAGE, stringStorage);
- }
- @Override
- public Optional<StringData> fill(DataHolder dataHolder, MergeFunction overlap) {
- dataHolder.get(StringData.class).ifPresent(that -> {
- StringData data = overlap.merge(this, that);
- this.stringStorage = data.stringStorage;
- });
- return Optional.of(this);
- }
- @Override
- public Optional<StringData> from(DataContainer container) {
- return from((DataView) container);
- }
- public Optional<StringData> from(DataView container) {
- container.getObject(StringKeys.STRING_STORAGE.getQuery(), String.class).ifPresent(v -> stringStorage = v);
- return Optional.of(this);
- }
- @Override
- public StringData copy() {
- return new StringData(stringStorage);
- }
- @Override
- public Immutable asImmutable() {
- return new Immutable(stringStorage);
- }
- @Override
- public int getContentVersion() {
- return 1;
- }
- @Override
- public DataContainer toContainer() {
- return super.toContainer()
- .set(StringKeys.STRING_STORAGE.getQuery(), stringStorage);
- }
- }
Add Comment
Please, Sign In to add comment