24#ifndef DRC_RE_BASE_CONSTRAINT_DATA_H_
25#define DRC_RE_BASE_CONSTRAINT_DATA_H_
140 if( aRuleName.IsEmpty() )
141 return wxString( wxS(
"rule" ) );
144 result.reserve( aRuleName.length() );
146 for( wxUniChar c : aRuleName )
152 else if( wxIsalnum( c ) || c ==
'_' || c ==
'-' || c ==
'.' )
177 wxString
result( aValue );
179 if( !
result.Contains(
'.' ) )
185 if(
result.Last() ==
'.' )
193 wxString formatted = wxString::FromCDouble( aValue, aPrecision );
198 const std::vector<wxString>& aConstraintClauses )
const
203 if( !aContext.
comment.IsEmpty() )
205 wxArrayString lines = wxSplit( aContext.
comment,
'\n',
'\0' );
207 for(
const wxString& line : lines )
212 rule << wxS(
"\t# " ) << line << wxS(
"\n" );
217 rule << wxS(
"\t" ) << aContext.
layerClause << wxS(
"\n" );
219 for(
const wxString& clause : aConstraintClauses )
221 if( clause.IsEmpty() )
224 rule << wxS(
"\t" ) << clause << wxS(
"\n" );
BITMAPS
A list of all bitmap identifiers.
wxString GetConstraintCode() const
virtual VALIDATION_RESULT Validate() const
Validates the constraint data.
void SetConstraintCode(wxString aCode)
wxString m_layerSource
Original layer text: "inner", "outer", or layer name.
static wxString quoteString(const wxString &aCondition)
DRC_RE_BASE_CONSTRAINT_DATA(int aId, int aParentId, wxString aRuleName)
static wxString formatDouble(double aValue, int aPrecision=6)
void SetLayers(std::vector< PCB_LAYER_ID > aLayers)
void SetGeneratedRule(const wxString &aRule)
virtual ~DRC_RE_BASE_CONSTRAINT_DATA()=default
SEVERITY GetSeverity() const
virtual std::vector< wxString > GetConstraintClauses(const RULE_GENERATION_CONTEXT &aContext) const
Returns just the constraint clauses without the rule wrapper.
wxString m_constraintCode
void SetWasEdited(bool aEdited)
virtual std::vector< DRC_RE_FIELD_POSITION > GetFieldPositions() const
Returns the field positions for controls overlaid on the constraint bitmap.
wxString buildRule(const RULE_GENERATION_CONTEXT &aContext, const std::vector< wxString > &aConstraintClauses) const
wxString GetLayerSource()
static wxString trimTrailingZeros(const wxString &aValue)
void SetLayerSource(wxString aSource)
std::vector< PCB_LAYER_ID > m_layers
wxString GetRuleCondition()
void SetSeverity(SEVERITY aSeverity)
static wxString sanitizeRuleName(const wxString &aRuleName)
Sanitize a rule name for use in S-expression output.
virtual BITMAPS GetOverlayBitmap() const
Returns the bitmap to use for the overlay panel background.
void CopyFrom(const ICopyable &aSource) override
wxString m_originalRuleText
wxString GetOriginalRuleText() const
virtual wxString GenerateRule(const RULE_GENERATION_CONTEXT &aContext)
void SetOriginalRuleText(const wxString &aText)
void SetRuleCondition(wxString aRuleCondition)
std::vector< PCB_LAYER_ID > GetLayers()
wxString GetGeneratedRule() const
DRC_RE_BASE_CONSTRAINT_DATA()=default
Abstract interface class to enable polymorphic copying between objects.
RULE_EDITOR_DATA_BASE()=default
void CopyFrom(const ICopyable &aSource) override
Implementation of the polymorphic CopyFrom method.
wxString EscapeString(const wxString &aSource, ESCAPE_CONTEXT aContext)
The Escape/Unescape routines use HTML-entity-reference-style encoding to handle characters which are:...
wxString conditionExpression
Result of a validation operation.
wxString result
Test unit parsing edge cases and error handling.