String packedInfo = getMarker().getAttribute( IDroolsDebugConstants.DRL_RULES, "");
return unpackRuleMapping( packedInfo );
}
public void setJavaBreakpointProperties() throws CoreException {
IMarker marker = getMarker();
int drlLineNumber = getDRLLineNumber();
if ( marker.exists() ) {
try {
DRLInfo drlInfo = DroolsEclipsePlugin.getDefault().parseResource( marker.getResource(), true );
RuleInfo[] ruleInfos = drlInfo.getRuleInfos();
StringBuffer rb = new StringBuffer();
for (int i=0;i<ruleInfos.length; i++) {
int line = ruleInfos[i].getConsequenceDrlLineNumber();
String ruleid = ruleInfos[i].getClassName()+":"+line;
rb.append(ruleid);
if (i<ruleInfos.length-1) {
rb.append(";");
}
}
marker.setAttribute( IDroolsDebugConstants.DRL_RULES, rb.toString());
marker.setAttribute( TYPE_NAME, getRuleClassName( drlInfo, marker.getResource().toString(), drlLineNumber ) );
int ruleLineNumber = getRuleLineNumber( drlInfo, marker.getResource().toString(), drlLineNumber );
marker.setAttribute( IMarker.LINE_NUMBER, ruleLineNumber );
marker.setAttribute( DIALECT, getDialect( drlInfo, drlLineNumber ) );
} catch ( Throwable t ) {
throw new CoreException( new Status( IStatus.ERROR, DroolsEclipsePlugin.getUniqueIdentifier(), 0,
"Cannot determine ruleInfo " + marker.getResource() + " " + drlLineNumber, t ) );
}
}
}