Skip to content
Snippets Groups Projects
Commit 35b4816e authored by Dominique Marcadet's avatar Dominique Marcadet
Browse files

Merge branch '16-give-option-to-output-messages-in-a-file' into 'master'

Resolve "give option to output messages in a file"

Closes #16

See merge request RiseClipseGroup/RiseClipseValidator_SCL2003!16
parents 75434774 340e36f3
No related branches found
No related tags found
1 merge request!16Resolve "give option to output messages in a file"
Pipeline #1287 passed
...@@ -160,34 +160,43 @@ public class ResultPane extends JPanel implements IRiseClipseConsole, ActionList ...@@ -160,34 +160,43 @@ public class ResultPane extends JPanel implements IRiseClipseConsole, ActionList
return IRiseClipseConsole.VERBOSE_LEVEL; return IRiseClipseConsole.VERBOSE_LEVEL;
} }
/**
* Utility to create a String by concatenation of Object
*/
private String toString( Object... objects ) {
StringBuilder s = new StringBuilder();
for( int i = 0; i < objects.length; ++i ) s.append( objects[i].toString() );
return s.toString();
}
@Override @Override
public void verbose( Object o ) { public void verbose( Object... o ) {
levels.add( IRiseClipseConsole.VERBOSE_LEVEL ); levels.add( IRiseClipseConsole.VERBOSE_LEVEL );
messages.add( o.toString() ); messages.add( toString( o ));
} }
@Override @Override
public void info( Object o ) { public void info( Object... o ) {
levels.add( IRiseClipseConsole.INFO_LEVEL ); levels.add( IRiseClipseConsole.INFO_LEVEL );
messages.add( o.toString() ); messages.add( toString( o ));
} }
@Override @Override
public void warning( Object o ) { public void warning( Object... o ) {
levels.add( IRiseClipseConsole.WARNING_LEVEL ); levels.add( IRiseClipseConsole.WARNING_LEVEL );
messages.add( o.toString() ); messages.add( toString( o ));
} }
@Override @Override
public void error( Object o ) { public void error( Object... o ) {
levels.add( IRiseClipseConsole.ERROR_LEVEL ); levels.add( IRiseClipseConsole.ERROR_LEVEL );
messages.add( o.toString() ); messages.add( toString( o ));
} }
@Override @Override
public void fatal( Object o ) { public void fatal( Object... o ) {
levels.add( IRiseClipseConsole.FATAL_LEVEL ); levels.add( IRiseClipseConsole.FATAL_LEVEL );
messages.add( o.toString() ); messages.add( toString( o ));
} }
@Override @Override
......
...@@ -30,6 +30,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.scl.provider.SclItemProviderAd ...@@ -30,6 +30,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.scl.provider.SclItemProviderAd
import fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities.SclModelLoader; import fr.centralesupelec.edf.riseclipse.iec61850.scl.utilities.SclModelLoader;
import fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.nsd.NsdValidator; import fr.centralesupelec.edf.riseclipse.iec61850.scl.validator.nsd.NsdValidator;
import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole; import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
import fr.centralesupelec.edf.riseclipse.util.FileRiseClipseConsole;
import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
import fr.centralesupelec.edf.riseclipse.util.RiseClipseFatalException; import fr.centralesupelec.edf.riseclipse.util.RiseClipseFatalException;
import fr.centralesupelec.edf.riseclipse.util.TextRiseClipseConsole; import fr.centralesupelec.edf.riseclipse.util.TextRiseClipseConsole;
...@@ -77,7 +78,7 @@ public class RiseClipseValidatorSCL { ...@@ -77,7 +78,7 @@ public class RiseClipseValidatorSCL {
console.setLevel( IRiseClipseConsole.INFO_LEVEL ); console.setLevel( IRiseClipseConsole.INFO_LEVEL );
console.info( "java -jar RiseClipseValidatorSCL.jar --help" ); console.info( "java -jar RiseClipseValidatorSCL.jar --help" );
console.info( "java -jar RiseClipseValidatorSCL.jar [--verbose | --info | --warning | --error] [--make-explicit-links] (<oclFile> | <nsdFile> | <sclFile>)+" ); console.info( "java -jar RiseClipseValidatorSCL.jar [--verbose | --info | --warning | --error] [--output <file>] [--make-explicit-links] (<oclFile> | <nsdFile> | <sclFile>)+" );
console.info( "Files ending with \".ocl\" are considered OCL files, " console.info( "Files ending with \".ocl\" are considered OCL files, "
+ "files ending with \".nsd\" are considered NS files, " + "files ending with \".nsd\" are considered NS files, "
+ "files ending with \".snsd\" are considered ServiceNS files, " + "files ending with \".snsd\" are considered ServiceNS files, "
...@@ -106,6 +107,8 @@ public class RiseClipseValidatorSCL { ...@@ -106,6 +107,8 @@ public class RiseClipseValidatorSCL {
console.info( "\t--warning" ); console.info( "\t--warning" );
console.info( "\t--error" ); console.info( "\t--error" );
console.info( "\t\tThe amount of messages displayed is chosen according to this option, default is --warning." ); console.info( "\t\tThe amount of messages displayed is chosen according to this option, default is --warning." );
console.info( "\t--output <file>" );
console.info( "\t\tmessages are outputed in the given file" );
console.info( "\t--use-color" ); console.info( "\t--use-color" );
console.info( "\t\tcolors (using ANSI escape sequences) are used on message prefixes." ); console.info( "\t\tcolors (using ANSI escape sequences) are used on message prefixes." );
console.info( "\t--make-explicit-links" ); console.info( "\t--make-explicit-links" );
...@@ -126,6 +129,7 @@ public class RiseClipseValidatorSCL { ...@@ -126,6 +129,7 @@ public class RiseClipseValidatorSCL {
usage(); usage();
} }
String outputFile = null;
boolean makeExplicitLinks = false; boolean makeExplicitLinks = false;
boolean useColor = false; boolean useColor = false;
boolean displayCopyright = true; boolean displayCopyright = true;
...@@ -152,6 +156,10 @@ public class RiseClipseValidatorSCL { ...@@ -152,6 +156,10 @@ public class RiseClipseValidatorSCL {
else if( "--error".equals( args[i] ) ) { else if( "--error".equals( args[i] ) ) {
consoleLevel = IRiseClipseConsole.ERROR_LEVEL; consoleLevel = IRiseClipseConsole.ERROR_LEVEL;
} }
else if( "--output".equals( args[i] ) ) {
if( ++i < args.length ) outputFile = args[i];
else usage();
}
else if( "--make-explicit-links".equals( args[i] ) ) { else if( "--make-explicit-links".equals( args[i] ) ) {
makeExplicitLinks = true; makeExplicitLinks = true;
} }
...@@ -174,7 +182,7 @@ public class RiseClipseValidatorSCL { ...@@ -174,7 +182,7 @@ public class RiseClipseValidatorSCL {
} }
} }
IRiseClipseConsole console = new TextRiseClipseConsole( useColor ); IRiseClipseConsole console = ( outputFile == null ) ? new TextRiseClipseConsole( useColor ) : new FileRiseClipseConsole( outputFile );
AbstractRiseClipseConsole.changeConsole( console ); AbstractRiseClipseConsole.changeConsole( console );
console.setLevel( consoleLevel ); console.setLevel( consoleLevel );
...@@ -298,7 +306,7 @@ public class RiseClipseValidatorSCL { ...@@ -298,7 +306,7 @@ public class RiseClipseValidatorSCL {
console.info( "Web site:" ); console.info( "Web site:" );
console.info( " http://wdi.supelec.fr/software/RiseClipse/" ); console.info( " http://wdi.supelec.fr/software/RiseClipse/" );
console.info( "" ); console.info( "" );
console.info( "RiseClipseValidatorSCL version: 1.1.0 a7 (5 June 2019)" ); console.info( "RiseClipseValidatorSCL version: 1.1.0 a9 (28 June 2019)" );
console.info( "" ); console.info( "" );
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment