Return HumanName getText() preferentially in getNameAsSingleString (#1355)

* Failing tests

* Return getText if it exists in HumanName
This commit is contained in:
dotasek 2023-07-18 12:22:53 -04:00 committed by GitHub
parent d95af6d968
commit 2f11af9bfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 108 additions and 33 deletions

View File

@ -655,13 +655,18 @@ public class HumanName extends Type implements ICompositeType {
}
/**
* Returns all of the components of the name (prefix, given, family, suffix) as a single string with a single spaced
* string separating each part.
* <p>
* If none of the parts are populated, returns the {@link #getTextElement() text} element value instead.
* </p>
* <p>Returns the {@link #getTextElement() text} element value if it is not null.</p>
* <p>If the {@link #getTextElement() text} element value is null, returns all the components of the name (prefix,
* given, family, suffix) as a single string with a single spaced string separating each part. </p>
*
* @return the human name as a single string
*/
public String getNameAsSingleString() {
if (hasText()) {
return getText().toString();
}
List<StringType> nameParts = new ArrayList<StringType>();
nameParts.addAll(getPrefix());
nameParts.addAll(getGiven());

View File

@ -25,4 +25,14 @@ public class HumanNameTest {
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
@Test
public void getNameAsSingleStringPreferText() {
final String expected = "dummy value";
HumanName humanName = new HumanName()
.setTextElement(new StringType(expected)).addFamily("wrong value");
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
}

View File

@ -668,13 +668,18 @@ public class HumanName extends Type implements ICompositeType {
}
/**
* Returns all of the components of the name (prefix, given, family, suffix) as a single string with a single spaced
* string separating each part.
* <p>
* If none of the parts are populated, returns the {@link #getTextElement() text} element value instead.
* </p>
* <p>Returns the {@link #getTextElement() text} element value if it is not null.</p>
* <p>If the {@link #getTextElement() text} element value is null, returns all the components of the name (prefix,
* given, family, suffix) as a single string with a single spaced string separating each part. </p>
*
* @return the human name as a single string
*/
public String getNameAsSingleString() {
if (hasText()) {
return getText().toString();
}
List<StringType> nameParts = new ArrayList<StringType>();
nameParts.addAll(getPrefix());
nameParts.addAll(getGiven());

View File

@ -25,4 +25,14 @@ public class HumanNameTest {
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
@Test
public void getNameAsSingleStringPreferText() {
final String expected = "dummy value";
HumanName humanName = new HumanName()
.setTextElement(new StringType(expected)).setFamily("wrong value");
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
}

View File

@ -668,13 +668,18 @@ public class HumanName extends Type implements ICompositeType {
}
/**
* Returns all of the components of the name (prefix, given, family, suffix) as a single string with a single spaced
* string separating each part.
* <p>
* If none of the parts are populated, returns the {@link #getTextElement() text} element value instead.
* </p>
* <p>Returns the {@link #getTextElement() text} element value if it is not null.</p>
* <p>If the {@link #getTextElement() text} element value is null, returns all the components of the name (prefix,
* given, family, suffix) as a single string with a single spaced string separating each part. </p>
*
* @return the human name as a single string
*/
public String getNameAsSingleString() {
if (hasText()) {
return getText().toString();
}
List<StringType> nameParts = new ArrayList<StringType>();
nameParts.addAll(getPrefix());
nameParts.addAll(getGiven());

View File

@ -27,4 +27,14 @@ public class HumanNameTest {
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
@Test
public void getNameAsSingleStringPreferText() {
final String expected = "dummy value";
HumanName humanName = new HumanName()
.setTextElement(new StringType(expected)).setFamily("wrong value");
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
}

View File

@ -887,16 +887,21 @@ public class HumanName extends DataType implements ICompositeType {
*/
public String getSuffixAsSingleString() {
return joinStringsSpaceSeparated(getSuffix());
}
}
/**
* <p>Returns the {@link #getTextElement() text} element value if it is not null.</p>
* <p>If the {@link #getTextElement() text} element value is null, returns all the components of the name (prefix,
* given, family, suffix) as a single string with a single spaced string separating each part. </p>
*
* @return the human name as a single string
*/
public String getNameAsSingleString() {
if (hasText()) {
return getText().toString();
}
/**
* Returns all of the components of the name (prefix, given, family, suffix) as a single string with a single spaced
* string separating each part.
* <p>
* If none of the parts are populated, returns the {@link #getTextElement() text} element value instead.
* </p>
*/
public String getNameAsSingleString() {
List<StringType> nameParts = new ArrayList<StringType>();
nameParts.addAll(getPrefix());
nameParts.addAll(getGiven());

View File

@ -25,4 +25,14 @@ public class HumanNameTest {
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
@Test
public void getNameAsSingleStringPreferText() {
final String expected = "dummy value";
HumanName humanName = new HumanName()
.setTextElement(new StringType(expected)).setFamily("wrong value");
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
}

View File

@ -887,17 +887,22 @@ public class HumanName extends DataType implements ICompositeType {
*/
public String getSuffixAsSingleString() {
return joinStringsSpaceSeparated(getSuffix());
}
}
/**
* Returns all of the components of the name (prefix, given, family, suffix) as a single string with a single spaced
* string separating each part.
* <p>
* If none of the parts are populated, returns the {@link #getTextElement() text} element value instead.
* </p>
*/
/**
* <p>Returns the {@link #getTextElement() text} element value if it is not null.</p>
* <p>If the {@link #getTextElement() text} element value is null, returns all the components of the name (prefix,
* given, family, suffix) as a single string with a single spaced string separating each part. </p>
*
* @return the human name as a single string
*/
public String getNameAsSingleString() {
List<StringType> nameParts = new ArrayList<StringType>();
if (hasText()) {
return getText().toString();
}
List<StringType> nameParts = new ArrayList<StringType>();
nameParts.addAll(getPrefix());
nameParts.addAll(getGiven());
if (hasFamilyElement()) {

View File

@ -27,4 +27,14 @@ public class HumanNameTest {
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
@Test
public void getNameAsSingleStringPreferText() {
final String expected = "dummy value";
HumanName humanName = new HumanName()
.setTextElement(new StringType(expected)).setFamily("wrong value");
String actual = humanName.getNameAsSingleString();
assertEquals(expected, actual);
}
}