Package ch.njol.yggdrasil
Class Fields
java.lang.Object
ch.njol.yggdrasil.Fields
- All Implemented Interfaces:
Iterable<Fields.FieldContext>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
Holds a field's name and value, and throwsStreamCorruptedException
s if primitives or objects are used incorrectly. -
Constructor Summary
ConstructorsConstructorDescriptionFields()
Creates an empty Fields object.Creates a fields object and initialises it with all non-transient and non-static fields of the given class and its superclasses.Creates a fields object and initialises it with all non-transient and non-static fields of the given object.Creates a fields object and initialises it with all non-transient and non-static fields of the given object. -
Method Summary
Modifier and TypeMethodDescriptionboolean
<T> T
getAndRemoveObject
(String field, Class<T> expectedType) <T> T
getAndRemovePrimitive
(String field, Class<T> expectedType) static Collection
<Field> Gets all serializable fields of the provided class, including superclasses.@Nullable Object
<T> T
getPrimitive
(String fieldID) <T> T
getPrimitive
(String fieldID, Class<T> expectedType) boolean
iterator()
void
void
putPrimitive
(String fieldID, Object value) boolean
removeField
(String fieldID) Removes a field and its value from this Fields object.void
Sets all fields of the given Object to the values stored in this Fields object.void
Deprecated, for removal: This API element is subject to removal in a future version.int
size()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
Fields
public Fields()Creates an empty Fields object. -
Fields
-
Fields
Creates a fields object and initialises it with all non-transient and non-static fields of the given class and its superclasses.- Parameters:
type
- Some class- Throws:
NotSerializableException
- If a field occurs more than once (i.e. if a class has a field with the same name as a field in one of its superclasses)
-
Fields
Creates a fields object and initialises it with all non-transient and non-static fields of the given object.- Parameters:
object
- Some object- Throws:
NotSerializableException
- If a field occurs more than once (i.e. if a class has a field with the same name as a field in one of its superclasses)
-
Fields
public Fields(Object object, @Nullable @Nullable Yggdrasil yggdrasil) throws NotSerializableException Creates a fields object and initialises it with all non-transient and non-static fields of the given object.- Parameters:
object
- Some object- Throws:
NotSerializableException
- If a field occurs more than once (i.e. if a class has a field with the same name as a field in one of its superclasses)
-
-
Method Details
-
getFields
Gets all serializable fields of the provided class, including superclasses.- Parameters:
type
- The class to get the fields of- Returns:
- All non-static and non-transient fields of the given class and its superclasses
- Throws:
NotSerializableException
- If a field occurs more than once (i.e. if a class has a field with the same name as a field in one of its superclasses)
-
setFields
Sets all fields of the given Object to the values stored in this Fields object.- Parameters:
object
- The object whose fields should be set- Throws:
YggdrasilException
- If this was called on a Fields object not created by Yggdrasil itselfStreamCorruptedException
NotSerializableException
-
setFields
@Deprecated(since="2.3.0", forRemoval=true) public void setFields(Object object, Yggdrasil yggdrasil) throws StreamCorruptedException, NotSerializableException Deprecated, for removal: This API element is subject to removal in a future version. -
size
public int size()- Returns:
- The number of fields defined
-
putObject
-
putPrimitive
-
contains
- Parameters:
fieldID
- A field's id- Returns:
- Whether the field is defined
-
hasField
-
getObject
- Throws:
StreamCorruptedException
-
getObject
@Nullable public <T> T getObject(String fieldID, Class<T> expectedType) throws StreamCorruptedException - Throws:
StreamCorruptedException
-
getPrimitive
- Throws:
StreamCorruptedException
-
getPrimitive
- Throws:
StreamCorruptedException
-
getAndRemoveObject
@Nullable public <T> T getAndRemoveObject(String field, Class<T> expectedType) throws StreamCorruptedException - Throws:
StreamCorruptedException
-
getAndRemovePrimitive
public <T> T getAndRemovePrimitive(String field, Class<T> expectedType) throws StreamCorruptedException - Throws:
StreamCorruptedException
-
removeField
Removes a field and its value from this Fields object.- Parameters:
fieldID
- The id of the field to remove- Returns:
- Whether a field with the given name was actually defined
-
iterator
- Specified by:
iterator
in interfaceIterable<Fields.FieldContext>
-