org.drools.verifier.report.components.VerifierMessage Maven / Gradle / Ivy
/*
* Copyright 2010 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.verifier.report.components;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
public class VerifierMessage extends VerifierMessageBase {
private static final long serialVersionUID = 510l;
protected final Collection causes;
public VerifierMessage(Map impactedRules,
Severity severity,
MessageType messageType,
Cause faulty,
String message,
Collection causes) {
super( impactedRules,
severity,
messageType,
faulty,
message );
this.causes = causes;
}
public VerifierMessage(Map impactedRules,
Severity severity,
MessageType messageType,
Cause faulty,
String message,
Cause cause) {
super( impactedRules,
severity,
messageType,
faulty,
message );
Collection causes = new ArrayList();
causes.add( cause );
this.causes = causes;
}
public VerifierMessage(Map impactedRules,
Severity severity,
MessageType messageType,
Cause faulty,
String message) {
super( impactedRules,
severity,
messageType,
faulty,
message );
this.causes = Collections.emptyList();
}
public Collection getCauses() {
return causes;
}
@Override
public String toString() {
StringBuffer str = new StringBuffer( severity.getSingular() );
str.append( " id = " );
str.append( id );
str.append( ":\n" );
if ( !getImpactedRules().isEmpty() ) {
str.append( "Impacted rules:\n" );
for ( String ruleName : getImpactedRules().values() ) {
str.append( " -" + ruleName + "\n" );
}
}
if ( faulty != null ) {
str.append( "faulty : " );
str.append( faulty );
str.append( "\n" );
}
str.append( message );
str.append( " \n\tCause trace: \n" );
str.append( printCauses( 8,
causes ) );
return str.toString();
}
private StringBuffer printCauses(int spaces,
Collection causes) {
StringBuffer buffer = new StringBuffer();
for ( Cause cause : causes ) {
for ( int i = 0; i < spaces; i++ ) {
buffer.append( " " );
}
buffer.append( cause.toString() );
buffer.append( "\n" );
Collection childCauses = cause.getCauses();
if ( childCauses == null ) {
System.out.println( cause );
}
if ( !childCauses.isEmpty() ) {
buffer.append( printCauses( spaces * 2,
childCauses ) );
}
}
return buffer;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy