Package com.iizigo.java.prop
Class EditorClassReference
java.lang.Object
com.iizix.prop.GProp<String>
com.iizix.prop.StringProp
com.iizix.prop.ClassReference
com.iizigo.java.prop.EditorClassReference
- All Implemented Interfaces:
IClassReferenceListener
,EventListener
,IGProp<String>
,Cloneable
The Designer version of the Class Reference property class hold the reference to a Java class. It includes support for Java Refactoring in Eclipse as well as Reference Validation.
- Author:
- Christopher Mindus
Field Summary
Fields inherited from class com.iizix.prop.ClassReference
implementsInterface, requiredAnnotation
Fields inherited from class com.iizix.prop.GProp
GPDEBUG, PROP_ATTR_STRING_EDITOR_PROP, PROP_ATTR_STRING_ERRORED_NAME, PROP_ATTR_STRING_EXTENDS, PROP_ATTR_STRING_EXTENDS_FINAL, PROP_ATTR_STRING_EXTENDS_PRIVATE, PROP_ATTR_STRING_NULLABLE, PROP_ATTR_STRING_PRIVATE, PROP_ATTR_STRING_PRIVATE_CHANGE_EVENT, PROP_ATTR_STRING_READ_ONLY, PROP_USER_1, PROP_USER_2
Fields inherited from interface com.iizix.prop.IGProp
EQC_ERROR_IGNORE_ALL, EQC_ERROR_IGNORE_REFERENCES, EQC_IGNORE_ARRAY, EQC_IGNORE_VOLATILE_OR_EDITOR, EQC_INCLUDE_PRIVATE, EQC_SAVE_FILE, EXT_CONTAINER_EXTENDS, EXT_CONTAINER_EXTENDS_VALID, EXT_EXTENDED, EXT_FINAL, EXT_OVERRIDES, EXT_OVERRIDES_FINAL_ERR, EXT_PRIVATE
Constructor Summary
ConstructorDescriptionCreates a Class Reference property with no name and with a null value.EditorClassReference
(Atom propertyAtom) Creates a Class Reference property with the specified name with a null value.EditorClassReference
(Atom propertyAtom, String newValue) Creates a Class Reference property with the specified name and value.Method Summary
Modifier and TypeMethodDescriptionboolean
Checks if the type is defined and can be shown in an Eclipse Java Editor.clone()
Creates a clone out of this property.Gets the back-reference string.Gets the back-reference property.Gets the reference found.Get the fully qualified annotation name that the Java Class should be annotated with.Gets the fully qualified interface name that the Java Class should implement.getType()
Gets the type referenced.boolean
Checks if the ClassReference require an annotation back-reference.void
onEventSelf
(GEvent event) Event processing for Java Class Reference changed.void
onJavaChangedSWT
(JavaClass reference) Called when the source has changed and is recompiled on disk or in-memory reconcile.void
onMethodRenamed
(JavaClass reference, String oldName, String newName, String signature) Called when a method has been renamed in the class.protected void
Called when a property is disposed of.protected void
Called to perform reference resolving.void
Informs the listener that the fully qualified class name has been changed.void
Notifies the Class Reference of resolve result.void
setRequiredClassAnnotation
(String requiredAnnotation) Assigns a fully qualified annotation name that the Java Class should be annotated with.void
setRequiredInterface
(String implementsInterface) Assigns a fully qualified interface name that the Java Class should implement.boolean
showInJavaEditor
(Shell shell) Goes to the type definition.Methods inherited from class com.iizix.prop.ClassReference
equalsErrors, getClassReference, getMethod, getRuntimeClass, getRuntimeInstance, getRuntimeInstance, initializeElement, initializeProp, isPropPrivateAtCreation, onPrepare, onVirtualizationCompleted, setPropValue, verifyInterface, virtualize
Methods inherited from class com.iizix.prop.StringProp
appendPropValue, getPropValue0, getString, getString, getValueClasses, initializeValue, toNativeValue0, validatePropType
Methods inherited from class com.iizix.prop.GProp
addPropError, addPropListener, appendProp, convertPropError, dispose, equals, equals, equalsObj, equalsPropValue, equalsTree, equalValues, finalize, fine, fine, finer, finer, finest, finest, fromElementString, getAliasName, getAppSessionGyro, getAppWorker, getAtomPath, getAttribute, getChildReferencePropName, getClientSessionGyro, getClientWorker, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropName, getFullPropNameDebug, getFullPropNameDebug, getListeners, getModuleFolder, getModuleFolder, getParent, getParent, getProjectName, getPropAtom, getPropBaseReference, getPropError, getPropError, getPropErroredName, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromPath, getPropFromReference, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropReferenceTarget, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getPropValueObject, getReferencePropName, getReferencePropNameNoAssert, getRelativePropName, getRootFromName, getRootName, getRootParent, getRootParentNoAssert, getTreeLock, getVSReference, hasChanged, hasCircularReferencesError, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCommunicating, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropForEditor, isPropNullable, isPropPrivate, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropRootLoading, isPropRootTreeModificationsAllowed, isPropUSER, isPropValueTreeLockNeeded, isPropVirtualized, isPropVirtualizing, isPropVolatile, isPropVolatileOrEditorOnly, isProxied, isSibling, list, list, list, list, list, mapAliasToReference, mapAliasToReference, mapReferenceToAlias, mapReferenceToAlias, mapReferenceToProjectRelative, modifyPropValue, moveProp, moveProp, moveProp, onEvent, onPropInvalidateCache, onPropParentChanged, onPropTreeInitialized, onPropValueSet, onRemoteEvent, paramString, paramString, paramValue, post, post, removePropError, removePropListener, removePropUSER, renameProp, renameProp2, resetChangedTree, resolveRuntimeReferences, setChanged, setConstraints, setConstraints, setCreateRequiredProp, setParent, setPrivateChangeEventProp, setPrivateCreateRequiredProp, setPropError, setPropErroredName, setPropExtended, setPropExtendsFinal, setPropExtendsPrivate, setPropForEditor, setPropNullable, setPropPrivate, setPropReadOnly, setPropUSER, setPropValue, setPropValue, setPropValue, setPropValueIncognito, setPropVolatile, severe, severe, severe, shouldSerializeToXML, throwIfReadOnly, toElementString, toNativeValue, toString, toString, triggerRemoteEvent, triggerRemoteEvent, validateProp, validatePropValue, verify, warning, warning, warning
Field Details
ERROR_ID
The ID of the property error.- See Also:
Constructor Details
EditorClassReference
public EditorClassReference()Creates a Class Reference property with no name and with a null value.EditorClassReference
Creates a Class Reference property with the specified name with a null value.- Parameters:
propertyAtom
- the property atom.
EditorClassReference
Creates a Class Reference property with the specified name and value.- Parameters:
propertyAtom
- the property atom.newValue
- the new string value for the property.
Method Details
clone
Creates a clone out of this property. The cloning is overridden by the super classes in order to handle cloning of its class variables appropriately.Cloning is used for "virtualization" of a property tree in the server. Client property classes will therefore throw
CloneNotSupportedException
.Once a tree has been cloned, the change-flag is reset, and the create-flag is set. All listeners are also removed! The new cloned property is an orphan, i.e. has no parent set.
Note that the cloning process is done WITHOUT thread synchronization for performance reasons, thus no modifications should be done to the tree!
- Overrides:
clone
in classClassReference
- Returns:
- A new cloned String property.
setRequiredInterface
Assigns a fully qualified interface name that the Java Class should implement.Setting the interface name doesn't cause a property change.
getRequiredInterface
Gets the fully qualified interface name that the Java Class should implement.- Specified by:
getRequiredInterface
in interfaceIClassReferenceListener
- Returns:
- Gets the required interface name, null for none.
setRequiredClassAnnotation
Assigns a fully qualified annotation name that the Java Class should be annotated with.Setting the annotation name doesn't cause a property change.
getRequiredClassAnnotation
Get the fully qualified annotation name that the Java Class should be annotated with.- Specified by:
getRequiredClassAnnotation
in interfaceIClassReferenceListener
- Returns:
- Gets the required annotation name, null for none.
isAnnotationBackReferenceRequired
public boolean isAnnotationBackReferenceRequired()Checks if the ClassReference require an annotation back-reference.- Specified by:
isAnnotationBackReferenceRequired
in interfaceIClassReferenceListener
- Returns:
- true if the annotation is required to have a back-reference on the "ref" member value pair to the ClassReference owner.
getAnnotationBackReference
Gets the back-reference string.- Specified by:
getAnnotationBackReference
in interfaceIClassReferenceListener
getBackReferenceProperty
Gets the back-reference property.- Specified by:
getBackReferenceProperty
in interfaceIClassReferenceListener
onEventSelf
Event processing for Java Class Reference changed.- Specified by:
onEventSelf
in interfaceIGProp<String>
- Overrides:
onEventSelf
in classGProp<String>
- Parameters:
event
- The property event.
onReferenceEvent
Called to perform reference resolving. A property should override this method if it needs to perform reference resolving and validation.Subclasses override this method and only subclasses extending
PropCnr
needs to callsuper.onReferenceEvent(ResolveReferenceEvent event)
.- Overrides:
onReferenceEvent
in classGProp<String>
- Parameters:
event
- The resolve references event.
onPropDispose
protected void onPropDispose()Called when a property is disposed of.- Overrides:
onPropDispose
in classClassReference
getReference
Gets the reference found.- Returns:
- The class reference instance (in Designer it's com.iizigo.java.JavaClass), or null for none.
getType
Gets the type referenced.- Returns:
- The type referenced, or null if not found.
canShowInJavaEditor
public boolean canShowInJavaEditor()Checks if the type is defined and can be shown in an Eclipse Java Editor.- Returns:
- true if it's a class in a ".java" file, false otherwise.
showInJavaEditor
Goes to the type definition.- Parameters:
shell
- The shell of the requestor.- Returns:
- true for success, false for failure.
onResolve
Notifies the Class Reference of resolve result.- Specified by:
onResolve
in interfaceIClassReferenceListener
- Parameters:
reference
- The Class Reference.isClassFound
- Flag indicating class is found, but interface is not implemented (when true) or annotation is missing.errorMessage
- The error message, or null to clear the error.
onRename
Informs the listener that the fully qualified class name has been changed. This includes the class package as well as the name.- Specified by:
onRename
in interfaceIClassReferenceListener
- Parameters:
reference
- The Class Reference.newName
- The new fully qualified class name.
onJavaChangedSWT
Called when the source has changed and is recompiled on disk or in-memory reconcile. This method is called in the SWT thread only (in the Designer).- Specified by:
onJavaChangedSWT
in interfaceIClassReferenceListener
onMethodRenamed
Called when a method has been renamed in the class.- Specified by:
onMethodRenamed
in interfaceIClassReferenceListener
- Parameters:
reference
- The Class Reference.oldName
- Old name.newName
- New name.signature
- Signature of method as retrieved by JavaHelper.getSimpleSignature class in Designer.