mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Add labelMappings to instanceEnricher
This commit is contained in:
@ -27,6 +27,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -97,6 +98,13 @@ public class QInstanceEnricher
|
|||||||
//////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////
|
||||||
private boolean configRemoveIdFromNameWhenCreatingPossibleValueFieldLabels = true;
|
private boolean configRemoveIdFromNameWhenCreatingPossibleValueFieldLabels = true;
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// let an instance define mappings to be applied during name-to-label enrichments, //
|
||||||
|
// e.g., to avoid ever incorrectly camel-casing an acronym (e.g., "Tla" shoudl always be "TLA") //
|
||||||
|
// or to expand abbreviations in code (e.g., "Addr" should always be "Address" //
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
private static final Map<String, String> labelMappings = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -647,7 +655,17 @@ public class QInstanceEnricher
|
|||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
.replaceAll("([0-9])([A-Za-z])", "$1 $2");
|
.replaceAll("([0-9])([A-Za-z])", "$1 $2");
|
||||||
|
|
||||||
return (name.substring(0, 1).toUpperCase(Locale.ROOT) + suffix);
|
String label = name.substring(0, 1).toUpperCase(Locale.ROOT) + suffix;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// apply any label mappings - e.g., to force app-specific acronyms/initialisms to all-caps //
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
for(Map.Entry<String, String> entry : labelMappings.entrySet())
|
||||||
|
{
|
||||||
|
label = label.replaceAll(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
return (label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1111,4 +1129,35 @@ public class QInstanceEnricher
|
|||||||
{
|
{
|
||||||
return (this.joinGraph);
|
return (this.joinGraph);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
public static void addLabelMapping(String from, String to)
|
||||||
|
{
|
||||||
|
labelMappings.put(from, to);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
public static void removeLabelMapping(String from)
|
||||||
|
{
|
||||||
|
labelMappings.remove(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
public static void clearLabelMappings()
|
||||||
|
{
|
||||||
|
labelMappings.clear();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -197,6 +197,16 @@ class QInstanceEnricherTest extends BaseTest
|
|||||||
assertEquals("Something USA", QInstanceEnricher.nameToLabel("somethingUSA"));
|
assertEquals("Something USA", QInstanceEnricher.nameToLabel("somethingUSA"));
|
||||||
assertEquals("Number 1 Dad", QInstanceEnricher.nameToLabel("number1Dad"));
|
assertEquals("Number 1 Dad", QInstanceEnricher.nameToLabel("number1Dad"));
|
||||||
assertEquals("Number 417 Dad", QInstanceEnricher.nameToLabel("number417Dad"));
|
assertEquals("Number 417 Dad", QInstanceEnricher.nameToLabel("number417Dad"));
|
||||||
|
|
||||||
|
assertEquals("Default Wms System Id", QInstanceEnricher.nameToLabel("defaultWmsSystemId"));
|
||||||
|
QInstanceEnricher.addLabelMapping("\\bWms\\b", "WMS");
|
||||||
|
assertEquals("Default WMS System Id", QInstanceEnricher.nameToLabel("defaultWmsSystemId"));
|
||||||
|
QInstanceEnricher.clearLabelMappings();
|
||||||
|
|
||||||
|
assertEquals("Api Client Id", QInstanceEnricher.nameToLabel("apiClientId"));
|
||||||
|
QInstanceEnricher.addLabelMapping("\\bApi\\b", "API");
|
||||||
|
assertEquals("API Client Id", QInstanceEnricher.nameToLabel("apiClientId"));
|
||||||
|
QInstanceEnricher.clearLabelMappings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user