else {
if (targetContext && inheritTense) {
return;
}
else {
Tense t = Tense.valueOf(getLanguage(), parsedStringAsConstant);
if (targetContext)
targetTense = t;
else
affectedTenses.add(t);
}
}
}
else if (parseMode == ParseMode.RULE && !qName.equals("parent")) {
disableParsing();
for (Tense affectedTense : affectedTenses) {
List<FormCategory> forms = affectedPronouns;
if (allFormsContext) {
Map<FormCategory, Map<Segment, Tense>> m = refTenseMap.get(affectedTense);
Set<FormCategory> s;
if (m == null) {
s = new HashSet<FormCategory>(Arrays.asList(parents.get(0).getForms(affectedTense)));
}
else
s = m.keySet();
forms = new ArrayList<FormCategory>(s);
}
for (FormCategory affectedPronoun : forms) {
if (formContext || auxiliaryFormContext) {
if (affectedSegments.size() == 0)
affectedSegments.addAll(Arrays.asList(Segment.values()));
FormCategory targetPronoun;
if (inheritForm)
targetPronoun = null; // no rule; refer to parent
else if (parsedStringAsConstant.equals(""))
targetPronoun = affectedPronoun;
else if (targetTense != null && targetTense.getMood().isPersonal())
targetPronoun = PersonalPronounCategory.valueOf(parsedStringAsConstant);
else
targetPronoun = new ImpersonalFormCategory(parsedStringAsConstant);
Tense targetTense2;
if (inheritTense)
targetTense2 = null; // no rule; refer to parent
else if (targetTense == null)
targetTense2 = affectedTense;
else