Package com._1c.g5.v8.dt.ql.resource
Class AliasComputer
- java.lang.Object
-
- com._1c.g5.v8.dt.ql.resource.AliasComputer
-
- Direct Known Subclasses:
AliasComputerDcs
public class AliasComputer extends Object
Handler for aliases in select query
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAliasComputer.PairAliasIsExprKeep pair value for computing alias
-
Field Summary
Fields Modifier and Type Field Description static StringFIELDstatic StringFIELD_RUstatic AliasComputerINSTANCEstatic StringPRESENTATIONstatic StringREFPRESENTATION
-
Constructor Summary
Constructors Constructor Description AliasComputer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidfillAliasForFromSection(QuerySchemaOperator operator)Fills alias for 'from' section, if they don't have itprotected voidfillAliasFormJoins(List<? extends AbstractQuerySchemaQuerySourceJoin> allJoins, Set<CaseInsensitiveString> announcedAlias)Fills all alias for sources from joinsSet<CaseInsensitiveString>fillAliasForSelectFields(List<QuerySchemaExpression> allFields, List<QuerySchemaSource> allSources, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)Fills alias for select fields, if they don't have itCaseInsensitiveStringgetAlias(CaseInsensitiveString name, Set<CaseInsensitiveString> announcesAlias, boolean isExpr, boolean isRussian)Getting actual alias fornamestatic CaseInsensitiveStringgetAliasWithoutRepeat(CaseInsensitiveString alias, Set<CaseInsensitiveString> announcesAlias, boolean isExpr, boolean isRussian)Compute unique aliasstatic StringgetDefaultFieldName(boolean isRussian)Gets default field nameStringgetNameAliasCommonExpression(CommonExpression expr, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)Gets name alias from CommonExpression - split by '.' and get lastStringgetNameAliasCommonExpressionForFieldOfNestedTable(CommonExpression expr, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)Computes alias for field from nested table represented as CommonExpressionStringgetNameAliasTableExpression(AbstractQuerySchemaTable table, String alias)Gets name alias from AbstractTable - split by '.' and get lastAliasComputer.PairAliasIsExprgetQSExpressionName(QuerySchemaExpression expression, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)Gets name field by it expressionSet<CaseInsensitiveString>readAllFillAliasFrom(QuerySchemaOperator operator)Read all alias from section 'from' (including 'join' section)Set<CaseInsensitiveString>readAllFillAliasFrom(QuerySchemaSource source)Read all alias from 1 source in section 'from' (including 'join' section)protected voidreadAllFillAliasFromJoins(List<AbstractQuerySchemaQuerySourceJoin> allJoins, Set<CaseInsensitiveString> announcedAlias)Read all alias from joins
-
-
-
Field Detail
-
REFPRESENTATION
public static final String REFPRESENTATION
- See Also:
- Constant Field Values
-
PRESENTATION
public static final String PRESENTATION
- See Also:
- Constant Field Values
-
FIELD
public static final String FIELD
- See Also:
- Constant Field Values
-
FIELD_RU
public static final String FIELD_RU
- See Also:
- Constant Field Values
-
INSTANCE
public static AliasComputer INSTANCE
-
-
Method Detail
-
getDefaultFieldName
public static String getDefaultFieldName(boolean isRussian)
Gets default field name- Parameters:
isRussian-trueif actual script variant is Russian,falseotherwise- Returns:
- default field name, never
null
-
getAliasWithoutRepeat
public static CaseInsensitiveString getAliasWithoutRepeat(CaseInsensitiveString alias, Set<CaseInsensitiveString> announcesAlias, boolean isExpr, boolean isRussian)
Compute unique alias- Parameters:
alias- original aliasannouncesAlias- aliases which have been created earlierisExpr- if alias for AbstractExpression- Returns:
- unique alias: 1) isExpr == false then return the first element isn't contained in announcesAlias from [ alias, alias1, alias2, ...] 2) isExpr == true then return the first element isn't contained in announcesAlias from [ DefaultColumnName1, DefaultColumnName2, DefaultColumnName3, ...]
-
fillAliasForSelectFields
public Set<CaseInsensitiveString> fillAliasForSelectFields(List<QuerySchemaExpression> allFields, List<QuerySchemaSource> allSources, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)
Fills alias for select fields, if they don't have it- Parameters:
allFields- all select fields, can't benullallSources- all sources, can benulldynamicDbViewComputer-IDynamicDbViewFieldComputer, can benull, in this case aliases will be computed by string representation of expressionsisRussian-trueif aliases computing for Russian script variant,falseotherwise- Returns:
- all aliases, never
null
-
fillAliasForFromSection
public void fillAliasForFromSection(QuerySchemaOperator operator)
Fills alias for 'from' section, if they don't have it- Parameters:
operator- processingQuerySchemaOperator, can't benull
-
getNameAliasCommonExpression
public String getNameAliasCommonExpression(CommonExpression expr, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)
Gets name alias from CommonExpression - split by '.' and get last- Parameters:
expr- processingCommonExpression, can benulldynamicDbViewComputer-IDynamicDbViewFieldComputer, can benull, in this case aliases will be computed by string representation of expressionsisRussian-trueif aliases computing for Russian script variant,falseotherwise- Returns:
- if
expr == nullreturns null, else returns last part of common expression
-
getNameAliasTableExpression
public String getNameAliasTableExpression(AbstractQuerySchemaTable table, String alias)
Gets name alias from AbstractTable - split by '.' and get last- Parameters:
table- processing table, can benullalias- current alias, can benull- Returns:
- if
table == nullreturnsnull, ifalias != nullreturnsalias, ifalias == nullreturns last part of table name
-
getAlias
public CaseInsensitiveString getAlias(CaseInsensitiveString name, Set<CaseInsensitiveString> announcesAlias, boolean isExpr, boolean isRussian)
Getting actual alias forname- Parameters:
name- of expression, can't benullannouncesAlias- aliases which have been used, can't benullisExpr- true, if this name corresponding to expression not instance of CommonExpressionisRussian-trueif actual script variant is Russian,falseotherwise- Returns:
- alias
-
getQSExpressionName
public AliasComputer.PairAliasIsExpr getQSExpressionName(QuerySchemaExpression expression, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)
Gets name field by it expression- Parameters:
expression- processing expression, can't benullisRussian-trueif actual script variant is Russian,falseotherwise- Returns:
QlDerivedStateComputer.PairAliasIsExpr
-
readAllFillAliasFrom
public Set<CaseInsensitiveString> readAllFillAliasFrom(QuerySchemaOperator operator)
Read all alias from section 'from' (including 'join' section)- Parameters:
operator- processingQuerySchemaOperator, can't benull- Returns:
- set of string with all aliases
-
readAllFillAliasFrom
public Set<CaseInsensitiveString> readAllFillAliasFrom(QuerySchemaSource source)
Read all alias from 1 source in section 'from' (including 'join' section)- Parameters:
source- processing source, can't benull- Returns:
- set of string with all aliases
-
getNameAliasCommonExpressionForFieldOfNestedTable
public String getNameAliasCommonExpressionForFieldOfNestedTable(CommonExpression expr, IDynamicDbViewFieldComputer dynamicDbViewComputer, boolean isRussian)
Computes alias for field from nested table represented as CommonExpression- Parameters:
expr- processing expression, can't benulldynamicDbViewComputer-IDynamicDbViewFieldComputer, can benull, in this case aliases will be computed by string representation of expressionsisRussian-trueif aliases computing for Russian script variant,falseotherwise- Returns:
- computed alias, can be
nullif model of the query is not valid
-
readAllFillAliasFromJoins
protected void readAllFillAliasFromJoins(List<AbstractQuerySchemaQuerySourceJoin> allJoins, Set<CaseInsensitiveString> announcedAlias)
Read all alias from joins- Parameters:
allJoins- - processing joinsAbstractQuerySchemaQuerySourceJoinannouncedAlias- - container of alias
-
fillAliasFormJoins
protected void fillAliasFormJoins(List<? extends AbstractQuerySchemaQuerySourceJoin> allJoins, Set<CaseInsensitiveString> announcedAlias)
Fills all alias for sources from joins- Parameters:
allJoins- - processing joinsAbstractQuerySchemaQuerySourceJoinannouncedAlias- - container of alias
-
-