Package org.spongepowered.api.state
Interface State<S extends State<S>>
-
- All Superinterfaces:
CopyableDataHolder
,DataHolder
,DataHolder.Immutable<S>
,DataSerializable
,SerializableDataHolder
,SerializableDataHolder.Immutable<S>
,ValueContainer
- All Known Subinterfaces:
BlockState
,FluidState
public interface State<S extends State<S>> extends SerializableDataHolder.Immutable<S>
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
State.Builder<S extends State<S>,B extends State.Builder<S,B>>
-
Nested classes/interfaces inherited from interface org.spongepowered.api.data.DataHolder
DataHolder.Immutable<I extends DataHolder.Immutable<I>>, DataHolder.Mutable
-
Nested classes/interfaces inherited from interface org.spongepowered.api.data.SerializableDataHolder
SerializableDataHolder.Immutable<I extends SerializableDataHolder.Immutable<I>>, SerializableDataHolder.Mutable
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default <T extends java.lang.Comparable<T>>
java.util.Optional<S>cycleStateProperty(java.util.function.Supplier<? extends StateProperty<T>> stateProperty)
Cycles to the next possible value of theStateProperty
and returns the newState
.<T extends java.lang.Comparable<T>>
java.util.Optional<S>cycleStateProperty(StateProperty<T> stateProperty)
Cycles to the next possible value of theStateProperty
and returns the newState
.default <T extends Cycleable<T>>
java.util.Optional<S>cycleValue(java.util.function.Supplier<? extends Key<? extends Value<T>>> key)
<T extends Cycleable<T>>
java.util.Optional<S>cycleValue(Key<? extends Value<T>> key)
java.util.Optional<StateProperty<?>>
findStateProperty(java.lang.String name)
java.util.Collection<StateProperty<?>>
stateProperties()
default <T extends java.lang.Comparable<T>>
java.util.Optional<T>stateProperty(java.util.function.Supplier<? extends StateProperty<T>> stateProperty)
Gets theComparable
value for the specificStateProperty
such that if theState
does not support theStateProperty
,Optional.empty()
is returned.<T extends java.lang.Comparable<T>>
java.util.Optional<T>stateProperty(StateProperty<T> stateProperty)
Gets theComparable
value for the specificStateProperty
such that if theState
does not support theStateProperty
,Optional.empty()
is returned.java.util.Map<StateProperty<?>,?>
statePropertyMap()
Gets an immutable or unmodifiableMap
of the knownStateProperty
s to their current values for thisState
.java.util.Collection<?>
statePropertyValues()
java.lang.String
toString()
TheString
representation of thisState
can be considered to be equal to the representation of this state as a serialized form.default <T extends java.lang.Comparable<T>,V extends T>
java.util.Optional<S>withStateProperty(java.util.function.Supplier<? extends StateProperty<T>> stateProperty, V value)
Gets theState
with the appropriate value for the givenStateProperty
.<T extends java.lang.Comparable<T>,V extends T>
java.util.Optional<S>withStateProperty(StateProperty<T> stateProperty, V value)
Gets theState
with the appropriate value for the givenStateProperty
.-
Methods inherited from interface org.spongepowered.api.data.DataHolder.Immutable
mergeWith, mergeWith, transform, transform, with, with, with, without, without, without
-
Methods inherited from interface org.spongepowered.api.data.persistence.DataSerializable
contentVersion, toContainer
-
Methods inherited from interface org.spongepowered.api.data.SerializableDataHolder
validateRawData
-
Methods inherited from interface org.spongepowered.api.data.SerializableDataHolder.Immutable
copy, withRawData
-
-
-
-
Method Detail
-
stateProperty
<T extends java.lang.Comparable<T>> java.util.Optional<T> stateProperty(StateProperty<T> stateProperty)
Gets theComparable
value for the specificStateProperty
such that if theState
does not support theStateProperty
,Optional.empty()
is returned.- Type Parameters:
T
- The generic type of state property- Parameters:
stateProperty
- The state property- Returns:
- The comparable value, if available and compatible
-
stateProperty
default <T extends java.lang.Comparable<T>> java.util.Optional<T> stateProperty(java.util.function.Supplier<? extends StateProperty<T>> stateProperty)
Gets theComparable
value for the specificStateProperty
such that if theState
does not support theStateProperty
,Optional.empty()
is returned.- Type Parameters:
T
- The generic type of state property- Parameters:
stateProperty
- The state property- Returns:
- The comparable value, if available and compatible
-
findStateProperty
java.util.Optional<StateProperty<?>> findStateProperty(java.lang.String name)
Attempts to retrieve theStateProperty
instance associated with thisState
sStateContainer
by name. If there is noStateProperty
available,Optional.empty()
is returned.- Parameters:
name
- The state property name- Returns:
- The state property, if available
-
withStateProperty
<T extends java.lang.Comparable<T>,V extends T> java.util.Optional<S> withStateProperty(StateProperty<T> stateProperty, V value)
Gets theState
with the appropriate value for the givenStateProperty
. If theStateProperty
is not supported,Optional.empty()
is returned. If the object is not either an instance contained inStateProperty.possibleValues()
or an instanceObject.toString()
,Optional.empty()
may be returned.- Type Parameters:
T
- The type of cycleable valueV
- The type of extended value- Parameters:
stateProperty
- The state propertyvalue
- The value- Returns:
- The state, if the state property and value are supported
-
withStateProperty
default <T extends java.lang.Comparable<T>,V extends T> java.util.Optional<S> withStateProperty(java.util.function.Supplier<? extends StateProperty<T>> stateProperty, V value)
Gets theState
with the appropriate value for the givenStateProperty
. If theStateProperty
is not supported,Optional.empty()
is returned. If the object is not either an instance contained inStateProperty.possibleValues()
or an instanceObject.toString()
,Optional.empty()
may be returned.- Type Parameters:
T
- The type of cycleable valueV
- The type of extended value- Parameters:
stateProperty
- The state propertyvalue
- The value- Returns:
- The state, if the state property and value are supported
-
cycleStateProperty
<T extends java.lang.Comparable<T>> java.util.Optional<S> cycleStateProperty(StateProperty<T> stateProperty)
Cycles to the next possible value of theStateProperty
and returns the newState
. ReturnsOptional.empty()
if the state property or the value isn't supported.- Type Parameters:
T
- The type of cycleable value- Parameters:
stateProperty
- The state property- Returns:
- The cycled state if successful
-
cycleStateProperty
default <T extends java.lang.Comparable<T>> java.util.Optional<S> cycleStateProperty(java.util.function.Supplier<? extends StateProperty<T>> stateProperty)
Cycles to the next possible value of theStateProperty
and returns the newState
. ReturnsOptional.empty()
if the state property or the value isn't supported.- Type Parameters:
T
- The type of cycleable value- Parameters:
stateProperty
- The state property- Returns:
- The cycled state if successful
-
cycleValue
<T extends Cycleable<T>> java.util.Optional<S> cycleValue(Key<? extends Value<T>> key)
Cycles to the next possible value of theKey
and returns the newState
. ReturnsOptional.empty()
if the key or the value isn't supported.- Type Parameters:
T
- The type of cycleable value- Parameters:
key
- The key- Returns:
- The cycled state if successful
-
cycleValue
default <T extends Cycleable<T>> java.util.Optional<S> cycleValue(java.util.function.Supplier<? extends Key<? extends Value<T>>> key)
Cycles to the next possible value of theKey
and returns the newState
. ReturnsOptional.empty()
if the key or the value isn't supported.- Type Parameters:
T
- The type of cycleable value- Parameters:
key
- The key- Returns:
- The cycled state if successful
-
stateProperties
java.util.Collection<StateProperty<?>> stateProperties()
- Returns:
- An immutable collection of all applicable state properties
-
statePropertyValues
java.util.Collection<?> statePropertyValues()
- Returns:
- An immutable collection of all the values for all applicable properties
-
statePropertyMap
java.util.Map<StateProperty<?>,?> statePropertyMap()
Gets an immutable or unmodifiableMap
of the knownStateProperty
s to their current values for thisState
.- Returns:
- The immutable map of state properties to their values representing this state
-
toString
java.lang.String toString()
TheString
representation of thisState
can be considered to be equal to the representation of this state as a serialized form.- Overrides:
toString
in classjava.lang.Object
- Returns:
- The serialized string
-
-