Package org.spongepowered.api.data.value
Interface ValueContainer
- All Known Subinterfaces:
Aerial,Ageable,Agent,Ambient,Animal,Aquatic,Archetype<S,,E> AreaEffectCloud,ArmorStand,Arrow,ArrowEntity,Axolotl,Banner,Barrel,Bat,Beacon,Bed,Bee,Beehive,Bell,BlastFurnace,Blaze,BlockEntity,BlockEntityArchetype,BlockEntityInventory<T>,BlockOccupiedMinecart,BlockSnapshot,BlockState,BlockType,Boat,Boss,BrewingStand,Campfire,CarriedInventory<C>,CarrierBlockEntity,CarrierMinecart<M>,Cat,CaveSpider,Chest,ChestMinecart,Chicken,ClientPlayer,Cod,CommandBlock,CommandBlockMinecart,Comparator,ComplexLiving<T>,ComplexLivingPart<P>,Conduit,Container,CopyableDataHolder,CopyableValueContainer,Cow,CraftingGridInventory,CraftingInventory,CraftingOutput,Creature,Creeper,DamagingProjectile,DataHolder,DataHolder.Immutable<I>,DataHolder.Mutable,DataManipulator,DataManipulator.Immutable,DataManipulator.Mutable,DaylightDetector,DirectionRelativeDataHolder,DirectionRelativeDataHolder.Immutable<I>,DirectionRelativeDataHolder.Mutable,Dispenser,Dolphin,Donkey,DragonFireball,Dropper,Drowned,Egg,ElderGuardian,EmptyInventory,EnchantmentTable,EndCrystal,EnderChest,EnderDragon,EnderDragonPart,Enderman,Endermite,EnderPearl,EndGateway,EndPortal,Entity,EntityArchetype,EntitySnapshot,EntityTargetingProjectile,EquipmentInventory,EquipmentSlot,Evoker,EvokerFangs,ExperienceBottle,ExperienceOrb,Explosive,ExplosiveFireball,EyeOfEnder,FallingBlock,FilteringSlot,FireballEntity,FireworkRocket,Fish,FishingBobber,FluidStack,FluidStackSnapshot,FluidState,FluidType,Fox,FuelSlot,Furnace,FurnaceBlockEntity,FurnaceMinecart,FusedExplosive,Ghast,Giant,GlowSquid,Goat,Golem,GridInventory,Guardian,Hanging,Hoglin,Hopper,HopperMinecart,Horse,HorseLike,Hostile,Hotbar,Human,Humanoid,Husk,Illager,Illusioner,InputSlot,Inventory,Inventory2D,InventoryColumn,InventoryRow,IronGolem,Item,ItemFrame,ItemStack,ItemStackSnapshot,ItemType,Jigsaw,Jukebox,LeashKnot,Lectern,LightningBolt,Living,Llama,LlamaLike,LlamaSpit,LocalPlayer,LocatableBlock,LocatableSnapshot<T>,MagmaCube,MapInfo,Marker,Merchant,Minecart,MinecartLike,MobSpawner,Monster,Mooshroom,Mule,NameableBlockEntity,NameableCarrierBlockEntity,Ocelot,OutputSlot,PackHorse,Painting,Panda,Parrot,Patroller,PersistentInventory,Phantom,Pig,Piglin,PiglinBrute,PiglinLike,Pillager,Piston,Player,PlayerInventory,PolarBear,Potion,PrimaryPlayerInventory,PrimedTNT,Projectile,Pufferfish,Rabbit,Raider,Ranger,Ravager,RemotePlayer,Salmon,SchoolingFish,SculkSensor,SerializableDataHolder,SerializableDataHolder.Immutable<I>,SerializableDataHolder.Mutable,ServerLocation,ServerPlayer,Sheep,Shulker,ShulkerBox,ShulkerBullet,SidedSlot,Sign,Silverfish,Sittable,Skeleton,SkeletonHorse,SkeletonLike,Skull,Slime,Slot,SmallFireball,Smoker,Snowball,SnowGolem,Spawner,SpawnerMinecart,SpectralArrow,Spellcaster,Spider,Squid,State<S>,Stray,Strider,StructureBlock,TameableAnimal,TameableHorse,TNTMinecart,Trader,TraderLlama,TrappedChest,Trident,TropicalFish,Turtle,User,UserInventory,Vehicle,Vex,ViewableInventory,Villager,Vindicator,WanderingTrader,WeatherEffect,Witch,Wither,WitherSkeleton,WitherSkull,Wolf,Zoglin,Zombie,ZombieHorse,ZombieLike,ZombieVillager,ZombifiedPiglin
public interface ValueContainer
A value holder is a holder of a particular set of
Values. While
there exists a DataHolder and DataManipulator,
the emphasis of ValueContainer is that it only contains "data". It
is not known whether a ValueHolder is mutable or immutable.
Being that a ValueHolder is literally a container of
Values, it itself does not contain the underlying values of
data. A ValueContainer may not always be parented by another
ValueContainer, such as the case for DataManipulators and
DataHolder.Mutables, it is recommended to knowingly understand the
fundamental differences between them.
-
Method Summary
Modifier and TypeMethodDescription<E> Optional<E>default OptionalDoubledefault OptionalIntgetKeys()Gets all applicableKeys for thisValueContainer.default OptionalLongdefault <E> EAttempts to get the underlying value if available.default <E> @Nullable EAttempts to get the underlying value if available and supported.Set<Value.Immutable<?>>Gets all applicableValues associated with thisValueContainer.default <E> Edefault <E,V extends Value<E>>
VrequireValue(Key<V> key) booleanChecks if the givenKeyis supported by thisValueContainer.default booleanChecks if the providedValueis supported.
-
Method Details
-
get
Attempts to get the underlying value backed by aValuelinked to the providedKey. If theKeyis not supported,Optional.empty()is returned. It is important to check for support of aKeyby either callingsupports(Value)orsupports(Key).- Type Parameters:
E- The type of value- Parameters:
key- The key to retrieve the value for- Returns:
- The value, if available
-
getInt
Attempts to get the underlying int value backed by aValuelinked to the providedKey. If theKeyis not supported,Optional.empty()is returned. It is important to check for support of aKeyby either callingsupports(Value)orsupports(Key).- Parameters:
key- The key to retrieve the value for- Returns:
- The value, if available
-
getDouble
Attempts to get the underlying double value backed by aValuelinked to the providedKey. If theKeyis not supported,Optional.empty()is returned. It is important to check for support of aKeyby either callingsupports(Value)orsupports(Key).- Parameters:
key- The key to retrieve the value for- Returns:
- The value, if available
-
getLong
Attempts to get the underlying long value backed by aValuelinked to the providedKey. If theKeyis not supported,Optional.empty()is returned. It is important to check for support of aKeyby either callingsupports(Value)orsupports(Key).- Parameters:
key- The key to retrieve the value for- Returns:
- The value, if available
-
require
Attempts to get the underlying value backed by aValuelinked to the providedKey.If the
Keyis not supported or available,NoSuchElementExceptionwill be thrown.- Type Parameters:
E- The type of value- Parameters:
key- The key- Returns:
- The value
- Throws:
NoSuchElementException- If the value is not supported or present
-
getOrNull
Attempts to get the underlying value if available and supported. If theValueis not supported whatsoever by thisValueContainer, an exception is thrown. -
getOrElse
Attempts to get the underlying value if available. If the value is not set, the givendefaultValueis returned, if theValueis even supported.- Type Parameters:
E- The type of value- Parameters:
key- The key backing theValuedefaultValue- The value to default to if not set- Returns:
- The value, or default if not set
-
getValue
- Type Parameters:
E- The type of the return typeV- The type of value- Parameters:
key- The key linked to theValue- Returns:
- The value, if available
-
requireValue
Attempts to get the underlying value backed by aValuelinked to the providedKey.If the
Keyis not supported or available,NoSuchElementExceptionwill be thrown.- Type Parameters:
E- The type of element wrapped by the valueV- The type of value- Parameters:
key- The key- Returns:
- The value
- Throws:
NoSuchElementException- If the value is not supported or present
-
supports
Checks if the givenKeyis supported by thisValueContainer.- Parameters:
key- The key to check- Returns:
- True if the key and value backed by the key is supported
-
supports
Checks if the providedValueis supported.- Parameters:
value- The base value to check- Returns:
- True if the base value is supported
-
getKeys
Gets all applicableKeys for thisValueContainer. Changes can not be made to the set to alter theValueContainer, nor can theValues be changed with the providedImmutableSet.- Returns:
- An immutable set of known
Keys
-
getValues
Set<Value.Immutable<?>> getValues()Gets all applicableValues associated with thisValueContainer. As the data backed by the values are copied, any modifications to theValues will not be reflected onto thisValueContainer.- Returns:
- An immutable set of copied values
-