private static Vector<String> GetAmrInflections(VerbInflection inflection) { Vector<String> lstInflections = new Vector<String>(); StringBuilder verbBuilder1 = new StringBuilder(); StringBuilder verbBuilder2 = new StringBuilder(); StringBuilder verbBuilder3 = new StringBuilder(); StringBuilder verbBuilder4 = new StringBuilder(); boolean fourthInflec = false; if (!inflection.VerbRoot.Prefix.equals("")) { verbBuilder1.append(inflection.VerbRoot.Prefix); if (inflection.Positivity == TensePositivity.NEGATIVE) { verbBuilder3.append(inflection.VerbRoot.Prefix); } if (inflection.Positivity == TensePositivity.POSITIVE) { verbBuilder2.append(inflection.VerbRoot.Prefix); } } if (inflection.Positivity == TensePositivity.POSITIVE) if (!(inflection.VerbRoot.PresentTenseRoot.equals("باش") || inflection.VerbRoot.PresentTenseRoot.equals("باید"))) verbBuilder1.append("ب"); else if (inflection.Positivity == TensePositivity.NEGATIVE) { verbBuilder1.append("ن"); verbBuilder3.append("م"); } if (inflection.VerbRoot.PresentRootVowelStart.equals("A")) { if (inflection.VerbRoot.PresentTenseRoot.startsWith("آ")) { verbBuilder1.append("یا"); verbBuilder1.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); if (inflection.Positivity == TensePositivity.NEGATIVE) { verbBuilder3.append("یا"); verbBuilder3.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); } if (inflection.Positivity == TensePositivity.POSITIVE) { verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot); } } else { fourthInflec = true; verbBuilder4.append(verbBuilder1.toString()); verbBuilder1.append("ی"); verbBuilder4.append("یا"); verbBuilder1.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); verbBuilder4.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); if (inflection.Positivity == TensePositivity.NEGATIVE) { verbBuilder3.append("ی"); verbBuilder3.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); } if (inflection.Positivity == TensePositivity.POSITIVE) { verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot); } } } else { verbBuilder1.append(inflection.VerbRoot.PresentTenseRoot); if (inflection.Positivity == TensePositivity.POSITIVE /* && inflection.VerbStem.Type==VerbType.PISHVANDI*/) { verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot); } if (inflection.Positivity == TensePositivity.NEGATIVE) { verbBuilder3.append(inflection.VerbRoot.PresentTenseRoot); } } if (inflection.Person == PersonType.SECOND_PERSON_PLURAL) if (!inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("?")) { verbBuilder1.append("یید"); verbBuilder4.append("یید"); if (inflection.Positivity == TensePositivity.NEGATIVE) { verbBuilder3.append("یید"); } if (inflection.Positivity == TensePositivity.POSITIVE && inflection.VerbRoot.Type == VerbType.PISHVANDI) { verbBuilder2.append("یید"); } } else { verbBuilder1.append("ید"); verbBuilder4.append("ید"); if (inflection.Positivity == TensePositivity.NEGATIVE) { verbBuilder3.append("ید"); } if (inflection.Positivity == TensePositivity.POSITIVE && inflection.VerbRoot.Type == VerbType.PISHVANDI) { verbBuilder2.append("ید"); } } if (inflection.ZamirPeyvasteh == AttachedPronounType.AttachedPronoun_NONE) { if (!(inflection.VerbRoot.PresentTenseRoot.equals("نه") && inflection.Positivity == TensePositivity.NEGATIVE)) lstInflections.add(verbBuilder1.toString()); if (fourthInflec) lstInflections.add(verbBuilder4.toString()); if (inflection.Positivity == TensePositivity.NEGATIVE) lstInflections.add(verbBuilder3.toString()); if (inflection.Positivity == TensePositivity.POSITIVE && (inflection.VerbRoot.Type == VerbType.PISHVANDI || inflection.VerbRoot.PastTenseRoot.equals("کرد") || inflection.VerbRoot.PastTenseRoot.equals("نمود") || inflection.VerbRoot.PastTenseRoot.equals("فرمود"))) lstInflections.add(verbBuilder2.toString()); if (inflection.VerbRoot.Type == VerbType.PISHVANDI && inflection.Person == PersonType.SECOND_PERSON_SINGULAR && inflection.Positivity == TensePositivity.POSITIVE && !inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("?")) { lstInflections.add(verbBuilder2.append("ی").toString()); } } else { if (!(inflection.VerbRoot.PresentTenseRoot.equals("نه") && inflection.Positivity == TensePositivity.NEGATIVE)) lstInflections.add(AddAttachedPronoun(verbBuilder1.toString(), inflection)); if (fourthInflec) lstInflections.add(AddAttachedPronoun(verbBuilder4.toString(), inflection)); if (inflection.Positivity == TensePositivity.NEGATIVE) lstInflections.add(AddAttachedPronoun(verbBuilder3.toString(), inflection)); if (inflection.VerbRoot.Type == VerbType.PISHVANDI && inflection.Positivity == TensePositivity.POSITIVE) lstInflections.add(AddAttachedPronoun(verbBuilder2.toString(), inflection)); if (inflection.VerbRoot.Type == VerbType.PISHVANDI && inflection.Person == PersonType.SECOND_PERSON_SINGULAR && inflection.Positivity == TensePositivity.POSITIVE && !inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("?")) { lstInflections.add(AddAttachedPronoun(verbBuilder2.append("ی").toString(), inflection)); } } return lstInflections; }
private static Vector<String> GetHaalEltezamiInflections(VerbInflection inflection) { Vector<String> lstInflections = new Vector<String>(); StringBuilder verbBuilder = new StringBuilder(); StringBuilder verbBuilder2 = new StringBuilder(); StringBuilder verbBuilder3 = new StringBuilder(); boolean thirdInflec = false; verbBuilder.append(inflection.VerbRoot.Prefix); verbBuilder2.append(inflection.VerbRoot.Prefix); if (inflection.Positivity == TensePositivity.POSITIVE) if (!(inflection.VerbRoot.PresentTenseRoot.equals("باشد") || inflection.VerbRoot.PresentTenseRoot.equals("باید"))) verbBuilder.append("ب"); else if (inflection.Positivity == TensePositivity.NEGATIVE) verbBuilder.append("ن"); if (inflection.VerbRoot.PresentRootVowelStart.equals("A")) { if (inflection.VerbRoot.PresentTenseRoot.startsWith("آ")) { verbBuilder.append("یا"); verbBuilder.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot); } else { thirdInflec = true; verbBuilder3.append(verbBuilder.toString()); verbBuilder.append("ی"); verbBuilder3.append("یا"); verbBuilder.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); verbBuilder3.append(inflection.VerbRoot.PresentTenseRoot.substring(1)); verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot); } } else { verbBuilder.append(inflection.VerbRoot.PresentTenseRoot); verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot); } if (inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("A")) { if (verbBuilder.length() > 1) { verbBuilder.delete(verbBuilder.length() - 1, verbBuilder.length()); verbBuilder.append("ای"); if (thirdInflec) { verbBuilder3.delete(verbBuilder3.length() - 1, verbBuilder3.length()); verbBuilder3.append("ای"); } if (inflection.VerbRoot.PresentTenseRoot.length() > 1) { verbBuilder2.delete(verbBuilder2.length() - 1, verbBuilder2.length()); verbBuilder2.append("ای"); } else { verbBuilder2.append("ی"); } } else { verbBuilder.append("ی"); verbBuilder3.append("ی"); verbBuilder2.append("ی"); } } else if (!inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("?")) { if (!inflection.VerbRoot.PastTenseRoot.equals("رفت") && !inflection.VerbRoot.PastTenseRoot.equals("شد")) { verbBuilder.append("ی"); verbBuilder3.append("ی"); verbBuilder2.append("ی"); } } if (inflection.Person == PersonType.FIRST_PERSON_PLURAL) { verbBuilder.append("یم"); verbBuilder3.append("یم"); verbBuilder2.append("یم"); } else if (inflection.Person == PersonType.FIRST_PERSON_SINGULAR) { verbBuilder.append("م"); verbBuilder3.append("م"); verbBuilder2.append("م"); } else if (inflection.Person == PersonType.SECOND_PERSON_PLURAL) { verbBuilder.append("ید"); verbBuilder3.append("ید"); verbBuilder2.append("ید"); } else if (inflection.Person == PersonType.SECOND_PERSON_SINGULAR) { verbBuilder.append("ی"); verbBuilder3.append("ی"); verbBuilder2.append("ی"); } else if (inflection.Person == PersonType.THIRD_PERSON_PLURAL) { verbBuilder.append("ند"); verbBuilder3.append("ند"); verbBuilder2.append("ند"); } else if (inflection.Person == PersonType.THIRD_PERSON_SINGULAR) { verbBuilder.append("د"); verbBuilder3.append("د"); verbBuilder2.append("د"); } lstInflections.add(AddAttachedPronoun(verbBuilder.toString(), inflection)); if (thirdInflec) lstInflections.add(AddAttachedPronoun(verbBuilder3.toString(), inflection)); if (inflection.Positivity == TensePositivity.POSITIVE && (inflection.VerbRoot.PresentTenseRoot.length() >= 2 || inflection.VerbRoot.Type == VerbType.PISHVANDI)) lstInflections.add(AddAttachedPronoun(verbBuilder2.toString(), inflection)); return lstInflections; }