Gridarta Editor
TestParser.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.model.artifact;
21 
22 import java.io.BufferedReader;
23 import java.io.File;
24 import java.io.IOException;
25 import java.io.Reader;
26 import java.io.StringReader;
49 import org.jetbrains.annotations.NotNull;
50 
55 public class TestParser {
56 
60  @NotNull
62 
66  @NotNull
68 
72  @NotNull
74 
78  @NotNull
80 
84  @NotNull
86 
90  public TestParser() {
91  this(new TestErrorView());
92  }
93 
98  public TestParser(@NotNull final TestErrorView errorView) {
99  final ResourceIcons resourceIcons = new ResourceIcons();
100  final File file = new File("*string*");
101  errorViewCollector = new ErrorViewCollector(errorView, file);
102  final FaceObjects faceObjects = new TestFaceObjects();
103  faceObjectProviders = new FaceObjectProviders(0, faceObjects, resourceIcons);
106  archetypeSet = new DefaultArchetypeSet<>(archetypeFactory, null);
107  final TestArchetypeBuilder archetypeBuilder = new TestArchetypeBuilder(gameObjectFactory);
109  artifactParser = new ArtifactParser<>(archetypeSet, errorView, archetypeParser);
110  }
111 
118  public void addArchetype(@NotNull final String archetypeName, @NotNull final String... attributes) throws DuplicateArchetypeException {
119  final TestArchetype baseArchetype = new TestDefaultArchetype(archetypeName, faceObjectProviders, animationObjects);
120  final StringBuilder objectText = new StringBuilder();
121  for (final String attribute : attributes) {
122  objectText.append(attribute);
123  objectText.append('\n');
124  }
125  baseArchetype.setObjectText(objectText.toString());
126  archetypeSet.addArchetype(baseArchetype);
127  }
128 
134  public void parseArtifacts(@NotNull final String artifacts) throws IOException {
135  final Reader reader = new StringReader(artifacts);
136  try (BufferedReader bufferedReader = new BufferedReader(reader)) {
137  artifactParser.loadArtifact(bufferedReader, errorViewCollector, "", "panel", "folder");
138  }
139  }
140 
147  @NotNull
149  return archetypeSet.getArchetype(archetypeName);
150  }
151 
156  public int getArchetypeCount() {
157  return archetypeSet.getArchetypeCount();
158  }
159 
160 }
net.sf.gridarta.model.archetype.TestArchetype
An Archetype implementation for testing purposes.
Definition: TestArchetype.java:30
net.sf.gridarta.model.archetype.TestDefaultArchetype
An Archetype implementation for testing purposes.
Definition: TestDefaultArchetype.java:32
net.sf.gridarta
Base package of all Gridarta classes.
net.sf.gridarta.model.archetype.UndefinedArchetypeException
Exception thrown if an Archetype does not exist.
Definition: UndefinedArchetypeException.java:28
net.sf.gridarta.model.io.AbstractArchetypeParser
Abstract base implementation of ArchetypeParser.
Definition: AbstractArchetypeParser.java:47
net.sf.gridarta.model.anim.AnimationObjects
AnimationObjects is a container for AnimationObjects.
Definition: AnimationObjects.java:30
net.sf.gridarta.model.artifact.TestParser.artifactParser
final ArtifactParser< TestGameObject, TestMapArchObject, TestArchetype > artifactParser
The ArtifactParser instance.
Definition: TestParser.java:85
net.sf.gridarta.model.gameobject.TestGameObject
A GameObject implementation for testing purposes.
Definition: TestGameObject.java:34
net.sf
net.sf.gridarta.model.artifact.ArtifactParser
Parser for artifact definitions.
Definition: ArtifactParser.java:52
net.sf.gridarta.model.archetype
Definition: AbstractArchetype.java:20
net.sf.gridarta.model.face.FaceObjectProviders
Provider for faces of GameObjects and Archetypes.
Definition: FaceObjectProviders.java:46
net.sf.gridarta.model.anim.TestAnimationObjects
An AnimationObjects for regression tests.
Definition: TestAnimationObjects.java:26
net.sf.gridarta.model.artifact.TestParser.getArchetype
Archetype< TestGameObject, TestMapArchObject, TestArchetype > getArchetype(@NotNull final String archetypeName)
Returns an Archetype by name.
Definition: TestParser.java:148
net.sf.gridarta.model.artifact.TestParser.animationObjects
final AnimationObjects animationObjects
The AnimationObjects instance.
Definition: TestParser.java:73
net.sf.gridarta.model.artifact.TestParser.faceObjectProviders
final FaceObjectProviders faceObjectProviders
The FaceObjectProviders instance.
Definition: TestParser.java:61
net.sf.gridarta.model.gameobject
GameObjects are the objects based on Archetypes found on maps.
Definition: AbstractGameObject.java:20
net
net.sf.gridarta.model.errorview
Definition: ErrorView.java:20
net.sf.gridarta.model.errorview.ErrorViewCollector
Convenience class for adding messages to a ErrorView instance using a fixed category name.
Definition: ErrorViewCollector.java:31
net.sf.gridarta.model.gameobject.TestGameObjectFactory
A GameObjectFactory for regression tests.
Definition: TestGameObjectFactory.java:34
net.sf.gridarta.model.artifact.TestParser
Parser for artifacts definitions.
Definition: TestParser.java:55
net.sf.gridarta.model.artifact.TestParser.parseArtifacts
void parseArtifacts(@NotNull final String artifacts)
Parses artifacts definitions.
Definition: TestParser.java:134
net.sf.gridarta.model.face.FaceObjects
FaceObjects is a container for FaceObjects.
Definition: FaceObjects.java:31
net.sf.gridarta.model.errorview.TestErrorView
An ErrorView suitable for unit tests.
Definition: TestErrorView.java:30
net.sf.gridarta.model.archetypeset.ArchetypeSet
Interface that captures similarities between different ArchetypeSet implementations.
Definition: ArchetypeSet.java:37
net.sf.gridarta.model.archetype.TestArchetypeBuilder
An AbstractArchetypeBuilder for regression tests.
Definition: TestArchetypeBuilder.java:31
net.sf.gridarta.model.artifact.TestParser.TestParser
TestParser(@NotNull final TestErrorView errorView)
Creates a new instance.
Definition: TestParser.java:98
net.sf.gridarta.model.archetype.TestArchetypeFactory
An ArchetypeFactory implementation for testing purposes.
Definition: TestArchetypeFactory.java:32
net.sf.gridarta.model.io
Reading and writing of maps, handling of paths.
Definition: AbstractAnimationObjectsReader.java:20
net.sf.gridarta.model.artifact.TestParser.archetypeSet
final ArchetypeSet< TestGameObject, TestMapArchObject, TestArchetype > archetypeSet
The ArchetypeSet instance.
Definition: TestParser.java:67
net.sf.gridarta.model.artifact.TestParser.getArchetypeCount
int getArchetypeCount()
Returns the number of defined archetypes.
Definition: TestParser.java:156
net.sf.gridarta.model
net.sf.gridarta.model.archetype.Archetype
Reflects an Archetype.
Definition: Archetype.java:41
net.sf.gridarta.model.io.TestArchetypeParser
An ArchetypeParser for regression tests.
Definition: TestArchetypeParser.java:38
net.sf.gridarta.model.face
The face is the appearance of an object.
Definition: AbstractFaceObjects.java:20
net.sf.gridarta.model.anim
Gridarta can handle frame information of animations and allow the selection of an animation using a t...
Definition: AbstractAnimationObjects.java:20
net.sf.gridarta.model.artifact.TestParser.TestParser
TestParser()
Creates a new instance.
Definition: TestParser.java:90
net.sf.gridarta.model.archetype.DuplicateArchetypeException
An Exception indicating that an Archetype name is not unique.
Definition: DuplicateArchetypeException.java:29
net.sf.gridarta.model.maparchobject.TestMapArchObject
A MapArchObject implementation for testing purposes.
Definition: TestMapArchObject.java:28
net.sf.gridarta.model.maparchobject
Definition: AbstractMapArchObject.java:20
net.sf.gridarta.utils.ResourceIcons
Creates ImageIcon instances from resources.
Definition: ResourceIcons.java:46
net.sf.gridarta.model.artifact.TestParser.addArchetype
void addArchetype(@NotNull final String archetypeName, @NotNull final String... attributes)
Adds a new archetype.
Definition: TestParser.java:118
net.sf.gridarta.model.archetypeset
Definition: ArchetypeSet.java:20
net.sf.gridarta.model.archetypeset.DefaultArchetypeSet
Base implementation of ArchetypeSet.
Definition: DefaultArchetypeSet.java:44
net.sf.gridarta.model.artifact.TestParser.errorViewCollector
final ErrorViewCollector errorViewCollector
The ErrorViewCollector instance.
Definition: TestParser.java:79
net.sf.gridarta.utils
Definition: ActionBuilderUtils.java:20
net.sf.gridarta.model.face.TestFaceObjects
A FaceObjects for regression tests.
Definition: TestFaceObjects.java:30