Package com.iizix.server.app.prop
Class ModuleProjectPropCnr
java.lang.Object
com.iizix.prop.GProp<GProp<?>[]>
com.iizix.prop.PropCnr
com.iizix.server.app.prop.ModuleProjectPropCnr
- All Implemented Interfaces:
EventListener
,IGProp<GProp<?>[]>
,IInitializePropMgr
,IModuleOwner
,IModuleProjectPropProvider
,IPropCnr
,Cloneable
- Direct Known Subclasses:
EditorModuleProjectPropCnr
public class ModuleProjectPropCnr extends PropCnr implements IModuleOwner, IInitializePropMgr, IModuleProjectPropProvider
The module root property container.
- Author:
- Christopher Mindus
Field Summary
Fields inherited from class com.iizix.prop.PropCnr
EMPTY, EMPTY_CLASSES, EMPTY_CNRS, EXTENDS_FRAMEWORK_ERROR_ID, nameTable
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_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 Module project property container without a name.ModuleProjectPropCnr
(Atom propertyAtom) Creates a Module project property container with a name.ModuleProjectPropCnr
(Atom propertyAtom, File developmentDir, PropMgr serverPropMgr) Creates a Module project property container with a name when loaded from the Server in Development mode.Method Summary
Modifier and TypeMethodDescriptionfinal void
assignClassLoader
(JarClassLoader classLoader) Assigns the class loader of the Module project.final ModuleProjectPropCnr
clone()
Cloning is not supported.final String
getAliasName
(GProp<?> requestor, String projectName) Gets an alias name for a project name, the alias does NOT begin with "*".final JarFilePath
getClassPathInfo
(IJarFile jar, Set<String> appModules, Set<JarFilePath> externalURLs, Set<File> externalResources, Set<String> dependentModules) Gets the information to set-up the classpath for the module.final File
Gets the directory of the Module project when running in development mode.final IJarFile
Gets the Jar file that contains the Module model or null if running in development mode.final ClassLoader
Gets the class loader of the Module project.Gets the possible languages defined in text files that can be used for the application.final String
getProjectName
(GProp<?> requestor, String alias) Gets the project name from an alias, the alias does NOT begin with "*".final GProp<?>
getPropFromReference
(GProp<?> requestor, String ref) Internal function for getPropFromReference(ref).final PropMgr
Gets the Property Manager used for communication for the root container.Gets the Push Notification properties.Gets the Progressive Web App (PWA) properties.final ModuleProjectPropCnr
getRootFromName
(GProp<?> requestor, String module) Gets the module root for a name.final String
getRootName
(GProp<?> requestor) Gets and checks if this container is the root.final ModuleProjectSettings
Gets the settings.final void
initialize
(PropMgr propMgr) Initializes the Property Manager instance for the property.final boolean
Verifies if the tree is valid for reference creation.final boolean
Checks if this is a root property container.final boolean
Checks if the root property container is currently loading properties from Jar or files to avoid reference checking until the end.protected boolean
Checking if a root property is allowed to be modified even after loading has completed.final boolean
Returns if the application requires user authentication every time it's started.protected final void
Property disposed of.void
Call to set the project as loaded.Methods inherited from class com.iizix.prop.PropCnr
__transferChildProps, addPredefinedProps, addProp, addProp, addProp2, addProp2, appendPropValue, canRequestFocus, completeVirtualize, containsProp, containsProp, convertLoadedProp, couldRequestFocusIfVirtualized, createCopyOfAtom, createUniqueAtom, createUniqueAtom, createUniqueAtom, createVSReference, doPropEqualsArrayValues, enablePropCommunication, enablePropHashMap, equalsTree, equalsTree, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getBool, getBool, getBool, getBool, getChildPropError, getChildPropError, getChildPropErrorSeverity, getChildPropErrorSeverity, getErrorsProp, getExtendsContainer, getExtendsError, getExtendsName, getExtendsOverride, getExtendsPossibleClasses, getFirstProp, getFirstProp, getFocusEngine, getInt, getInt, getInt, getInt, getLong, getLong, getLong, getLong, getNumber, getNumber, getNumber, getNumber, getPossibleChildren, getPredefinedProps, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getPropBaseReference, getPropCnr, getPropCount, getPropCount, getPropIndex, getPropIndex, getPropIndexes, getProps, getProps, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue0, getRetargetedVerifyContainer, getString, getString, getString, getString, getValueClasses, getVSReference, hasFocus, hasSendData, initializeElement, initializeExtendsFramework, initializeProp, initializeValue, initPropCnr, insertProp, insertProp2, isChild, isExtendsOverriden, isExtendsPropertyValid, isExtendsRoot, isPropAddRemoveAllowed, isPropCommunicating, isPropExtended, isSibling, list, list, logPropNotFound, maybeAddProp, onInsertProp, onPropRemoved, onPropTreeInitialized, onReferenceEvent, onVirtualContainerCreated, onVirtualizationCompleted, paramString, prepare, removeAllProps, removeAllProps2, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, reorderProps, replaceProps, requestFocus, requestFocus, requestFocusEx, requestFocusEx, resolveReferences, resolveRuntimeReferences, setBool, setBool, setBool, setBool, setCreateRequiredProp, setExtendsName, setExtendsOverride, setInt, setInt, setInt, setLong, setLong, setLong, setLong, setNumber, setNumber, setNumber, setNumber, setProp, setProp, setProp, setProp2, setProp2, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setString, setString, setString, setString, shouldCreateProps, shouldSerializeToXML, toElementString, toNativeValue0, usePropHashMap, usesPropIndex, validateChildPropInValue, validateClassInstances, validatePropType, validatePropValue, verify, verifyInternalUseOnly, verifyTree, virtualize
Methods inherited from class com.iizix.prop.GProp
addPropError, addPropListener, convertPropError, dispose, equals, equals, equalsErrors, equalsObj, equalsPropValue, equalValues, extendsClone, finalize, fine, fine, finer, finer, finest, finest, fromElementString, getAppSessionGyro, getAppWorker, getAtomPath, getAttribute, getChildReferencePropName, getClientSessionGyro, getClientWorker, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropName, getFullPropNameDebug, getFullPropNameDebug, getListeners, getModuleFolder, getModuleFolder, getParent, getParent, getPropAtom, getPropError, getPropError, getPropErroredName, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromPath, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropReferenceTarget, getPropTreeErrorSeverity, getPropValue, getPropValue, getPropValueObject, getReferencePropName, getReferencePropNameNoAssert, getRelativePropName, getRootParent, getRootParentNoAssert, getTreeLock, hasChanged, hasCircularReferencesError, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropForEditor, isPropNullable, isPropPrivate, isPropPrivateAtCreation, isPropReadOnly, isPropUSER, isPropValueTreeLockNeeded, isPropVirtualized, isPropVirtualizing, isPropVolatile, isPropVolatileOrEditorOnly, isProxied, list, list, list, mapAliasToReference, mapAliasToReference, mapReferenceToAlias, mapReferenceToAlias, mapReferenceToProjectRelative, modifyPropValue, moveProp, moveProp, moveProp, onEvent, onEventSelf, onPrepare, onPropInvalidateCache, onPropParentChanged, onPropValueSet, onRemoteEvent, paramString, paramValue, post, post, removePropError, removePropListener, removePropUSER, renameProp, renameProp2, resetChangedTree, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPrivateCreateRequiredProp, setPropError, setPropErroredName, setPropExtended, setPropExtendsFinal, setPropExtendsPrivate, setPropForEditor, setPropNullable, setPropPrivate, setPropReadOnly, setPropUSER, setPropValue, setPropValue, setPropValue, setPropValueIncognito, setPropVolatile, severe, severe, severe, shouldSerializeToXML, throwIfReadOnly, toNativeValue, toString, toString, triggerRemoteEvent, triggerRemoteEvent, validateProp, warning, warning, warning
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.iizix.prop.IGProp
addPropError, addPropListener, dispose, equals, fine, fine, finer, finer, finest, finest, fromElementString, getAppSessionGyro, getAtomPath, getClientSessionGyro, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropNameDebug, getModuleFolder, getModuleFolder, getParent, getParent, getPropAtom, getPropError, getPropError, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropTreeErrorSeverity, getPropValue, getPropValue, getReferencePropName, getRelativePropName, getRootParent, getTreeLock, hasChanged, hasCircularReferencesError, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropNullable, isPropPrivate, isPropReadOnly, isPropVirtualized, list, list, list, mapAliasToReference, mapReferenceToAlias, mapReferenceToProjectRelative, moveProp, moveProp, moveProp, onEvent, onEventSelf, onRemoteEvent, removePropError, removePropListener, renameProp, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPropError, setPropExtendsFinal, setPropExtendsPrivate, setPropNullable, setPropPrivate, setPropReadOnly, setPropValue, setPropValue, severe, severe, severe, toNativeValue, triggerRemoteEvent, triggerRemoteEvent, validateProp, warning, warning, warning
Methods inherited from interface com.iizix.prop.IPropCnr
canRequestFocus, canRequestFocus, couldRequestFocusIfVirtualized, couldRequestFocusIfVirtualized
Constructor Details
ModuleProjectPropCnr
public ModuleProjectPropCnr()Creates a Module project property container without a name.This constructor sets the project in loading mode, so a call to
setLoaded()
is required followed by a validation of the references to complete the loading process.ModuleProjectPropCnr
Creates a Module project property container with a name.This constructor sets the project in loading mode, so a call to
setLoaded()
is required followed by a validation of the references to complete the loading process.- Parameters:
propertyAtom
- The property atom.
ModuleProjectPropCnr
Creates a Module project property container with a name when loaded from the Server in Development mode.This constructor sets the project in loading mode, so a call to
setLoaded()
is required followed by a validation of the references to complete the loading process.- Parameters:
propertyAtom
- The property atom.developmentDir
- The development directory.serverPropMgr
- The server property manager.
Method Details
setLoaded
Call to set the project as loaded. Do not call this method, the framework will do so.- Throws:
SecurityException
- In case caller is not allowed to call this method.
onPropDispose
protected final void onPropDispose()Property disposed of. This will close any open class loaders.- Overrides:
onPropDispose
in classPropCnr
initialize
Initializes the Property Manager instance for the property.- Specified by:
initialize
in interfaceIInitializePropMgr
- Parameters:
propMgr
- The Property Manager.
getJarFile
Gets the Jar file that contains the Module model or null if running in development mode.- Returns:
- The Jar file or null when running in development mode.
- Throws:
NullPointerException
- When not in the server running mode.
getDevelopmentDirectory
Gets the directory of the Module project when running in development mode.- Returns:
- The directory, or null if not in development mode.
getClassPathInfo
public final JarFilePath getClassPathInfo(IJarFile jar, Set<String> appModules, Set<JarFilePath> externalURLs, Set<File> externalResources, Set<String> dependentModules) throws IOException Gets the information to set-up the classpath for the module.- Parameters:
jar
- The Jar file, null when in development mode.appModules
- The set of all app modules used in this app.externalURLs
- Set of URL's that are filled in and required for the module project, filled in by this method.externalResources
- Set of external resources that must be watched by hot-deploy for changes, filled in by this method.dependentModules
- Set of modules that this module depends on, filled in by this method.- Returns:
- The JarFilePath for the module's classes.
- Throws:
IOException
clone
Cloning is not supported.- Overrides:
clone
in classPropCnr
- Throws:
CloneNotSupportedException
- Always!
getSettings
Gets the settings.isUserAuthenticationAlwaysRequired
public final boolean isUserAuthenticationAlwaysRequired()Returns if the application requires user authentication every time it's started.- Returns:
- true for user authentication always required, by password or fingerprint.
isPropRoot
public final boolean isPropRoot()Checks if this is a root property container.- Specified by:
isPropRoot
in interfaceIGProp<GProp<?>[]>
- Overrides:
isPropRoot
in classGProp<GProp<?>[]>
- Returns:
- true, always.
isPropRootLoading
public final boolean isPropRootLoading()Checks if the root property container is currently loading properties from Jar or files to avoid reference checking until the end.- Overrides:
isPropRootLoading
in classGProp<GProp<?>[]>
- Returns:
- The loading flag, always
false
unless overridden by the real root property that handles loading.
isPropRootTreeModificationsAllowed
protected boolean isPropRootTreeModificationsAllowed()Checking if a root property is allowed to be modified even after loading has completed.- Overrides:
isPropRootTreeModificationsAllowed
in classGProp<GProp<?>[]>
- Returns:
- Flag indicating that the tree of properties below this container can be modified.
isPropReferenceTreeValid
public final boolean isPropReferenceTreeValid()Verifies if the tree is valid for reference creation. This method is typically overridden in a root property that has a Property Manager owner that in turn is checked for a particular configuration (e.g. Client-related references such as LabelForReference that does not create references when communicating).- Specified by:
isPropReferenceTreeValid
in interfaceIGProp<GProp<?>[]>
- Overrides:
isPropReferenceTreeValid
in classGProp<GProp<?>[]>
- Returns:
- true if the root property manager is found, false otherwise.
getPropRootPropMgr
Gets the Property Manager used for communication for the root container. If this is not the root container, the parent function is called upwards in tree.- Specified by:
getPropRootPropMgr
in interfaceIGProp<GProp<?>[]>
- Overrides:
getPropRootPropMgr
in classGProp<GProp<?>[]>
- Returns:
- The Server Property Manager.
getRootName
Gets and checks if this container is the root. The name returned is in the Designer"module:"
.- Overrides:
getRootName
in classGProp<GProp<?>[]>
- Parameters:
requestor
- The requestor property.- Returns:
- The name of the project followed by ':'.
getRootFromName
Gets the module root for a name. As this is the Designer, the module is the project.- Specified by:
getRootFromName
in interfaceIModuleProjectPropProvider
- Overrides:
getRootFromName
in classGProp<GProp<?>[]>
- Parameters:
requestor
- The requestor property.module
- The module name (without colon), i.e. the project name in the Designer.- Returns:
- The root property container, or null if the module name is not found.
getProjectName
Gets the project name from an alias, the alias does NOT begin with "*".- Specified by:
getProjectName
in interfaceIModuleProjectPropProvider
- Overrides:
getProjectName
in classGProp<GProp<?>[]>
- Parameters:
requestor
- The requestor property.alias
- The alias name.- Returns:
- The project name for the alias, or null if not found.
getAliasName
Gets an alias name for a project name, the alias does NOT begin with "*".- Overrides:
getAliasName
in classGProp<GProp<?>[]>
- Parameters:
requestor
- The requestor property.projectName
- The project name (without ending ':').- Returns:
- The alias name without leading '*' for the project name, or null if not found.
getPropFromReference
Internal function for getPropFromReference(ref).Gets a property from a reference name. This can be called from any property in the property tree, and will direct the request to the root property.
- Overrides:
getPropFromReference
in classGProp<GProp<?>[]>
- Parameters:
requestor
- The requestor property.ref
- The reference string.- Returns:
- The property with the reference in question, or null if not found.
assignClassLoader
Assigns the class loader of the Module project.- Parameters:
classLoader
- The class loader.- Throws:
IllegalStateException
- If the class loader is already created.
getModuleClassLoader
Gets the class loader of the Module project.- Specified by:
getModuleClassLoader
in interfaceIModuleOwner
- Returns:
- A ClassLoader for the user classes.
getPossibleLanguages
Gets the possible languages defined in text files that can be used for the application.- Returns:
- A cached read-only list of possible languages.
getPushProps
Gets the Push Notification properties.- Returns:
- The Push Notifications property container, or
null
for none.
getPWAProps
Gets the Progressive Web App (PWA) properties.- Returns:
- The Progressive Web App property container, or
null
for none.