Skip to content

Instantly share code, notes, and snippets.

@SocraticPhoenix
Created November 30, 2015 00:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SocraticPhoenix/6055eac0cbc891bb5d2c to your computer and use it in GitHub Desktop.
Save SocraticPhoenix/6055eac0cbc891bb5d2c to your computer and use it in GitHub Desktop.
package com.gmail.socraticphoenix.sponge.star.data;
import com.gmail.socraticphoenix.plasma.file.cif.cifc.CIFCConfiguration;
import com.gmail.socraticphoenix.plasma.file.cif.cifc.io.CIFCReader;
import com.gmail.socraticphoenix.plasma.file.cif.io.CIFException;
import org.spongepowered.api.data.DataHolder;
import org.spongepowered.api.data.DataView;
import org.spongepowered.api.data.manipulator.DataManipulatorBuilder;
import org.spongepowered.api.service.persistence.InvalidDataException;
import java.util.Optional;
public class StarDataManipulatorBuilder implements DataManipulatorBuilder<StarData, ImmutableStarData> {
@Override
public StarData create() {
return new StarData(new CIFCConfiguration());
}
@Override
public Optional<StarData> createFrom(DataHolder dataHolder) {
return dataHolder.getOrCreate(StarData.class);
}
@Override
public Optional<StarData> build(DataView container) throws InvalidDataException {
try {
return Optional.of(new StarData(CIFCReader.read(container.getString(StarKeys.STAR_DATA.getQuery()).orElse(""))));
} catch (CIFException e) {
throw new InvalidDataException("CIFC Data was invalid: ".concat(e.toString()));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment