+
+ /**
+ * Creates a new instance for a person for whom an "identification" string
+ * is all what is known. This string is generally a short or a complete name.
+ * As this string is kept in the {@link eu.etaxonomy.cdm.model.common.IdentifiableEntity#getTitleCache() titleCache}
+ * attribute and should not be overwritten by the {@link #generateTitle() generateTitle} method
+ * the {@link eu.etaxonomy.cdm.model.common.IdentifiableEntity#isProtectedTitleCache() protectedTitleCache} flag will be turned on.
+ */
+ public static Person NewTitledInstance(String titleCache){
+ Person result = new Person();
+ result.setTitleCache(titleCache, true);
+ return result;
+ }
+
+
+ /**
+ * Class constructor.
+ *
+ * @see #Person(String, String, String)
+ */
+ protected Person() {
+ super();
+ this.cacheStrategy = PersonDefaultCacheStrategy.NewInstance();
+
+ }
+
+ /**
+ * Class constructor using a "forenames" string (including initials),
+ * a surname (family name) and an abbreviated name as used in nomenclature.
+ * For the abbreviated name the inherited attribute {@link TeamOrPersonBase#getNomenclaturalTitle() nomenclaturalTitle}
+ * is used.
+ *
+ * @param firstname the given name
+ * @param lastname the hereditary name
+ * @param nomenclaturalTitel the abbreviated name
+ * @see #Person()
+ * @see #NewInstance()
+ */
+ public Person(String firstname, String lastname, String nomenclaturalTitel) {