|
OpenNMS API 1.2.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 DatabaseSchemaConfigFactory |
m_schemaFactory
|
private java.util.List |
m_selectList
The list of columns to be returned by the SQL. |
private java.lang.String |
m_selectModifier
A modifier on the selectList (like 'DISTINCT') |
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 | |
private java.lang.String |
addColumnToStatement(java.lang.String colName)
Adds a column to the statement. |
private java.lang.String |
addColumnToStatement(Table t,
java.lang.String colName)
Adds a column to the statement. |
private java.lang.String |
buildSelectClause()
|
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. |
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 |
setInterfaceWithServiceTranslation()
|
void |
setIPServiceMappingTranslation()
|
private java.lang.String |
validateIdent(java.lang.String ident)
Validate the identifier by ensuring it is references in the schema. |
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 |
private DatabaseSchemaConfigFactory m_schemaFactory
public static final java.lang.String VIRTUAL_COLUMN_PREFIX
private java.util.List m_tables
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 java.lang.String constructJoin()
private java.lang.String validateIdent(java.lang.String ident)
private java.lang.String addColumnToStatement(java.lang.String colName)
colName
- the name of the column to add
private java.lang.String addColumnToStatement(Table t, java.lang.String colName)
t
- A Table that must contain the column colNamecolName
- the name of the column to add
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 setInterfaceWithServiceTranslation()
public void outStart(Start node)
outStart
in class DepthFirstAdapter
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.2.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |