"
This property represents exceptions that occured during other properties computation. This way tools can work witout interuptions, but users will be aware the there were some exceptions.
"
Class {
	#name : #ReExceptionProperty,
	#superclass : #ReProperty,
	#instVars : [
		'stack',
		'message'
	],
	#category : #'Renraku-Critiques'
}

{ #category : #'instance creation' }
ReExceptionProperty class >> for: anEntity with: anException [
	
	^ self new
		initializeSourceAnchor: (
			ReSourceAnchor entity: anEntity);
		stack: anException signalerContext copyStack;
		message: anException description;
		yourself
		
]

{ #category : #actions }
ReExceptionProperty >> actions [

	^ { (RePropertyAction new
		   icon: (self iconNamed: #smallDebug);
		   description: 'Debug the exception';
		   action: [ :prop | 
			   (OupsDebugRequest newForContext: prop stack)
				   label: prop message;
				   submit ];
		   yourself) }
]

{ #category : #accessing }
ReExceptionProperty >> icon [
	^ self iconNamed: #exceptionIcon
]

{ #category : #accessing }
ReExceptionProperty >> message [
	^ message
]

{ #category : #accessing }
ReExceptionProperty >> message: anObject [
	message := anObject
]

{ #category : #accessing }
ReExceptionProperty >> stack [
	^ stack
]

{ #category : #accessing }
ReExceptionProperty >> stack: anObject [
	stack := anObject
]

{ #category : #accessing }
ReExceptionProperty >> title [
	^ '~Exception: [', message, ']'
]
