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

Method parseVFeatLine

code/src/java/pcgen/io/PCGVer2Parser.java:4407–4446  ·  view source on GitHub ↗
(final String line)

Source from the content-addressed store, hash-verified

4405 }
4406
4407 private void parseVFeatLine(final String line)
4408 {
4409 final PCGTokenizer tokens;
4410
4411 try
4412 {
4413 tokens = new PCGTokenizer(line);
4414 }
4415 catch (PCGParseException pcgpex)
4416 {
4417 final String message =
4418 "Illegal VFeat line ignored: " + line + Constants.LINE_SEPARATOR + "Error: " + pcgpex.getMessage();
4419 warnings.add(message);
4420
4421 return;
4422 }
4423
4424 final Iterator<PCGElement> it = tokens.getElements().iterator();
4425
4426 // the first element defines the Feat key name
4427 if (it.hasNext())
4428 {
4429 final PCGElement element = it.next();
4430
4431 final String abilityKey = EntityEncoder.decode(element.getText());
4432 Ability anAbility = Globals.getContext().getReferenceContext().getManufacturerId(AbilityCategory.FEAT)
4433 .getActiveObject(abilityKey);
4434
4435 if (anAbility == null)
4436 {
4437 final String message = "Could not add vfeat: " + abilityKey;
4438 warnings.add(message);
4439
4440 return;
4441 }
4442 CNAbility cna = CNAbilityFactory.getCNAbility(AbilityCategory.FEAT, Nature.VIRTUAL, anAbility);
4443 parseFeatsHandleAppliedToAndSaveTags(it, cna);
4444 thePC.setDirty(true);
4445 }
4446 }
4447
4448 /**
4449 * Parses the version information from a PCG file.

Callers 1

parseCachedLinesMethod · 0.95

Calls 15

getElementsMethod · 0.95
decodeMethod · 0.95
getTextMethod · 0.95
getContextMethod · 0.95
getCNAbilityMethod · 0.95
getMessageMethod · 0.65
addMethod · 0.65
getActiveObjectMethod · 0.65
getReferenceContextMethod · 0.65
iteratorMethod · 0.45
hasNextMethod · 0.45

Tested by

no test coverage detected