public abstract class AbstractGameObjectParser<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>> extends java.lang.Object implements GameObjectParser<G,A,R>
GameObjectParsers
. This class contains the common code for reading game
objects. Subclasses can extend the parser (parseLine(String,
GameObject)
. No support for writing is present.Modifier | Constructor and Description |
---|---|
protected |
AbstractGameObjectParser(@NotNull GameObjectFactory<G,A,R> gameObjectFactory,
@NotNull ArchetypeSet<G,A,R> archetypeSet)
Creates a new instance.
|
Modifier and Type | Method and Description |
---|---|
void |
addModifiedFields(G gameObject,
@NotNull java.util.Map<java.lang.String,java.lang.String> fields)
Adds the modified fields of a
GameObject to a map. |
void |
collectTempList(@NotNull java.util.List<G> objects)
Browse first through the archetype list and attach map arches to it then
browse through the face list and try to find the pictures.
|
G |
load(@NotNull java.io.BufferedReader reader,
@Nullable java.util.Collection<G> objects)
Parse a game object from a stream.
|
G |
load(@NotNull java.io.BufferedReader reader,
@NotNull java.lang.String firstLine,
@Nullable java.util.Collection<G> objects)
Parse a game object from a stream.
|
void |
save(@NotNull java.lang.Appendable appendable,
G gameObject)
Write a game object object to a stream.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getModifiedFields
protected AbstractGameObjectParser(@NotNull @NotNull GameObjectFactory<G,A,R> gameObjectFactory, @NotNull @NotNull ArchetypeSet<G,A,R> archetypeSet)
gameObjectFactory
- the game object factory for creating new game
object instancesarchetypeSet
- the archetype set for looking up archetypes@Nullable public G load(@NotNull @NotNull java.io.BufferedReader reader, @Nullable @Nullable java.util.Collection<G> objects) throws java.io.IOException
GameObjectParser
load
in interface GameObjectParser<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
reader
- the stream to readobjects
- if non-null
, add the read game objects to this
collectionnull
if the end of the stream
was reachedjava.io.IOException
- if the stream cannot be read or if a parsing error
occurs@Nullable public G load(@NotNull @NotNull java.io.BufferedReader reader, @NotNull @NotNull java.lang.String firstLine, @Nullable @Nullable java.util.Collection<G> objects) throws java.io.IOException
GameObjectParser
load
in interface GameObjectParser<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
reader
- the stream to readfirstLine
- the first line to parse before reading from reader
objects
- if non-null
, add the read game objects to this
collectionnull
if the end of the stream
was reachedjava.io.IOException
- if the stream cannot be read or if a parsing error
occurspublic void collectTempList(@NotNull @NotNull java.util.List<G> objects)
GameObjectParser
collectTempList
in interface GameObjectParser<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
objects
- the list of game objects to collectpublic void save(@NotNull @NotNull java.lang.Appendable appendable, @NotNull G gameObject) throws java.io.IOException
GameObjectParser
save
in interface GameObjectParser<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
appendable
- the stream to write togameObject
- the game object to writejava.io.IOException
- if the stream cannot be writtenpublic void addModifiedFields(@NotNull G gameObject, @NotNull @NotNull java.util.Map<java.lang.String,java.lang.String> fields)
GameObjectParser
GameObject
to a map.addModifiedFields
in interface GameObjectParser<G extends GameObject<G,A,R>,A extends MapArchObject<A>,R extends Archetype<G,A,R>>
gameObject
- the game objectfields
- the map to update