MCPcopy Create free account
hub / github.com/PCGen/pcgen / InfotextToken

Class InfotextToken

code/src/java/plugin/lsttokens/campaign/InfotextToken.java:37–84  ·  view source on GitHub ↗

Class deals with INFOTEXT Token

Source from the content-addressed store, hash-verified

35 * Class deals with INFOTEXT Token
36 */
37public class InfotextToken extends AbstractNonEmptyToken<Campaign>
38 implements CDOMPrimaryToken<Campaign>, InstallLstToken
39{
40
41 @Override
42 public String getTokenName()
43 {
44 return "INFOTEXT";
45 }
46
47 @Override
48 public boolean parse(Campaign campaign, String value, URI sourceUri)
49 {
50 campaign.addToListFor(ListKey.INFO_TEXT, value);
51 return true;
52 }
53
54 @Override
55 protected ParseResult parseNonEmptyToken(LoadContext context, Campaign campaign, String value)
56 {
57 context.getObjectContext().addToList(campaign, ListKey.INFO_TEXT, value);
58 return ParseResult.SUCCESS;
59 }
60
61 @Override
62 public String[] unparse(LoadContext context, Campaign campaign)
63 {
64 Changes<String> changes = context.getObjectContext().getListChanges(campaign, ListKey.INFO_TEXT);
65 List<String> set = new ArrayList<>();
66 Collection<String> added = changes.getAdded();
67 if (added != null && !added.isEmpty())
68 {
69 set.addAll(added);
70 }
71 if (set.isEmpty())
72 {
73 //Okay, no info text
74 return null;
75 }
76 return set.toArray(new String[0]);
77 }
78
79 @Override
80 public Class<Campaign> getTokenClass()
81 {
82 return Campaign.class;
83 }
84}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected