11package edu .harvard .iq .dataverse .util ;
22
3+ import java .util .ArrayList ;
4+ import java .util .List ;
35import java .util .logging .Logger ;
46
57import edu .harvard .iq .dataverse .settings .JvmSettings ;
@@ -34,6 +36,14 @@ public class PersonOrOrgUtil {
3436
3537 private static final Logger logger = Logger .getLogger (PersonOrOrgUtil .class .getCanonicalName ());
3638
39+ static boolean assumeCommaInPersonName = false ;
40+ static List <String > orgPhrases ;
41+
42+ static {
43+ setAssumeCommaInPersonName (JvmSettings .ASSUME_COMMA_IN_PERSON_NAME .lookupOptional (Boolean .class ).orElse (false ));
44+ setOrgPhraseArray (JvmSettings .ORG_PHRASE_ARRAY .lookupOptional (String [].class ).orElse (new String []{}));
45+ }
46+
3747 /**
3848 * This method tries to determine if a name belongs to a person or an
3949 * organization and, if it is a person, what the given and family names are. The
@@ -61,7 +71,6 @@ public static JsonObject getPersonOrOrganization(String name, boolean organizati
6171
6272 boolean isOrganization = !isPerson && Organizations .getInstance ().isOrganization (name );
6373 if (!isOrganization ) {
64- String [] orgPhrases = JvmSettings .ORG_PHRASE_ARRAY .lookupOptional (String [].class ).orElse (new String []{});
6574 for (String phrase : orgPhrases ) {
6675 if (name .contains (phrase )) {
6776 isOrganization = true ;
@@ -88,7 +97,6 @@ public static JsonObject getPersonOrOrganization(String name, boolean organizati
8897 }
8998
9099 } else {
91- boolean assumeCommaInPersonName = JvmSettings .ASSUME_COMMA_IN_PERSON_NAME .lookupOptional (Boolean .class ).orElse (false );
92100 if (assumeCommaInPersonName && !isPerson ) {
93101 isOrganization = true ;
94102 } else {
@@ -125,4 +133,18 @@ public static JsonObject getPersonOrOrganization(String name, boolean organizati
125133 return job .build ();
126134
127135 }
136+
137+ // Public for testing
138+ public static void setOrgPhraseArray (String [] phraseArray ) {
139+ if (phraseArray == null ) {
140+ orgPhrases = new ArrayList <>();
141+ } else {
142+ orgPhrases = List .of (phraseArray );
143+ }
144+ }
145+
146+ // Public for testing
147+ public static void setAssumeCommaInPersonName (boolean assume ) {
148+ assumeCommaInPersonName = assume ;
149+ }
128150}
0 commit comments