|
OpenNMS API 1.1.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opennms.netmgt.filter.analysis.AnalysisAdapter
org.opennms.netmgt.filter.analysis.DepthFirstAdapter
org.opennms.netmgt.filter.SQLTranslation
This class is responsible for mapping the different parts of the filter expressions into the SQL equivalent. As pieces of the expression are parsed the from and where clauses will be built. This information will be passed on to a SQLConstruct object by the parser when the expression has been fully parsed.
Field Summary | |
private java.lang.StringBuffer |
m_from
The from part of the clause |
private java.lang.StringBuffer |
m_ipaddr
The last ip address, this rebuild on a call to inAipaddr |
private Start |
m_node
The starting node of the parse tree |
private static DatabaseSchema |
m_schema
The singular loaded configuration of the database schema. |
private java.lang.StringBuffer |
m_select
The select part of the clause |
private java.util.List |
m_selectList
|
private java.lang.String |
m_selectModifier
|
private java.util.List |
m_tables
The list of tables required to create the approriate SQL statement |
private java.lang.StringBuffer |
m_where
The where part of the clause |
static java.lang.String |
VIRTUAL_COLUMN_PREFIX
Constant to identify a virtual column for determining if an interface supports a service |
Fields inherited from class org.opennms.netmgt.filter.analysis.AnalysisAdapter |
|
Constructor Summary | |
SQLTranslation(Start node)
Default constructor, initalizes the data structures |
Method Summary | |
void |
addJoin()
|
void |
addNodeIDToSelect()
|
void |
addServiceToSelect()
|
private java.lang.String |
buildSelectClause()
|
private java.lang.StringBuffer |
buildVirtualColumnClause(java.lang.String ident)
This method is used to build a sub-select clause based upon the passed virtual identifier. |
void |
caseAAndRule(AAndRule node)
|
void |
caseACompareExprPart(ACompareExprPart node)
|
void |
caseAGtrThanEqualExprPart(AGtrThanEqualExprPart node)
|
void |
caseAGtrThanExprPart(AGtrThanExprPart node)
|
void |
caseAIntegerCompareRight(AIntegerCompareRight node)
|
void |
caseAIntegerOctet(AIntegerOctet node)
|
void |
caseAIpaddrIpIdent(AIpaddrIpIdent node)
|
void |
caseAIplikeExprPart(AIplikeExprPart node)
|
void |
caseALessThanEqualExprPart(ALessThanEqualExprPart node)
|
void |
caseALessThanExprPart(ALessThanExprPart node)
|
void |
caseALikeExprPart(ALikeExprPart node)
|
void |
caseANotEqualExprPart(ANotEqualExprPart node)
|
void |
caseAOctetListOctet(AOctetListOctet node)
|
void |
caseAOctetRangeListOctet(AOctetRangeListOctet node)
|
void |
caseAOctetRangeOctet(AOctetRangeOctet node)
|
void |
caseAOrRule(AOrRule node)
|
void |
caseAStarOctet(AStarOctet node)
|
void |
caseAStringCompareRight(AStringCompareRight node)
|
void |
checkIPNum(java.lang.String octet)
This method checks to ensure that a number appearing in an IP address is within the 0-255 range. |
private java.lang.String |
constructJoin()
This method is used to build the join condtions to be added to the where clause of a complete select statement. |
private java.lang.String |
convertString(java.lang.String string)
This method removes any double quote characters from the start and end of a string and replaces them with single quotes. |
private Table |
findTableByVisableColumn(java.lang.String cname)
Find the appropriate table |
private Table |
getPrimaryTable()
This method is used to find the table that should drive the construction of the join clauses between all table in the from clause. |
java.lang.String |
getStatement()
This method returns the complete sql statement for the filter that was parsed. |
void |
inAExprParensExpr(AExprParensExpr node)
|
void |
inAIdentExprPart(AIdentExprPart node)
|
void |
inANotExprPart(ANotExprPart node)
|
void |
outAExprParensExpr(AExprParensExpr node)
|
void |
outStart(Start node)
|
void |
setConstraintTranslation(long nodeId,
java.lang.String ipaddr,
java.lang.String service)
This method should be called if you want to put constraints on the node, interface or service that is returned in the rule. |
void |
setDefaultTranslation()
Initializes the pieces of the SQL statement to perform a default query to select distinct ip addresses based the query that is built from the rest of the rule. |
void |
setIPServiceMappingTranslation()
|
private java.lang.String |
validateIdent(java.lang.String ident)
Validate the identifier. |
Methods inherited from class org.opennms.netmgt.filter.analysis.AnalysisAdapter |
caseEOF, caseTAnd, caseTBlank, caseTCompare, caseTDot, caseTGtrThan, caseTGtrThanEqual, caseTIdent, caseTInteger, caseTIplike, caseTLessThan, caseTLessThanEqual, caseTLike, caseTLparen, caseTNot, caseTNotEqual, caseTOctetList, caseTOctetRange, caseTOctetRangeList, caseTOr, caseTQuotedString, caseTRparen, caseTSemi, caseTStar, defaultCase, getIn, getOut, setIn, setOut |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String VIRTUAL_COLUMN_PREFIX
private static final DatabaseSchema m_schema
private java.util.List m_tables
private java.lang.StringBuffer m_select
private java.util.List m_selectList
private java.lang.String m_selectModifier
private java.lang.StringBuffer m_from
private java.lang.StringBuffer m_where
private java.lang.StringBuffer m_ipaddr
private Start m_node
Constructor Detail |
public SQLTranslation(Start node)
Method Detail |
private Table getPrimaryTable()
private java.lang.String constructJoin()
private Table findTableByVisableColumn(java.lang.String cname)
private java.lang.String validateIdent(java.lang.String ident)
private java.lang.StringBuffer buildVirtualColumnClause(java.lang.String ident)
private java.lang.String convertString(java.lang.String string)
string
- the string to replace quote characters inpublic void checkIPNum(java.lang.String octet)
octet
- an integer from an ip octet
java.lang.IndexOutOfBoundsException
private java.lang.String buildSelectClause()
public void setDefaultTranslation()
public void setIPServiceMappingTranslation()
public void setConstraintTranslation(long nodeId, java.lang.String ipaddr, java.lang.String service)
nodeId
- a node id to constrain againstipaddr
- an ipaddress to constrain againstservice
- a service name to constrain againstpublic void addServiceToSelect()
public void addNodeIDToSelect()
public void outStart(Start node)
outStart
in class DepthFirstAdapter
public void addJoin()
public void caseAAndRule(AAndRule node)
caseAAndRule
in interface Analysis
caseAAndRule
in class DepthFirstAdapter
public void caseAOrRule(AOrRule node)
caseAOrRule
in interface Analysis
caseAOrRule
in class DepthFirstAdapter
public void inAExprParensExpr(AExprParensExpr node)
inAExprParensExpr
in class DepthFirstAdapter
public void outAExprParensExpr(AExprParensExpr node)
outAExprParensExpr
in class DepthFirstAdapter
public void inAIdentExprPart(AIdentExprPart node)
inAIdentExprPart
in class DepthFirstAdapter
public void caseAGtrThanExprPart(AGtrThanExprPart node)
caseAGtrThanExprPart
in interface Analysis
caseAGtrThanExprPart
in class DepthFirstAdapter
public void caseALessThanExprPart(ALessThanExprPart node)
caseALessThanExprPart
in interface Analysis
caseALessThanExprPart
in class DepthFirstAdapter
public void caseAGtrThanEqualExprPart(AGtrThanEqualExprPart node)
caseAGtrThanEqualExprPart
in interface Analysis
caseAGtrThanEqualExprPart
in class DepthFirstAdapter
public void caseALessThanEqualExprPart(ALessThanEqualExprPart node)
caseALessThanEqualExprPart
in interface Analysis
caseALessThanEqualExprPart
in class DepthFirstAdapter
public void caseACompareExprPart(ACompareExprPart node)
caseACompareExprPart
in interface Analysis
caseACompareExprPart
in class DepthFirstAdapter
public void caseANotEqualExprPart(ANotEqualExprPart node)
caseANotEqualExprPart
in interface Analysis
caseANotEqualExprPart
in class DepthFirstAdapter
public void inANotExprPart(ANotExprPart node)
inANotExprPart
in class DepthFirstAdapter
public void caseAIntegerCompareRight(AIntegerCompareRight node)
caseAIntegerCompareRight
in interface Analysis
caseAIntegerCompareRight
in class DepthFirstAdapter
public void caseAStringCompareRight(AStringCompareRight node)
caseAStringCompareRight
in interface Analysis
caseAStringCompareRight
in class DepthFirstAdapter
public void caseALikeExprPart(ALikeExprPart node)
caseALikeExprPart
in interface Analysis
caseALikeExprPart
in class DepthFirstAdapter
public void caseAIplikeExprPart(AIplikeExprPart node)
caseAIplikeExprPart
in interface Analysis
caseAIplikeExprPart
in class DepthFirstAdapter
public void caseAIpaddrIpIdent(AIpaddrIpIdent node)
caseAIpaddrIpIdent
in interface Analysis
caseAIpaddrIpIdent
in class DepthFirstAdapter
public void caseAStarOctet(AStarOctet node)
caseAStarOctet
in interface Analysis
caseAStarOctet
in class DepthFirstAdapter
public void caseAOctetListOctet(AOctetListOctet node)
caseAOctetListOctet
in interface Analysis
caseAOctetListOctet
in class DepthFirstAdapter
public void caseAOctetRangeOctet(AOctetRangeOctet node)
caseAOctetRangeOctet
in interface Analysis
caseAOctetRangeOctet
in class DepthFirstAdapter
public void caseAOctetRangeListOctet(AOctetRangeListOctet node)
caseAOctetRangeListOctet
in interface Analysis
caseAOctetRangeListOctet
in class DepthFirstAdapter
public void caseAIntegerOctet(AIntegerOctet node)
caseAIntegerOctet
in interface Analysis
caseAIntegerOctet
in class DepthFirstAdapter
public java.lang.String getStatement()
|
OpenNMS API 1.1.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |