public class JUApplicationDefImpl extends ContainerDefImpl
PersistableDefObject.CustomizationType, PersistableDefObject.PersonalizationType
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.String,JUApplicationReference> |
mApplicationUsages |
static java.lang.String |
PNAME_ApplicationType |
static java.lang.String |
PNAME_BasePageDefPackageName |
static java.lang.String |
PNAME_BindingClass |
static java.lang.String |
PNAME_CliApplication |
static java.lang.String |
PNAME_CustomEventDispatcher |
static java.lang.String |
PNAME_CustomPageMap |
static java.lang.String |
PNAME_ErrHandler |
static java.lang.String |
PNAME_RootAMDefName |
static java.lang.String |
PNAME_SeparateXMLFiles |
static java.lang.String |
PNAME_TYPE_APPLICATION |
static java.lang.String |
PNAME_TYPE_GENERIC |
static java.lang.String |
PNAME_TYPE_JCLIENT |
static java.lang.String |
PNAME_TYPE_PROJ |
mChildPackage, mContainees, mDefMgr, mHasJava, mHasSubstitutes, mIsProject, mJavaPackageName, mLazyLoading, mXMLFileName, mXMLLoaded, mXMLSectionName
mEditedProperties, mEditedPropertyExprs
DEF_MDS_CLIENT_KEY, DEF_SCOPE_ALL, DEF_SCOPE_PERS, DEF_SCOPE_SESSION, DEF_SCOPE_SHARED, DEF_SCOPE_SITE, DEF_SCOPE_USER, mBaseDefObject, mExtendedDefObjects, mObjectResolved, PERSDEF_MDS_CLIENT_KEY, PROPERTY_EXPRMAP
mFullName, mObjName, mParent, mProperties, RES_ID_SUFFIX, RESID_SUFFIX
XML_STATEMENT
Constructor and Description |
---|
JUApplicationDefImpl() |
JUApplicationDefImpl(java.lang.String name) |
Modifier and Type | Method and Description |
---|---|
protected static java.lang.Class |
_findPersonalizerClass() |
void |
addAppDefAndEnsureLoadedAppDef(BindingContext ctx,
java.lang.String appDefName)
this method loads the appdef
This method is for framework use only.
|
void |
applyDiffChildren(DifferDetails dif,
DiffResolver resolver)
Applies changes to children defs.
|
static JUApplicationDefImpl |
createAndLoadFromXML(DefElement xmlElement) |
protected ContainerDefImpl |
createContainerType(java.lang.String typeName) |
DCDataControl |
createRootApplication(java.util.Hashtable context,
java.lang.String name,
java.lang.Object userData,
java.lang.String dbConnectionURL,
java.util.Properties dbConnectionProps) |
DifferDetails |
diffChildren(DiffMergeable docDef,
DiffMergeable orgDef,
DifferDetails difDetails)
Performs diff of children defs.
|
DifferDetails |
diffContents(DiffMergeable docDef,
DiffMergeable orgDef,
DifferDetails difDetails)
Performs diff of scalar values.
|
static java.lang.String |
dumpSTrace(int count,
java.lang.Thread th) |
void |
ensureAppIsLoaded(java.lang.String appDefName,
BindingContext ctx) |
java.lang.String |
findAppDefNameByBindingContainerDefName(java.lang.String fullDefName,
BindingContext ctx) |
java.lang.String |
findBindingContainerIdByPath(java.lang.String path,
BindingContext ctx) |
DefinitionObject |
findDataControlIdByKey(java.lang.String key,
BindingContext ctx) |
static JUApplicationDefImpl |
findDefObject(java.lang.String name) |
static JUApplicationDefImpl |
findDefObjectNoSub(java.lang.String name) |
DCDataControlDef |
findSession(java.lang.String name) |
java.util.ArrayList |
get_bindingContainerReferenceNames() |
java.lang.String |
getApplicationClassName() |
boolean |
getAsProject() |
java.lang.String |
getBasePageDefPackageName() |
java.util.ArrayList<DCBindingContainerReference> |
getBindingContainerReferences() |
java.lang.String |
getClientType() |
protected java.util.ArrayList |
getContainerDefNames(boolean recursive)
Gets the Names of all Sub-PackageDefs in this Package and
all sub-packages recursively (optionally)
|
java.lang.String |
getCustomEventDispatcher() |
java.util.ArrayList<DCDataControlReference> |
getDataControlReferences() |
java.util.ArrayList<java.lang.String> |
getDTFactoryClassNames() |
java.lang.String |
getErrorHandlerClassName() |
java.util.Map |
getFactoriesMap() |
java.lang.String |
getIanaEncoding() |
java.lang.String |
getJdkEncoding() |
java.lang.String |
getMapValueByPath(java.lang.String path) |
java.lang.String |
getPackageName() |
java.util.Map |
getPageMap() |
Personalizer |
getPersonalizer() |
protected java.lang.Class |
getPersonalizerClass() |
java.lang.String |
getRootAMDefName() |
java.util.ArrayList |
getSessionDefNames() |
java.util.ArrayList |
getSessionDefs() |
java.lang.String |
getXMLElementTag()
Returns a piece of static info for the type of object this is invoked
upon.
|
void |
initalizeApplicationUsages(JUApplicationDefImpl appdef) |
void |
initializeBindingContext(BindingContext ctx)
For intenal use only
|
void |
initializeBindingContext(BindingContext ctx,
java.util.Map userParams)
Deprecated.
use #initializeBindingContext(BindingContext) instead.
|
boolean |
isDirty()
This method returns if an Object is modified from last save/load
|
boolean |
isIsBeingPersonalized() |
boolean |
isNew()
This method returns if this object is previously persisted.
|
protected void |
loadContainee(DefElement xmlElement) |
protected void |
loadContainees(DefElement xmlElement,
boolean sepXMLFiles) |
protected void |
loadDataControls(DefElement xmlElement) |
protected void |
loadDefinitionFactories(DefElement xmlElement) |
void |
loadFromXMLFile(DefElement xmlElement) |
void |
loadPackages() |
protected void |
loadPageDefinitionUsage(DefElement xmlElement) |
protected void |
loadPageDefinitionUsages(DefElement xmlElement) |
protected void |
loadPageMap(DefElement xmlElement) |
void |
populateContext(BindingContext ctx)
For intenal use only
|
void |
populateContext(BindingContext ctx,
java.util.Map userParams)
Deprecated.
use #populateContext(BindingContext) instead
|
void |
removeSession(java.lang.String name) |
void |
saveXMLContents() |
void |
setApplicationClassName(java.lang.String applicationClassName) |
void |
setApplicationUsages(java.util.LinkedHashMap<java.lang.String,JUApplicationReference> updatedApplicationUsages)
For internal use only
|
void |
setAsProject(boolean asProject) |
void |
setDefScope(int defScope) |
void |
setDirty(boolean isDirty)
This method marks the Object dirty
|
void |
setIanaEncoding(java.lang.String iana) |
void |
setIsBeingPersonalized(boolean isBeingPersonalized) |
void |
setJdkEncoding(java.lang.String jdkEnc) |
void |
setName(java.lang.String name)
Name this object.
|
void |
setNew(boolean isNew)
This method marks the as previously persisted.
|
void |
setPackageName(java.lang.String sPackage) |
void |
setRootAMDefName(java.lang.String rootAMDefName) |
void |
setupDefWriterFromMO(oracle.mds.core.MetadataObject mo) |
void |
syncPageMapEntry(java.lang.String path,
java.lang.String pageDefId,
java.lang.String pageDefFullName,
BindingContext ctx)
Internal: Applications should not use this class.
|
java.util.LinkedHashMap<java.lang.String,JUApplicationReference> |
updateApplicationDefinitions(BindingContext ctx)
Updates the application definitions with any changes that where made since they where loaded.
|
void |
writeXMLContents() |
addChild, addChild, findChildObject, generateUniqueChildName, getAppContainees, getChildObjectNames, getChildObjectNames, getChildObjects, hasJava, hasSubstitutes, isDynamicDefinitionObject, isLazyLoading, isProject, isXMLLoaded, loadBasicInfo, loadContainees, loadFromXML, loadXMLContents, removeChild, resolveAllReferences, setHasSubstitutes, setInitialized, setIsProject, setSynchronized, setXMLName, writeContents
addDefImport, addExtendedDefObject, addSavedDocName, adjustPropertyMapForWrite, allocatePropertyMap, allocatePropertyMapForEdits, applyDiffContents, beginDiffObjects, checkEditable, checkStructWithOld, close, createFromXML, deregisterDefObject, deregisterSessionObject, diffObjects, ensureDifferDetails, findDefImport, finishedLoading, getBaseDir, getBasePackage, getDefImports, getDefManager, getDefTypeName, getDefWriter, getDefXMLElementTag, getDefXMLNameSpace, getEditedPropertiesMap, getEditedPropertyExpressionsMap, getEditedPropertyMap, getEditObject, getEditVersionsAsString, getExtendedDefObjectsInternal, getFileName, getFullDirName, getFullFileName, getMajorVersion, getMergeableFullName, getMergeableName, getMinorVersion, getOrigObject, getPropertyMap, getSavedDocNames, getSessionSyncLock, getSubstitutedNames, getSyncLock, guaranteePath, hasExtendedDefObjects, includeCustomizationLayerInfo, isCustomizationEnabled, isCustomizationEnabled, isEditable, isFromTip, isLoadBase, isMajorVersionChanged, isMinorVersionChanged, isPersonalizationEnabled, isPersonalizationEnabled, isPropertyExpression, loadDefImports, loadDefObject, loadXMLContentsNoResolve, lockDefinitionContext, mergeChanges, mergePropertyMap, objectRemoved, reapplyChanges, registerClass, registerDefObject, registerSessionDefObject, registerSiteDefObject, remove, removeAndDelete, removeDefImport, removeExtendedDefObject, removeProperty, setCustomizationEnabled, setCustomizationEnabled, setDefaultBaseDir, setDefMgr, setEditable, setEditableFlag, setEditableObject, setFullName, setFullNameInternal, setLoadBase, setMajorVersionChanged, setOrigObject, setPersonalizationEnabled, setPersonalizationEnabled, setProperty, setPropertyExpression, setPropertyMap, staticUpdateChildrenList, unlockDefinitionContext, updateChildrenList, updateMdsKeyFromTip, verifyVersion, verifyVersionNullCheck, writeChildren, writeHeaderForNew, writeObject, writeVersion
addPropertySetName, enableUpdateCheck, getAllExtendedDefObjects, getBaseDefObject, getContainerDef, getContainerName, getDefinitionState, getDefScope, getExtendedDefObjects, getMdsKey, getMdsReference, getPropertySetName, getPropertySetNames, getRootBaseDefObject, isBaseDefFor, isComponentDefinition, isDeprecated, isObjectResolved, isSubtypeOf, isSuppressUpdateCheck, loadCustomProperties, loadProperties, loadPropertiesInMap, loadPropertySetNames, loadSchemaProperties, resolveReferences, setBaseDefObject, setBaseDefObject, setMdsKey, setMdsReference, setObjectResolved, setParent, setPropertySetName, staticLoadCustomProperties, staticLoadSchemaProperties, suppressUpdateCheck
getAllProperties, getFullName, getName, getParent, getProperties, getPropertiesAsStrings, getPropertiesMap, getProperty, getProperty, getPropertyExpressionDef, getPropertyExpressionsMap, getPropertyNamesSet, getRawPropertyValue, getResourcesFromBundle, getStringFromMessageBundle, refreshProperty, removeProperty, requiresNamePrefixedResId, resolveObjectProperty, resolvePropertyRaw, setPropertiesMap, setPropertiesMap2, setProperty
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getFullName
protected java.util.Map<java.lang.String,JUApplicationReference> mApplicationUsages
public static final java.lang.String PNAME_TYPE_GENERIC
public static final java.lang.String PNAME_TYPE_JCLIENT
public static final java.lang.String PNAME_TYPE_PROJ
public static final java.lang.String PNAME_TYPE_APPLICATION
public static final java.lang.String PNAME_BindingClass
public static final java.lang.String PNAME_RootAMDefName
public static final java.lang.String PNAME_ApplicationType
public static final java.lang.String PNAME_CliApplication
public static final java.lang.String PNAME_SeparateXMLFiles
public static final java.lang.String PNAME_ErrHandler
public static final java.lang.String PNAME_CustomEventDispatcher
public static final java.lang.String PNAME_CustomPageMap
public static final java.lang.String PNAME_BasePageDefPackageName
public JUApplicationDefImpl(java.lang.String name)
public JUApplicationDefImpl()
public void initalizeApplicationUsages(JUApplicationDefImpl appdef)
@Concealed public static JUApplicationDefImpl findDefObjectNoSub(java.lang.String name)
@Concealed public static JUApplicationDefImpl findDefObject(java.lang.String name)
@Concealed protected java.util.ArrayList getContainerDefNames(boolean recursive)
ContainerDefImpl
getContainerDefNames
in class ContainerDefImpl
recursive
- Whether to get the names recursively@Concealed public java.util.Map getPageMap()
@Concealed public java.util.Map getFactoriesMap()
@Concealed public java.util.ArrayList<java.lang.String> getDTFactoryClassNames()
@Concealed public java.lang.String getMapValueByPath(java.lang.String path)
@Concealed public DefinitionObject findDataControlIdByKey(java.lang.String key, BindingContext ctx)
@Concealed public java.lang.String findAppDefNameByBindingContainerDefName(java.lang.String fullDefName, BindingContext ctx)
public java.lang.String findBindingContainerIdByPath(java.lang.String path, BindingContext ctx)
@Concealed public static java.lang.String dumpSTrace(int count, java.lang.Thread th)
count
- th
- @Concealed public void ensureAppIsLoaded(java.lang.String appDefName, BindingContext ctx)
@Concealed public java.lang.String getRootAMDefName()
@Concealed public void setRootAMDefName(java.lang.String rootAMDefName)
@Concealed public java.lang.String getApplicationClassName()
@Concealed public void setApplicationClassName(java.lang.String applicationClassName)
@Concealed public java.lang.String getPackageName()
@Concealed public void setPackageName(java.lang.String sPackage)
public void setName(java.lang.String name)
setName
in class DefinitionObject
name
- the name to be given to this object.@Concealed public boolean getAsProject()
@Concealed public void setAsProject(boolean asProject)
@Concealed public java.util.ArrayList getSessionDefNames()
@Concealed public void loadPackages()
@Concealed public java.util.ArrayList get_bindingContainerReferenceNames()
@Concealed public java.util.ArrayList<DCBindingContainerReference> getBindingContainerReferences()
@Concealed protected ContainerDefImpl createContainerType(java.lang.String typeName)
createContainerType
in class ContainerDefImpl
@Concealed public DCDataControl createRootApplication(java.util.Hashtable context, java.lang.String name, java.lang.Object userData, java.lang.String dbConnectionURL, java.util.Properties dbConnectionProps)
@Concealed public void loadFromXMLFile(DefElement xmlElement)
loadFromXMLFile
in class ContainerDefImpl
@Concealed public java.lang.String getClientType()
@Concealed public java.lang.String getBasePageDefPackageName()
@Concealed public java.util.ArrayList getSessionDefs()
@Concealed public DCDataControlDef findSession(java.lang.String name)
@Concealed public void removeSession(java.lang.String name)
public boolean isDirty()
isDirty
in interface DefPersistable
isDirty
in class PersistableDefObject
public void setDirty(boolean isDirty)
setDirty
in interface DefPersistable
setDirty
in class PersistableDefObject
isDirty
- If true the Object is marked Dirty.public boolean isNew()
isNew
in interface DefPersistable
isNew
in class PersistableDefObject
public void setNew(boolean isNew)
setNew
in interface DefPersistable
setNew
in class PersistableDefObject
isNew
- If true the Object is marked as new object.public java.lang.String getXMLElementTag()
getXMLElementTag
in interface PersistentDefinition
getXMLElementTag
in class PersistableDefObject
@Concealed public java.lang.String getIanaEncoding()
@Concealed public void setIanaEncoding(java.lang.String iana)
@Concealed public java.lang.String getJdkEncoding()
@Concealed public void setJdkEncoding(java.lang.String jdkEnc)
public java.lang.String getErrorHandlerClassName()
public java.lang.String getCustomEventDispatcher()
@Concealed protected void loadContainee(DefElement xmlElement)
loadContainee
in class ContainerDefImpl
@Concealed protected void loadPageDefinitionUsage(DefElement xmlElement)
@Concealed public static JUApplicationDefImpl createAndLoadFromXML(DefElement xmlElement)
@Concealed protected void loadDefinitionFactories(DefElement xmlElement)
@Concealed protected void loadPageMap(DefElement xmlElement)
@Concealed protected void loadContainees(DefElement xmlElement, boolean sepXMLFiles)
loadContainees
in class ContainerDefImpl
@Concealed protected void loadDataControls(DefElement xmlElement)
@Concealed protected void loadPageDefinitionUsages(DefElement xmlElement)
@Concealed public java.util.ArrayList<DCDataControlReference> getDataControlReferences()
@Concealed public void populateContext(BindingContext ctx, java.util.Map userParams)
ctx
- userParams
- @Concealed public void populateContext(BindingContext ctx)
ctx
- userParams
- @Concealed public void initializeBindingContext(BindingContext ctx, java.util.Map userParams)
ctx
- userParams
- @Concealed public void initializeBindingContext(BindingContext ctx)
ctx
- userParams
- protected static java.lang.Class _findPersonalizerClass()
protected java.lang.Class getPersonalizerClass()
public Personalizer getPersonalizer()
public void setDefScope(int defScope)
setDefScope
in class DefinitionObject
public final void setIsBeingPersonalized(boolean isBeingPersonalized)
public final boolean isIsBeingPersonalized()
public void syncPageMapEntry(java.lang.String path, java.lang.String pageDefId, java.lang.String pageDefFullName, BindingContext ctx)
@Concealed public void addAppDefAndEnsureLoadedAppDef(BindingContext ctx, java.lang.String appDefName)
appDefName
- public java.util.LinkedHashMap<java.lang.String,JUApplicationReference> updateApplicationDefinitions(BindingContext ctx)
ctx
- public void setApplicationUsages(java.util.LinkedHashMap<java.lang.String,JUApplicationReference> updatedApplicationUsages)
updatedApplicationUsages
- public void setupDefWriterFromMO(oracle.mds.core.MetadataObject mo)
setupDefWriterFromMO
in class PersistableDefObject
public void writeXMLContents()
writeXMLContents
in class PersistableDefObject
public void saveXMLContents()
saveXMLContents
in class PersistableDefObject
public DifferDetails diffContents(DiffMergeable docDef, DiffMergeable orgDef, DifferDetails difDetails)
DiffMergeable
orgDef
. Then, help
methods on DifferBase
can be used to diff the attr values
and accumulate the details of diff in difDetails
.
Here is example code snippet:
private static final String DIFF_STRING_ELEMS[] = { "MyStringVal1", "MyStringVal2" }; private static final String DIFF_INT_ELEMS[] = { "MyIntVal", } public DifferDetails diffContents(DiffMergeable docDef, DiffMergeable orgDef, DifferDetails difDetails) {orgDefImpl = ( ) orgDef; final String editStringValues[] = { this.getMyStringVal1(), this.getMyStringVal2() }; String orgStringValues[] = null; if (orgDef != null) { String orgV[] = { orgDefImpl.getMyStringVal1(), orgDefImpl.getMyStringVal2() }; orgStringValues = orgV; } final int editIntValues[] = { this.getMyIntVal(), }; int orgIntValues[] = null; if (orgDef != null) { int orgV[] = { orgDefImpl.getMyIntVal() }; orgIntValues = orgV; } difDetails = DifferBase.diffStringArray(this, DIFF_STRING_ELEMS, editStringValues, orgStringValues, difDetails); difDetails = DifferBase.diffIntArray(this, DIFF_INT_ELEMS, editIntValues, orgIntValues, difDetails); return difDetails; }
diffContents
in interface DiffMergeable
diffContents
in class PersistableDefObject
docDef
- the document-level definitionorgDef
- the original definition. It could be
null
if the definition did not exist originallydifDetails
- the DifferDetails
that accumulate
the details of diff from the document-level (top-level) defDifferDetails
that has all the details
of diffpublic DifferDetails diffChildren(DiffMergeable docDef, DiffMergeable orgDef, DifferDetails difDetails)
DiffMergeable
difDetails
and
return it at the end.
For example, if this def has Child1 and Child2, its implementation should look something like:
public DifferDetails diffChildren(DiffMergeable docDef, DiffMergeable orgDef, DifferDetails difDetails) { difDetails = diffChildrenChild1(docDef, orgDef, difDetails); difDetails = diffChildrenChild1(docDef, orgDef, difDetails); return difDetails; }
where diffChildrenChild1()
uses DifferChildren
's
helper method diffChildrenList
to diff the child defs.
diffChildren
in interface DiffMergeable
diffChildren
in class PersistableDefObject
docDef
- the document-level definitionorgDef
- the original definition. It could be
null
if the definition did not exist originallydifDetails
- the DifferDetails
that accumulate
the details of diff from the document-level (top-level) defDifferDetails
that has all the details
of diffpublic void applyDiffChildren(DifferDetails dif, DiffResolver resolver)
DiffMergeable
dif
contains the
changes to be applied to the children. For each child def, this method
should first retrieve the diff details for the child, which is of type
DifferChildren
. Then, it should call
DifferChildren.applyDiffChanges(oracle.jbo.mom.DiffChildrenMerge, oracle.jbo.mom.DiffResolver)
to perform
the change operation.
applyChanges()
requires a
DiffChildrenMerge
object, which has the insert,
update, and remove methods. 'this'
def object must
provide implmementation of these operations.
Here is a sample:
public void applyDiffChildren(DifferDetails dif, DiffResolver resolver) { DifferChangeMap detailMap = dif.getDetailMap(); if (detailMap != null) { DifferChildren difChild1 = (DifferChildren) detailMap.getValue(); if (difVCs != null) { DiffChildrenMerge dm = new DiffChildrenMerge() { public void insertChild(Object id, Object value) { .. perform insert op for Child1 .. } public void updateChild(Object id, Object value, Object oldValue) { .. perform update op for Child1 .. } public void removeChild(Object id) { .. perform remove op for Child1 .. } }; difChild1.applyDiffChanges(dm, resolver); } // Similarly for Child2 } }
applyDiffChildren
in interface DiffMergeable
applyDiffChildren
in class PersistableDefObject