public class JUApplicationDefImpl extends ContainerDefImpl
PersistableDefObject.CustomizationType, PersistableDefObject.PersonalizationType| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
APPDEF_SCOPE_LOOKUP |
static java.lang.String |
APPDEF_SCOPE_SESSION |
static java.lang.String |
APPDEF_SCOPE_SITE |
static java.lang.String |
APPDEF_SCOPE_STR |
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, mXMLSectionNameJIT_PACKAGE_NAME, mDebugToSkipEmptyDocForBug24949961, mEditedProperties, mEditedPropertyExprsDEF_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_EXPRMAPmFullName, mObjName, mParent, mProperties, RES_ID_SUFFIX, RESID_SUFFIXFLAG_DIRTY, FLAG_EDITABLE, FLAG_FROM_TIP, FLAG_LOAD_BASE, FLAG_LOAD_HL_DEFS, FLAG_MAJOR_VERSION_CHANGED, FLAG_MINOR_VERSION_CHANGED, FLAG_NEW, FLAG_NEW_RECURSE, FLAG_SKIP_WRITE, 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() |
java.util.Map<java.lang.String,java.lang.String> |
getPageProperties(java.lang.String path,
BindingContext ctx)
Gets the schema-based and custom properties defined on the page map entry.
|
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.
|
void |
internalInitBindingContextFromDef(BindingContext ctx,
boolean definit) |
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) |
JUApplicationDefImpl |
lookupApplicationDef(java.lang.String appFullName,
BindingContext ctx) |
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 |
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, getSubstitutes, hasJava, hasSubstitutes, isDynamicDefinitionObject, isLazyLoading, isProject, isXMLLoaded, loadBasicInfo, loadContainees, loadFromXML, loadXMLContents, removeChild, resolveAllReferences, setHasSubstitutes, setInitialized, setIsProject, setSynchronized, setXMLName, writeContentsaddChildren, addDefImport, addExtendedDefObject, addSavedDocName, adjustPropertyMapForWrite, allocatePDef, allocatePropertyMap, allocatePropertyMapForEdits, applyDiffContents, baseIsWriteObject, beginDiffObjects, buildChildName, buildFileName, callFinishedLoading, checkEditable, checkEditableWithDefWriter, checkStructWithOld, close, createEditPDef, createFromXML, deregisterDefObject, deregisterHLDef, deregisterSessionObject, diffChildrenHLDefs, diffChildrenProperties, diffObjects, ensureDifferDetails, ensureDifferSkip, extractCustIntoPDef, findDefImport, finishedLoading, forgetChanges, getBaseDir, getBasePackage, getChildren, getDefImports, getDefManager, getDefTypeName, getDefWriter, getDefXMLElementTag, getDefXMLNameSpace, getDifferSkip, getEditedPropertiesMap, getEditedPropertyExpressionsMap, getEditedPropertyMap, getEditObject, getEditVersionsAsString, getExtendedDefObjectsInternal, getFileName, getFullDirName, getFullFileName, getHLDefMap, getIdentificationAttributeName, getMajorVersion, getMergeableFullName, getMergeableName, getMinorVersion, getOrigObject, getPropertyMap, getPropertyNamesSet, getSavedDocNames, getSessionSyncLock, getSubstitutedNames, getSyncLock, guaranteePath, hasExtendedDefObjects, includeCustomizationLayerInfo, isAutoMerged, isCreateEditPDef, isCustomizationEnabled, isCustomizationEnabled, isEditable, isFromTip, isInheritPolicyStrict, isLoadBase, isLoadHLDefs, isMajorVersionChanged, isMinorVersionChanged, isNewRecurse, isPersonalizationEnabled, isPersonalizationEnabled, isPropertyExpression, isSaveToJSON, isSkipWrite, isWriteObject, loadDefImports, loadDefObject, loadXMLContentsNoResolve, lockDefinitionContext, lookupHLDef, makeNew, mergeChanges, mergeEditedPropertiesForJSON, mergePropertyMap, objectRemoved, postSaveContents, readJSONObject, reapplyChanges, registerClass, registerDefObject, registerHLDef, registerSessionDefObject, registerSiteDefObject, reloadFromXMLContents, remove, removeAndDelete, removeDefImport, removeExtendedDefObject, removeProperty, saveJSONContents, setCustomizationEnabled, setCustomizationEnabled, setDefaultBaseDir, setDefMgr, setEditable, setEditableFlag, setEditableObject, setForRuntime, setFullName, setFullNameInternal, setLoadBase, setLoadHLDefs, setMajorVersionChanged, setNewRecurse, setOrigObject, setPersonalizationEnabled, setPersonalizationEnabled, setProperty, setPropertyExpression, setPropertyMap, setSkipWrite, setWholeDefDirty, setWholeDefNew, staticUpdateChildrenList, transferDefChangesInto, unlockDefinitionContext, updateChildObject, updateChildrenList, updateMdsKeyFromTip, verifyVersion, verifyVersionNullCheck, writeChildren, writeHeaderForNew, writeJSONContents, writeObject, writeVersionaddPropertySetName, enableUpdateCheck, getAllExtendedDefObjects, getBaseDefObject, getContainerDef, getContainerName, getDefinitionState, getDefScope, getExtendedDefObjects, getMdsKey, getMdsReference, getMdsReferenceName, getPropertySetName, getPropertySetNames, getRootBaseDefObject, isBaseDefFor, isComponentDefinition, isDeprecated, isObjectResolved, isSubtypeOf, isSuppressUpdateCheck, loadCustomProperties, loadProperties, loadPropertiesInMap, loadPropertySetNames, loadSchemaProperties, objectFound, objectInserted, resolveReferences, setBaseDefObject, setBaseDefObject, setDefScope, setMdsKey, setMdsReference, setObjectResolved, setParent, setPropertySetName, staticLoadCustomProperties, staticLoadSchemaProperties, suppressUpdateCheckgetAllProperties, getFullName, getName, getParent, getProperties, getPropertiesAsStrings, getPropertiesMap, getProperty, getProperty, getPropertyExpressionDef, getPropertyExpressionsMap, getPropertyExprEval, getRawPropertyValue, getResourcesFromBundle, getStringFromMessageBundle, hasProperty, refreshProperty, removeProperty, requiresNamePrefixedResId, resolveObjectProperty, resolvePropertyRaw, setPropertiesMap, setPropertiesMap2, setProperty, setPropertyExpressionMap, setRawPropertyValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetFullNamegetProperty, removeProperty, setPropertyprotected java.util.Map<java.lang.String,JUApplicationReference> mApplicationUsages
public static final java.lang.String APPDEF_SCOPE_STR
public static final java.lang.String APPDEF_SCOPE_SITE
public static final java.lang.String APPDEF_SCOPE_SESSION
public static final java.lang.String APPDEF_SCOPE_LOOKUP
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)
public JUApplicationDefImpl lookupApplicationDef(java.lang.String appFullName, BindingContext ctx)
@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)
ContainerDefImplgetContainerDefNames in class ContainerDefImplrecursive - Whether to get the names recursively@Restricted 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 DefinitionObjectname - 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 DefPersistableisDirty in class PersistableDefObjectpublic void setDirty(boolean isDirty)
setDirty in interface DefPersistablesetDirty in class PersistableDefObjectisDirty - If true the Object is marked Dirty.public boolean isNew()
isNew in interface DefPersistableisNew in class PersistableDefObjectpublic void setNew(boolean isNew)
setNew in interface DefPersistablesetNew in class PersistableDefObjectisNew - If true the Object is marked as new object.public java.lang.String getXMLElementTag()
getXMLElementTag in interface PersistentDefinitiongetXMLElementTag 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
public java.util.Map<java.lang.String,java.lang.String> getPageProperties(java.lang.String path,
BindingContext ctx)
null if no page identified by
the specified path is found in this app and app usages.path - the path attribute that identifies the pagectx - the binding context for the applicationpath, or null if page is not found.@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()
@Restricted 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 - public void internalInitBindingContextFromDef(BindingContext ctx, boolean definit)
ctx - definit - protected static java.lang.Class _findPersonalizerClass()
protected java.lang.Class getPersonalizerClass()
public Personalizer getPersonalizer()
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 PersistableDefObjectpublic void writeXMLContents()
writeXMLContents in class PersistableDefObjectpublic void saveXMLContents()
saveXMLContents in class PersistableDefObjectpublic DifferDetails diffContents(DiffMergeable docDef, DiffMergeable orgDef, DifferDetails difDetails)
DiffMergeableorgDef. 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)
{
<Your-def-class> orgDefImpl = (<Your-def-class>) 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 DiffMergeablediffContents in class PersistableDefObjectdocDef - 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)
DiffMergeabledifDetails 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 DiffMergeablediffChildren in class PersistableDefObjectdocDef - 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)
DiffMergeabledif 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(<XML-tag-for-Child1>);
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 DiffMergeableapplyDiffChildren in class PersistableDefObject