Changeset 7472c1048141217aa45025f0c2b2dca84dea5d9b
- Timestamp:
- 12/30/07 15:09:29
(8 months ago)
- Author:
- Christopher Jung <bktheg@web.de>
- git-committer:
- Christopher Jung <bktheg@web.de> 1199023769 +0100
- git-parent:
[69e8dd4d646261e70b6c69e5073d73ce1fdc5047]
- git-author:
- Christopher Jung <bktheg@web.de> 1199023769 +0100
- Message:
Das automatische Registrieren von Rollen ergaenzt
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r23aa517 |
r7472c10 |
|
| 21 | 21 | import java.util.HashMap; |
|---|
| 22 | 22 | import java.util.Map; |
|---|
| | 23 | import java.util.ServiceLoader; |
|---|
| 23 | 24 | |
|---|
| 24 | 25 | import net.driftingsouls.ds2.server.scripting.roles.Role; |
|---|
| … | … | |
| 32 | 33 | public class Interpreter { |
|---|
| 33 | 34 | private static Map<String,Class<? extends Role>> roles = new HashMap<String,Class<? extends Role>>(); |
|---|
| | 35 | |
|---|
| | 36 | static { |
|---|
| | 37 | loadRegisteredRoles(); |
|---|
| | 38 | } |
|---|
| | 39 | |
|---|
| | 40 | private static void loadRegisteredRoles() { |
|---|
| | 41 | ServiceLoader<Role> roleLoader = ServiceLoader.load(Role.class); |
|---|
| | 42 | for( Role role : roleLoader ) { |
|---|
| | 43 | roles.put(role.getClass().getSimpleName(), role.getClass()); |
|---|
| | 44 | } |
|---|
| | 45 | } |
|---|
| 34 | 46 | |
|---|
| 35 | 47 | /** |
|---|
| … | … | |
| 56 | 68 | synchronized(roles) { |
|---|
| 57 | 69 | roles.clear(); |
|---|
| | 70 | loadRegisteredRoles(); |
|---|
| 58 | 71 | } |
|---|
| 59 | 72 | } |
|---|
| r23aa517 |
r7472c10 |
|
| 26 | 26 | |
|---|
| 27 | 27 | import net.driftingsouls.ds2.server.scripting.ScriptParserContext; |
|---|
| | 28 | import net.driftingsouls.ds2.server.scripting.roles.NopRole; |
|---|
| 28 | 29 | import net.driftingsouls.ds2.server.scripting.roles.Role; |
|---|
| 29 | 30 | import net.driftingsouls.ds2.server.scripting.roles.parser.RoleDefinition; |
|---|
| … | … | |
| 162 | 163 | assertThat(role.executed, is(true)); |
|---|
| 163 | 164 | } |
|---|
| | 165 | |
|---|
| | 166 | /** |
|---|
| | 167 | * Testet ob die NopRole automatisch im Interpreter registriert wurde |
|---|
| | 168 | */ |
|---|
| | 169 | @Test |
|---|
| | 170 | public void testNopRolePresent() { |
|---|
| | 171 | RoleDefinition nopRole = new RoleDefinition() { |
|---|
| | 172 | public Object getAttribute(String name) { |
|---|
| | 173 | return null; |
|---|
| | 174 | } |
|---|
| | 175 | |
|---|
| | 176 | public String getRoleName() { |
|---|
| | 177 | return "NopRole"; |
|---|
| | 178 | } |
|---|
| | 179 | }; |
|---|
| | 180 | |
|---|
| | 181 | RoleExecuter roleExec = Interpreter.executerFromDefinition(nopRole); |
|---|
| | 182 | assertThat(roleExec.getRole(), instanceOf(NopRole.class)); |
|---|
| | 183 | } |
|---|
| 164 | 184 | } |
|---|