public class AttributeDefImpl extends DefObject implements AttributeDef, AttributeHints, ResourceBundleOwner, ValidationManager, ExprValueSupplier, ComponentOperationsManager
AttributeDef
interface in the middle tier server.
The main function of this class is to describe an attribute in
an Entity Object or View Object.
For each Entity attribute (as well as for each View Object attribute), there is a get method to get its value and the set method to set its value. Entity Objects can have the following kinds of attributes:
If you use the Entity Object wizard in the Business Components for Java Design Time tool to create an Entity Object based on an existing table, a persistent Entity attribute is created for each table column. Later, if you change the table, you need to manually change the attribute.
Note that for a View Object attribute, there is a separate class,
ViewAttributeDefImpl
, that
extends AttributeDefImpl.
The AttributeDefImpl class has static methods to create
AttributeDefImpl instances from the Entity XML file.
These instances can also be created programmatically.
For example, the method
addDynamicAttribute
creates a dynamic attribute (AttributeDefImpl) on
the View Object.
Advanced users can provide their own implementation of
EntityDefImpl
(by subclassing EntityDefImpl). Within it, they can
create their own AttributeDefImpl. However subclasses cannot directly
access protected member variables of this class. These are protected only
for api compatibility reasons and may be renamed, removed or moved out to another
object for performance and/or memory considerations. Use accessor methods
to get to the values of these protected members.
This class will try to detect circular dependencies but may not always succeed. For example, if A depends on B (meaning that the backward dependency of A is B), and B depends C, then C depends on A is a circular dependency. The rutime code attempts to detect circular dependencies by throwing a GraphCycleException, but if it cannot, then the behavior of the program is unpredictable, though probably there will be an infinite loop and the program will hang. The design time code attempts to prevent circular dependencies.
new AttributeDefImpl(...);
PersistableDefObject.CustomizationType, PersistableDefObject.PersonalizationType
AttributeDef.AttributeStorageEnum
AttributeHints.ControlType
Modifier and Type | Field and Description |
---|---|
static byte |
ATTR_LOAD_BULK
Indicates that while retrieving data for this attribute from the query
result, data for other
attributes were bulk-retrieved as well.
|
static byte |
ATTR_LOAD_EACH
Indicates that the data for this attribute was retrieved from the query result.
|
static byte |
ATTR_LOAD_SKIP
Indicates that this attribute should be skipped; that is,
its data was bulk-retrieved by another attribute
from the query result.
|
static byte |
EFFECTIVE_DATE_TYPE_END
An attribute that is defined as an effective end date
|
static byte |
EFFECTIVE_DATE_TYPE_NONE
An attribute that is not defined as an effective start or end date
|
static byte |
EFFECTIVE_DATE_TYPE_START
An attribute that is defined as an effective start date
|
static byte |
HISTORY_CREATE_DATE
An attribute that is defined as a create_date history attribute
|
static byte |
HISTORY_CREATE_USER
An attribute that is defined as a create_user history attribute
|
static byte |
HISTORY_MODIFY_DATE
An attribute that is defined as a modify_date history attribute
|
static byte |
HISTORY_MODIFY_USER
An attribute that is defined as a modifiy_user history attribute
|
static byte |
HISTORY_MODIFY_VERSION
An attribute that is defined as a modifiy_version history attribute
|
static byte |
HISTORY_NOT_DEFINED
An attribute that is not defined as a history attribute
|
protected byte |
mAttrLoad
Deprecated.
for internal framework use only.
Value for the attribute's load value.
|
protected boolean |
mBCheckedForSIF
Deprecated.
for internal framework use only.
|
protected boolean |
mBCheckSIFCtrlHints
Deprecated.
for internal framework use only.
|
protected java.lang.String |
mColumnName
Deprecated.
for internal framework use only.
The database column name for the attribute.
|
protected boolean |
mDataSecurity
Deprecated.
for internal framework use only.
|
protected RowDef |
mDef
Deprecated.
for internal framework use only.
Back Pointer to Def Object where the Attribute belongs.
|
protected java.lang.Object |
mDefaultValue
Deprecated.
for internal framework use only.
The default value of the attribute.
|
protected boolean |
mDiscrColumn
Deprecated.
for internal framework use only.
Value determines whether the attribute is discriminator column.
|
protected java.lang.String |
mDomainName
Deprecated.
for internal framework use only.
Domain name for this attribute if it's type is a generated domain
|
protected byte |
mEffectiveDateType
Deprecated.
for internal framework use only.
|
protected java.lang.Object |
mElemFactory
Deprecated.
for internal framework use only.
|
protected java.lang.Class |
mElemType
Deprecated.
for internal framework use only.
Identifies the Java Type Object for this element. Used with VARRAYs.
|
protected byte |
mHistoryKind
Deprecated.
for internal framework use only.
|
protected int |
mIndex
Deprecated.
for internal framework use only.
Index in the Table.
|
protected boolean |
mIsEffectiveDateSequence
Deprecated.
for internal framework use only.
|
protected boolean |
mIsEffectiveDateSequenceFlag
Deprecated.
for internal framework use only.
|
protected java.lang.Class |
mJavaType
Deprecated.
for internal framework use only.
The Java Type Object for this attribute.
|
protected byte |
mKind
Deprecated.
for internal framework use only.
Value for the Attribute's "kind"; for example, Transient, Dynamic, etc.
|
protected boolean |
mMandatory
Deprecated.
for internal framework use only.
Value determines whether the attribute allows null values.
|
protected boolean |
mNotNull
Deprecated.
for internal framework use only.
Value determines whether the attribute is null.
|
protected boolean |
mObjectTableOID
Deprecated.
for internal framework use only.
Value determines whether the attribute is OID present.
|
protected boolean |
mObjectTableRef
Deprecated.
for internal framework use only.
Value determines whether the attribute has an Object table ref.
|
protected java.lang.String |
mObjectType
Deprecated.
for internal framework use only.
Object Type of the attribute.
|
protected java.lang.String[] |
mOIDAttrNames
Deprecated.
for internal framework use only.
Internal: Applications should not use this field.
|
protected int |
mPrecision
Deprecated.
for internal framework use only.
Precision Value for the attribute, defaulted to zero.
|
protected boolean |
mPrimaryKey
Deprecated.
for internal framework use only.
Value determines whether the attribute is primary key.
|
protected boolean |
mQueriable
Deprecated.
for internal framework use only.
Value determines whether the attribute is queryable.
|
protected java.lang.reflect.Method |
mReadMethod
Deprecated.
for internal framework use only.
To keep the read method with this attribute.
|
protected boolean |
mResolveAccessors
Deprecated.
for internal framework use only.
Value determines whether getters and setters are loaded.
|
protected boolean |
mRetrievedOnInsert
Deprecated.
for internal framework use only.
Value determines whether the attribute is retrieved on Insert.
|
protected boolean |
mRetrievedOnUpdate
Deprecated.
for internal framework use only.
Value determines whether the attribute is retrieved on update.
|
protected int |
mScale
Deprecated.
for internal framework use only.
Scale value for attribute, set by default to 0.
This is the number of decimal points before/after the decimal based on whether
on whether the scale if positive or negative.
|
protected SQLBuilder |
mSQLBuilder
Deprecated.
for internal framework use only.
Identifies the handle to SQL Builder.
|
protected int |
mType
Deprecated.
for internal framework use only.
Integer representation of the SQL type of the attribute.
|
protected java.lang.Object |
mTypeFactory
Deprecated.
for internal framework use only.
Identifies the ORADataFactory for this attribute.
|
protected boolean |
mTypeFactoryInitialized
Deprecated.
for internal framework use only.
Value determines whether this attribute has a type factory.
|
protected boolean |
mUnique
Deprecated.
for internal framework use only.
Value determines whether the attribute is part of a unique key constraint.
|
protected byte |
mUpdateable
Deprecated.
for internal framework use only.
Value determines whether the attribute is updatable.
|
protected java.lang.reflect.Method |
mWriteMethod
Deprecated.
for internal framework use only.
To keep the write method with this attribute.
|
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
ATTR_ASSOCIATED_ROW, ATTR_ASSOCIATED_ROWITERATOR, ATTR_DYNAMIC, ATTR_ENTITY_DERIVED, ATTR_HIDDEN, ATTR_PERSISTENT, ATTR_ROWSET, ATTR_SQL_DERIVED, ATTR_TRANSIENT, ATTR_VARIABLE, READONLY, UPDATEABLE, UPDATEABLE_WHILE_NEW
ATTRIBUTE_AUTOSUBMIT, ATTRIBUTE_BINDEDITOR_LABEL, ATTRIBUTE_CTL_CATEGORY, ATTRIBUTE_CTL_DISPLAYHEIGHT, ATTRIBUTE_CTL_DISPLAYWIDTH, ATTRIBUTE_CTL_FIELD_ORDER, ATTRIBUTE_CTL_FORMTYPE, ATTRIBUTE_CTL_TYPE, ATTRIBUTE_DEFINITION_STATE, ATTRIBUTE_DISPLAY_HINT, ATTRIBUTE_DISPLAY_HINT_DISPLAY, ATTRIBUTE_DISPLAY_HINT_HIDE, ATTRIBUTE_FORM_TYPE_DETAIL, ATTRIBUTE_FORM_TYPE_SHORT, ATTRIBUTE_LABEL, ATTRIBUTE_LABEL_PLURAL, ATTRIBUTE_LOVNAME, ATTRIBUTE_PAYLOAD_HINT, ATTRIBUTE_PAYLOAD_HINT_HIDE, ATTRIBUTE_PAYLOAD_HINT_SHOW, ATTRIBUTE_REQUIRED_HINT, ATTRIBUTE_REQUIRED_HINT_OPTIONAL, ATTRIBUTE_REQUIRED_HINT_REQUIRED, ATTRIBUTE_REQUIRED_HINT_SELECTIVELY_REQUIRED, ATTRIBUTE_TIMEZONE_ID, ATTRIBUTE_TOOLTIP, CTL_CHECK_BOX, CTL_CHOICE_LIST, CTL_COMBO_BOX, CTL_COMBO_BOX_LOV, CTL_DATE, CTL_DEFAULT, CTL_DELIMITEDIDS_CHOICE, CTL_EDIT, CTL_IMAGE, CTL_INPUT_TEXT_LOV, CTL_LIST_BOX, CTL_NUMBER_EDIT, CTL_RADIO_GROUP, CTLTYPE_CHECKBOX, CTLTYPE_COMBO, CTLTYPE_COMBOLOV, CTLTYPE_DATE, CTLTYPE_DEFAULT, CTLTYPE_DELIMITEDIDS_CHOICE, CTLTYPE_EDIT, CTLTYPE_IMAGE, CTLTYPE_LIST, CTLTYPE_LISTBOX, CTLTYPE_LOV, CTLTYPE_NUMEDIT, CTLTYPE_RADIOGRP, CTLTYPE_TOGGLE, FMT_FORMAT, FMT_FORMATTER, HINT_NAME_AUTOSUBMIT, HINT_NAME_CATEGORY, HINT_NAME_CTL_TYPE, HINT_NAME_DESCRIPTION, HINT_NAME_DISPLAY_HEIGHT, HINT_NAME_DISPLAY_HINT, HINT_NAME_DISPLAY_WIDTH, HINT_NAME_FIELD_ORDER, HINT_NAME_FORMAT, HINT_NAME_LABEL, HINT_NAME_LABEL_PLURAL, HINT_NAME_LOVNAME, HINT_NAME_MANDATORY, HINT_NAME_MAX_LENGTH, HINT_NAME_MAX_VALUE, HINT_NAME_MIN_LENGTH, HINT_NAME_MIN_VALUE, HINT_NAME_PAYLOAD_HINT, HINT_NAME_SECRET, HINT_NAME_TIMEZONEID, HINT_NAME_TOOLTIP, HINT_NAME_UPDATEABLE, HINT_NAME_WATERMARK, PNAME_Button, PNAME_ButtonGroup, PNAME_ComboBox, PNAME_ComboBoxLovEdit, PNAME_ENSURE_KEY_ATTR, PNAME_EnumList, PNAME_LovButton, PNAME_ROWNUMATTR, PNAME_SOURCENAME_ACCESSOR, PNAME_SOURCENAME_ATTR, PNAME_TextField
DEFINITION_STATE_ACTIVE, DEFINITION_STATE_DEPRECATED, PROPERTY_DEFINITION_STATE, PROPERTY_LABEL, PROPERTY_LABEL_PLURAL, PROPERTY_TOOLTIP
XML_STATEMENT
Modifier | Constructor and Description |
---|---|
protected |
AttributeDefImpl()
Default constructor for this class.
|
Modifier and Type | Method and Description |
---|---|
void |
addBackwardDependency(AttributeDependency attrDep)
Internal: Applications should not use this method.
|
void |
addBackwardDependency(java.lang.String attrName)
Internal: Applications should not use this method.
|
void |
addCompOper(JboCompOper oper) |
protected void |
addExtendedDefObject(DefinitionObject extendedDefObject) |
void |
addForwardDependency(java.lang.String attrName)
Internal: Applications should not use this method.
|
void |
addValidator(JboValidatorInterface listener)
Add a
JboValidatorInterface to the listener list. |
protected java.util.HashMap |
adjustPropertyMapForWrite() |
void |
applyDiffChildren(DifferDetails dif,
DiffResolver resolver)
Applies changes to children defs.
|
void |
applyDiffContents(DifferDetails dif,
DiffResolver resolver)
When diff/merge operation is requested, we have the following
three def objects:
|
void |
applyNewName(DifferDetails dif,
java.lang.String newName,
int resolution,
java.lang.Object editObj,
java.lang.Object toMergeObj) |
void |
beanToStore(java.lang.Object bean,
Row store)
Internal: Applications should not use this method.
|
void |
cloneAttribute(AttributeDefImpl ad) |
static java.lang.String |
convertHistoryColumnFlagToString(byte flag) |
static byte |
convertHistoryColumnStringToFlag(java.lang.String str,
byte editable) |
java.lang.Object |
convertToJava(java.lang.Object data)
Converts a value from the database type to its corresponding Java type
and returns the result.
|
java.lang.Object |
convertToStorage(java.lang.Object data,
DBTransactionImpl trans)
Internal: Application should not use this method.
|
static AttributeDependency |
createAttributeDependencyImpl(java.lang.String name,
AttributeDependency.Type type)
Deprecated.
since 11.1.1.5.0
|
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.
|
boolean |
displayInShortForm(LocaleContext locale)
Returns true if the attribute is to displayed in the short(summary) form.
|
ExprCodeSource |
editCodeSource(ExprCodeSource codeSource)
Notify that ComponentOperationsManager that the client expects to
edit the CodeSource.
|
ExprCodeSource |
ensureCodeSource(ExprDef exprDef)
Ensure a named code source in the operations manager.
|
java.lang.Object |
evaluateTransientExpression(Row row) |
ViewObject |
getAccessorVO(ViewObject originVO)
For an accessor attribute, this method creates a View Object that
works for the View Link definition.
|
java.util.List |
getAllExtendedDefObjects() |
java.util.HashMap |
getAllProperties(java.util.HashMap map,
LocaleContext locale) |
int |
getAltKeyCount() |
byte |
getAttributeKind()
Returns the "kind" enumerations of this attribute.
|
AttributeDef.AttributeStorageEnum |
getAttributeStorage() |
int |
getAttributeStorageInt() |
byte |
getAttrLoad()
Describes the manner in which the data for this attribute is
loaded from database.
|
java.util.List |
getBackwardDependencies() |
java.util.List<java.lang.String> |
getBackwardDependenciesNames() |
java.lang.String |
getCategory(LocaleContext locale)
Returns the category that this attribute belongs to
|
java.lang.String |
getColumnName()
Returns the column name to which this attribute is mapped.
|
java.lang.String |
getColumnNameForQuery()
Returns the column name to be used in query statement.
|
java.util.ArrayList |
getCompOpers() |
java.lang.String[][] |
getCompOpers(LocaleContext locale)
Returns a Map of operators for this attribute.
|
int |
getControlType(LocaleContext locale)
Returns the preferred control type for this attribute
|
RowDef |
getDef()
Returns the DefObject object which describes this attribute.
|
java.lang.Object |
getDefaultValue()
Returns the default value of the attribute.
|
java.lang.String |
getDefinitionState(LocaleContext locale)
Retrives the definition state string that indicates if this object is deprecated.
|
int |
getDefTypeId() |
java.lang.String |
getDefXMLElementTag() |
int |
getDisplayHeight(LocaleContext locale)
Returns the display width for this attribute
|
java.lang.String |
getDisplayHint(LocaleContext locale)
Retrieves the display hint that dictates whether this
attribute should be visible or not.
|
int |
getDisplayWidth(LocaleContext locale)
Returns the display width for this attribute
|
java.lang.String |
getDomainName()
Returns the DomainName object which describes this attribute.
|
java.lang.Object |
getElemFactory()
Internal: Applications should not use this method.
|
int |
getElemSQLType()
Returns the jdbc type of the elements of this attribute.
|
java.lang.Class |
getElemType()
Returns the element type of the attribute.
|
EntityDefImpl |
getEntityDef()
Returns the EntityDefImpl object which contains this attribute.
|
java.lang.Object |
getExprVarVal(java.lang.String varName) |
java.util.ArrayList |
getExtendedDefObjects()
Returns copied list of extended definition objects.
|
java.util.List<DefinitionObject> |
getExtendedDefObjectsInternal() |
double |
getFieldOrder(LocaleContext locale)
Returns the field order for this attribute
|
java.lang.String |
getFileName() |
java.lang.String |
getFormat(LocaleContext locale)
returns the format string stored in the ui hints
|
java.lang.String |
getFormattedAttribute(AttributeList attrList,
LocaleContext locale)
Returns the formatted value for the attribute.
|
Formatter |
getFormatter(LocaleContext locale)
returns the formatter object stored in the ui hints
|
java.lang.String |
getFormatterClassName(LocaleContext locale)
Returns the formatter object stored in the ui hints
|
java.util.ArrayList |
getForwardDependencyAttributes() |
java.lang.String |
getHint(LocaleContext locale,
java.lang.String sHintName)
Return defaulted hint value
|
java.util.Map |
getHints() |
java.util.HashMap |
getHintsFromResource(LocaleContext locale) |
java.lang.String |
getHintValue(LocaleContext locale,
java.lang.String sHintName)
Return non-defaulted hint value
|
byte |
getHistoryKind()
Gets the attribute history kind.
|
int |
getIndex()
Returns the column position of this attribute in the data source.
|
java.lang.Class |
getJavaType()
Returns the Java type of the attribute.
|
java.lang.String |
getLabel(LocaleContext locale)
Retrieves the label to be used in any attribute prompts
|
java.lang.String |
getLabelPlural(LocaleContext locale)
Retrives the label plural text to be used for this attribute
|
ListBindingDef |
getListBindingDef() |
java.lang.String |
getLocaleName(LocaleContext locale,
java.lang.String sName)
function for retrieving the locale name of a hint
|
java.lang.String |
getLOVFinder() |
java.lang.String |
getLOVName()
Gets the name of the LOV on which the attribute is a primary attribute.
|
java.lang.Class |
getMessageBundleClass() |
java.lang.String |
getObjectType()
If the attribute is an object, returns the name of the attribute's object type
|
java.lang.String[] |
getOIDAttrNames()
Internal: Applications should not use this method.
|
OperationDefinitions |
getOperationDefinitions()
Return the operation definitions.
|
java.lang.String |
getPayloadHint(LocaleContext locale)
Retrieves the payload hint that dictates whether this
attribute should be included in service payload or not.
|
oracle.adf.share.security.binding.BindingPermissionDef |
getPermissionDef()
Internal: Applications should not use this method.
|
int |
getPrecision()
Gets the attribute's precision.
|
java.lang.Object |
getProperty(java.lang.String hintName)
Retrieves the specified property, if it exists.
|
java.lang.String |
getRecalcExpression()
Deprecated.
since 12.2.1. This should not be necessary and may result
in a performance issue.
|
ExprEval.Privilege |
getRecalcExpressionPrivilege()
Deprecated.
since 11.1.1.4.0 Applications should not use this method
|
ExprEval.TrustMode |
getRecalcExpressionTrustMode()
Deprecated.
|
ResourceBundleDef |
getResourceBundleDef() |
java.lang.String |
getResourcePrefix() |
protected void |
getResourcesFromBundle(LocaleContext locale,
java.util.HashMap map) |
OperationDefinitions |
getRowOperationDefinitions()
Return the row operation definitions.
|
int |
getScale()
Gets the attribute's scale value: the number of digits to the right or left of
the decimal point, depending on whether the scale value is positive or negative.
|
java.lang.String |
getSerializerClassName()
Gets the name of the custom value serializer class.
|
protected SQLBuilder |
getSQLBuilder()
Returns the SQLBuilderImpl - lazily building.
|
int |
getSQLType()
Returns the SQL type of this attribute.
|
static java.lang.String |
getSQLTypeIdToString(int typeId)
Converts an identifier to the name of an SQL type.
|
static int |
getSQLTypeStringToId(java.lang.String sqlType)
Converts a SQL type name to its identifier.
|
java.lang.String |
getTooltip(LocaleContext locale)
Retrives the tooltip text to be used for this attribute
|
java.lang.String |
getTransientExpression()
Deprecated.
since 12.2.1. Using this may result in a performance issue.
If necessary, use the CodeSource to access the expression source text.
|
ExpressionDef |
getTransientExpressionDef() |
ExprEval.Privilege |
getTransientExpressionPrivilege()
Deprecated.
since 11.1.1.4.0 Applications should not use this method
|
ExprEval.TrustMode |
getTransientExpressionTrustMode()
Deprecated.
|
ExprEval |
getTransientExprEval()
Deprecated.
since 11.1.1.4.0 Applications should not use this method
|
java.lang.Object |
getTypeFactory()
Internal: Applications should not use this method.
|
java.lang.String |
getTypeValueMapPropertySet()
Returns the TypeValueMapPropertySet object which describes this attribute.
|
AttributeHints |
getUIHelper()
return the AttributeHints interface implemented by this class
|
byte |
getUpdateableFlag()
Returns whether the attribute is updateable.
|
JboValidatorInterface |
getValidator(int indx) |
int |
getValidatorCount() |
java.util.ArrayList |
getValidators()
Get the list of JboValidatorInterface objects registered with this attribute
|
ValueSerializer |
getValueSerializer()
Gets an instance of the custom value serializer class.
|
java.lang.String |
getXMLElementTag()
Gets the XML_ELEMENT custom-property and if not present returns
the name of this attribute.
|
boolean |
hasExtendedDefObjects() |
boolean |
hasFormatInformation(LocaleContext locale)
Return true if any format hints have been defined for this
attribute.
|
boolean |
hasHintDefined(LocaleContext locale,
java.lang.String hintName) |
boolean |
hasHintOverride(LocaleContext locale,
java.lang.String hintName) |
boolean |
hasTransientExpression() |
protected void |
initFromXML(DefElement xmlElement,
RowDef parent,
int index) |
boolean |
isAutoSubmit(LocaleContext locale)
Returns the autoSubmit value for this attribute
|
protected boolean |
isCascadeUpdateParticipant() |
boolean |
isChangeIndicatorColumn() |
boolean |
isDiscrColumn()
Returns whether this attribute is a Discriminator Column for this Entity type.
|
boolean |
isEditable() |
boolean |
isEffectiveDateRelated() |
boolean |
isEffectiveDateSequence()
Checks if the attribute represents an effective date sequence, used in
Multiple Changes Per Day.
|
boolean |
isEffectiveDateSequenceFlag()
Checks if the attribute represents an effective date sequence flag, used
in Multiple Changes Per Day to indicate whether a row is the latest change
of the day or not.
|
boolean |
isEffectiveEndDate()
Checks if the attribute represents the effective end date.
|
boolean |
isEffectiveStartDate()
Checks if the attribute represents the effective start date.
|
boolean |
isHistoryColumn() |
boolean |
isInWhereOrderGroup() |
boolean |
isKey() |
boolean |
isMandatory()
Returns whether the attribute is not null.
|
boolean |
isObjectTableOID()
Internal: Applications should not use this method.
|
boolean |
isObjectTableRef()
Internal: Applications should not use this method.
|
boolean |
isPrimaryKey()
Returns whether this attribute is a Primary Key for this Entity type.
|
boolean |
isQueriable()
Returns whether this attribute can participate in the WHERE clause of a
SQL statement.
|
boolean |
isRetrievedOnInsert()
Returns whether the attribute value is retrieved from the database after
a row is inserted in the post cycle.
|
boolean |
isRetrievedOnUpdate()
Returns whether the attribute is retrieved from the database after a row
is updated.
|
boolean |
isSelected() |
boolean |
isSelectedStatic() |
boolean |
isSessionScope() |
boolean |
isUnique() |
protected void |
loadCompOpersFromXML(DefElement xmlElement) |
protected void |
loadDependencies(DefElement xmlElement) |
java.lang.Object |
loadFromResultSet(java.sql.ResultSet rs,
int index,
DBTransactionImpl trans)
Internal: Applications should not use this method.
|
java.lang.Object |
loadFromStatement(java.sql.PreparedStatement cs,
int index,
Transaction trans)
Internal: Applications should not use this method.
|
protected void |
loadPermission(DefElement xmlElement) |
JboCompOper |
lookupCompOper(java.lang.String id) |
ExprDef |
lookupExprDef(OwnerType type,
java.lang.String path)
Search for an ExprDef in the ComponentOperationsManager's namespace.
|
JboValidatorInterface |
lookupValidator(java.lang.String name) |
java.lang.Object |
parseFormattedAttribute(java.lang.String sValue,
LocaleContext locale)
Strips off the formatting from a string and constructs an
instance of the attribute's domain using the 'clean' string as
a parameter of the contructor.
|
protected java.lang.String |
printXMLDefinition(Row row,
java.util.Hashtable allDefs,
java.io.PrintWriter pw,
int depthCount)
Prints DTD for this attribute and returns the xml-tag for this row
to be included in the rowset's declaration.
|
boolean |
removeBackwardDependency(java.lang.String attrName) |
boolean |
removeCompOper(java.lang.String id) |
void |
removeValidator(JboValidatorInterface listener)
Removes a
JboValidatorInterface from the listener list. |
protected boolean |
requiresNamePrefixedResId() |
protected java.lang.Object |
resolveObjectProperty(java.lang.String property,
LocaleContext locale) |
protected java.lang.Object |
resolvePropertyRaw(java.lang.String property,
LocaleContext locale) |
void |
setAttributeStorage(AttributeDef.AttributeStorageEnum storage) |
void |
setAttributeStorageString(java.lang.String s) |
void |
setAttrLoad(byte attrLoad) |
void |
setBackwardDependencies(java.util.List arr) |
void |
setBaseDefObject(DefinitionObject baseDefObject) |
void |
setColumnName(java.lang.String colName)
Sets the column name of the attribute.
|
void |
setDefaultValue(java.lang.Object val) |
protected void |
setDefForComponent(ComponentObjectImpl comp)
Sets the Definition Object for the Component.
|
void |
setDiscrColumn(boolean b) |
void |
setDomainName(java.lang.String domainName)
Set the DomainName object which describes this attribute.
|
void |
setEffectiveDateSequence(boolean isEffDtSeq)
Marks this attribute as an effective date sequence, used in Multiple
Changes Per Day.
|
void |
setEffectiveDateSequenceFlag(boolean isEffDtSeqMarker)
Marks this attribute as an effective date sequence flag, used in
Multiple Changes Per Day to indicate a row is the latest change of
the day.
|
void |
setEffectiveDateType(byte effDtType)
Marks this attribute as an effective start date, end date or none
|
void |
setElemType(java.lang.Class cls) |
void |
setExprVarVal(java.lang.String varName,
java.lang.Object val) |
void |
setHistoryKind(byte historyKind) |
void |
setJavaType(java.lang.Class cls) |
void |
setLOVFinder(java.lang.String lovFinder) |
void |
setLOVName(java.lang.String lovName) |
void |
setMandatory(boolean b) |
void |
setName(java.lang.String name)
Name this object.
|
void |
setObjectType(java.lang.String objType)
Set the Object type object which describes this attribute.
|
protected void |
setParent(NamedObjectImpl parent)
Sets this object's parent.
|
void |
setPermissionDef(oracle.adf.share.security.binding.BindingPermissionDef permDef) |
void |
setPrecisionScale(int prec,
int scale)
Sets the attribute's precision and scale.
|
void |
setPrimaryKey(boolean b) |
void |
setQueriable(boolean b) |
void |
setRecalcExpression(java.lang.String expr)
Deprecated.
since 12.2.1. Using this may result in a performance issue.
If necessary, use the CodeSource to access the expression source text.
|
void |
setRecalcExpressionDef(ExpressionDef exprDef)
Add a recalc expression to the attribute.
|
void |
setRecalcExpressionPrivilege(ExprEval.Privilege pr)
Deprecated.
since 11.1.1.4.0 Applications should not use this method
|
void |
setRecalcExpressionTrustMode(ExprEval.TrustMode trusted)
Deprecated.
|
void |
setRecalcExpressionTypeCheckedMode(ExprEval.TypeCheckedMode typeCheckedMode)
Deprecated.
|
void |
setRetrievedOnInsert(boolean b) |
void |
setRetrievedOnUpdate(boolean b) |
void |
setSelected(boolean b) |
void |
setSelectedTransient(boolean b) |
void |
setSerializerClassName(java.lang.String className)
Sets the name of the custom value serializer class.
|
void |
setSQLType(int typ) |
void |
setTransientExpression(java.lang.String expr)
Deprecated.
|
void |
setTransientExpressionDef(ExpressionDef exprDef)
Add a transient expression to the attribute.
|
void |
setTransientExpressionPrivilege(ExprEval.Privilege pr)
Deprecated.
since 11.1.1.4.0 Applications should not use this method
|
protected void |
setTransientExpressionSourceHint(java.lang.String property) |
void |
setTransientExpressionTrustMode(ExprEval.TrustMode trusted)
Deprecated.
use {@link #setTransientExpressionDef(oracle.jbo.common.ExpressionDef) instead
|
void |
setTransientExpressionTypeCheckedMode(ExprEval.TypeCheckedMode typeCheckedMode)
Deprecated.
|
void |
setTypeValueMapPropertySet(java.lang.String value)
Set the TypeValueMapPropertySet object which describes this attribute.
|
void |
setUnique(boolean b) |
void |
setUpdateableFlag(byte updateable) |
boolean |
shouldEvaluateTransientExpression(Row row) |
void |
storeToBean(java.lang.Object bean,
Row store)
Internal: Applications should not use this method.
|
protected void |
unsetDefForComponent(ComponentObjectImpl comp)
Unsets the DefinitionObject For the component.
|
void |
writeChildren(DefWriter jos)
Writes the Object's children to the Persistent storage
|
void |
writeContents(DefWriter jos)
Objects should write their persistence output in this method
|
ensureVariableManager, finishedLoading, getAdfmConfigStartupProperty, getBaseDefObject, getBooleanAdfmConfigProperty, getDefXMLNameSpace, getVariableManager, getVarMgrParents, hasVariables, isDeprecated, isFromCustomization, loadProperties, loadVariables, resolveReferences, setBaseDefObject
addDefImport, addSavedDocName, allocatePropertyMap, allocatePropertyMapForEdits, beginDiffObjects, checkEditable, checkStructWithOld, close, createFromXML, deregisterDefObject, deregisterSessionObject, diffObjects, ensureDifferDetails, findDefImport, getBaseDir, getBasePackage, getDefImports, getDefManager, getDefTypeName, getDefWriter, getEditedPropertiesMap, getEditedPropertyExpressionsMap, getEditedPropertyMap, getEditObject, getEditVersionsAsString, getFullDirName, getFullFileName, getMajorVersion, getMergeableFullName, getMergeableName, getMinorVersion, getOrigObject, getPropertyMap, getSavedDocNames, getSessionSyncLock, getSubstitutedNames, getSyncLock, guaranteePath, includeCustomizationLayerInfo, isCustomizationEnabled, isCustomizationEnabled, isDirty, isFromTip, isLoadBase, isMajorVersionChanged, isMinorVersionChanged, isNew, isPersonalizationEnabled, isPersonalizationEnabled, isPropertyExpression, loadDefImports, loadDefObject, loadXMLContents, loadXMLContentsNoResolve, lockDefinitionContext, mergeChanges, mergePropertyMap, objectRemoved, reapplyChanges, registerClass, registerDefObject, registerSessionDefObject, registerSiteDefObject, remove, removeAndDelete, removeDefImport, removeExtendedDefObject, removeProperty, saveXMLContents, setCustomizationEnabled, setCustomizationEnabled, setDefaultBaseDir, setDefMgr, setDirty, setEditable, setEditableFlag, setEditableObject, setFullName, setFullNameInternal, setLoadBase, setMajorVersionChanged, setNew, setOrigObject, setPersonalizationEnabled, setPersonalizationEnabled, setProperty, setPropertyExpression, setPropertyMap, setupDefWriterFromMO, staticUpdateChildrenList, unlockDefinitionContext, updateChildrenList, updateMdsKeyFromTip, verifyVersion, verifyVersionNullCheck, writeHeaderForNew, writeObject, writeVersion, writeXMLContents
addPropertySetName, enableUpdateCheck, getContainerDef, getContainerName, getDefScope, getMdsKey, getMdsReference, getPropertySetName, getPropertySetNames, getRootBaseDefObject, isBaseDefFor, isComponentDefinition, isDynamicDefinitionObject, isObjectResolved, isSubtypeOf, isSuppressUpdateCheck, loadCustomProperties, loadPropertiesInMap, loadPropertySetNames, loadSchemaProperties, setDefScope, setMdsKey, setMdsReference, setObjectResolved, setPropertySetName, staticLoadCustomProperties, staticLoadSchemaProperties, suppressUpdateCheck
getFullName, getName, getParent, getProperties, getPropertiesAsStrings, getPropertiesMap, getProperty, getPropertyExpressionDef, getPropertyExpressionsMap, getPropertyNamesSet, getRawPropertyValue, getStringFromMessageBundle, refreshProperty, removeProperty, setPropertiesMap, setPropertiesMap2, setProperty
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getName
getProperties, getProperty, refreshProperty
getFullName, getName
getFullName
getName
getFullName
public static final byte ATTR_LOAD_EACH
public static final byte ATTR_LOAD_BULK
public static final byte ATTR_LOAD_SKIP
@Concealed protected java.lang.String mColumnName
@Concealed protected boolean mQueriable
@Concealed protected boolean mUnique
@Concealed protected boolean mPrimaryKey
@Concealed protected boolean mDiscrColumn
@Concealed protected boolean mMandatory
@Concealed protected boolean mRetrievedOnInsert
@Concealed protected boolean mRetrievedOnUpdate
@Concealed protected RowDef mDef
@Concealed protected boolean mObjectTableRef
@Concealed protected boolean mObjectTableOID
@Concealed protected java.lang.String[] mOIDAttrNames
@Concealed protected java.lang.String mObjectType
@Concealed protected boolean mNotNull
@Concealed protected int mPrecision
@Concealed protected int mScale
@Concealed protected byte mUpdateable
@Concealed protected byte mKind
@Concealed protected byte mAttrLoad
@Concealed protected int mType
@Concealed protected int mIndex
@Concealed protected java.lang.Object mDefaultValue
@Concealed protected java.lang.String mDomainName
@Concealed protected java.lang.Class mJavaType
@Concealed protected java.lang.Class mElemType
@Concealed protected java.lang.reflect.Method mReadMethod
@Concealed protected java.lang.reflect.Method mWriteMethod
@Concealed protected java.lang.Object mTypeFactory
@Concealed protected java.lang.Object mElemFactory
@Concealed protected volatile boolean mTypeFactoryInitialized
@Concealed protected SQLBuilder mSQLBuilder
@Concealed protected boolean mResolveAccessors
@Concealed protected byte mHistoryKind
@Concealed protected byte mEffectiveDateType
@Concealed protected boolean mIsEffectiveDateSequence
@Concealed protected boolean mIsEffectiveDateSequenceFlag
public static final byte HISTORY_NOT_DEFINED
public static final byte HISTORY_CREATE_DATE
public static final byte HISTORY_MODIFY_DATE
public static final byte HISTORY_CREATE_USER
public static final byte HISTORY_MODIFY_USER
public static final byte HISTORY_MODIFY_VERSION
public static final byte EFFECTIVE_DATE_TYPE_NONE
public static final byte EFFECTIVE_DATE_TYPE_START
public static final byte EFFECTIVE_DATE_TYPE_END
@Concealed protected boolean mBCheckedForSIF
@Concealed protected boolean mBCheckSIFCtrlHints
@Concealed protected boolean mDataSecurity
protected AttributeDefImpl()
protected void setParent(NamedObjectImpl parent)
DefObject
public void setBaseDefObject(DefinitionObject baseDefObject)
setBaseDefObject
in class DefObject
@Concealed public void cloneAttribute(AttributeDefImpl ad)
cloneAttribute(AttributeDefImpl, boolean)
@Concealed public void setName(java.lang.String name)
DefObject
public boolean isSelected()
isSelected
in interface AttributeDef
public boolean isSelectedStatic()
public void setSelected(boolean b)
public void setSelectedTransient(boolean b)
public boolean isInWhereOrderGroup()
public boolean isQueriable()
Queriable attributes are those attributes that can have a filter condition for the WHERE clause. If this method returns false, the attribute will not be used in constructing the WHERE clause of the SQL statement.
isQueriable
in interface AttributeDef
public void setQueriable(boolean b)
public boolean isUnique()
public void setUnique(boolean b)
public byte getUpdateableFlag()
getUpdateableFlag
in interface AttributeDef
public void setUpdateableFlag(byte updateable)
public boolean isSessionScope()
public boolean isDiscrColumn()
isDiscrColumn
in interface AttributeDef
public void setDiscrColumn(boolean b)
public boolean isPrimaryKey()
The following code snippet uses this method to find the name and value of the primary key attribute in an array of AttributeDefs (attrs[]).
String curAttrName = null; for (int j = 0; j < attrs.length ; j ++ ) { if (attrs[j].isPrimaryKey()) { //get the name of the primary key curAttrName = attrs[j].getName(); //assumes only one key String currValue = row.getAttribute(curAttrName).toString(); } }
isPrimaryKey
in interface AttributeDef
public boolean isKey()
public void setPrimaryKey(boolean b)
public int getAltKeyCount()
public boolean isRetrievedOnInsert()
Some derived attributes need to be re-fetched after a save operation has been performed. These typically include timestamps, computed fields, virtual columns and Oracle ROWIDs and OIDs.
public void setRetrievedOnInsert(boolean b)
public boolean isRetrievedOnUpdate()
Some derived attributes need to be re-fetched after a save operation has been performed. These typically include timestamps, computed fields, virtual columns and Oracle ROWIDs and OIDs.
public void setRetrievedOnUpdate(boolean b)
public boolean isMandatory()
isMandatory
in interface AttributeDef
public void setMandatory(boolean b)
public boolean isObjectTableRef()
public boolean isObjectTableOID()
public java.lang.String[] getOIDAttrNames()
public java.lang.String getObjectType()
For example, assume that you have created an Employee table that contains an Address object of type address_t. The SQL code would look like this:
CREATE TYPE address_t AS OBJECT -- user defined Oracle Object datatype ( Street VARCHAR2(30), City VARCHAR2(25), State CHAR(2), Zip Number ); CREATE TABLE Employee ( EmpId Number, Name VARCHAR2(30), Address address_t, -- note the Oracle Object datatype );
In an Employee Entity Object, this would be interpreted as an Address attribute of type Address_t. If this method were applied to the Address attribute, it would return Address_t.
public int getPrecision()
For strings, precision is maximum allowed length. For numeric values, precision is the number of significant digits.
getPrecision
in interface AttributeDef
public int getScale()
Scale value is meaningful only for numeric attributes.
getScale
in interface AttributeDef
public void setPrecisionScale(int prec, int scale)
For strings, precision is maximum allowed length. For numeric values, precision is the number of significant digits.
Scale is the number of digits to the right or left of the decimal point, depending on whether the scale value is positive or negative. Scale is meaning only for numeric attributes.
prec
- the precision value, or 0 if unspecified.scale
- the scale value. The default is -127.public EntityDefImpl getEntityDef()
public RowDef getDef()
public boolean isEditable()
isEditable
in class PersistableDefObject
public java.lang.String getFileName()
getFileName
in class PersistableDefObject
public int getIndex()
getIndex
in interface AttributeDef
public int getSQLType()
getSQLType
in interface AttributeDef
Types
public void setSQLType(int typ)
public java.lang.String getTypeValueMapPropertySet()
public void setTypeValueMapPropertySet(java.lang.String value)
public void setDomainName(java.lang.String domainName)
public java.lang.String getDomainName()
public void setObjectType(java.lang.String objType)
public byte getAttributeKind()
The following code snippet uses this method to return the attribute kind for each element in an array of AttributeDefs. Some processing is then done based on the results.
for(int i=0; i < attributeDefs.length; i++) { byte attrKind=attributeDefs[i].getAttributeKind(); if(attrKind==AttributeDef.ATTR_ASSOCIATED_ROW || attrKind==AttributeDef.ATTR_ASSOCIATED_ROWITERATOR) { do some processing } }
getAttributeKind
in interface AttributeDef
public AttributeDef.AttributeStorageEnum getAttributeStorage()
getAttributeStorage
in interface AttributeDef
public int getAttributeStorageInt()
public void setAttributeStorage(AttributeDef.AttributeStorageEnum storage)
public void setAttributeStorageString(java.lang.String s)
public byte getAttrLoad()
In the typical case, after the View Object query is executed, the framework retrieves data from the query result and populates the Entity row with the attribute values.
The framework uses two different ways to retrieve data from the query result. The first is the normal SQL SELECT way--the column corresponding to the attribute is accessible in the query result. For example, if the View Object query says SELECT e.Empno, e.Ename, e.Job, FROM Emp then attributes corresponding to columns Empno, Ename, and Job are accessible from the query result. That is, one can do result.getObject("Empno") to JDBC to retrieve the data. This situation is described as by the getAttrLoad() return value ATTR_LOAD_EACH.
If the query is over an Oracle Object table, on the other hand, the framework doesn't have access to individual columns from the query result. For example, assume an object table OBJEMP is based on an object type T, and this type has attributes Name, Address, and Job.
The query statement that the framework builds for such a table is select value(o) from TAB o. This retrieves each row from the table as an Oracle Object. From JDBC, the framework gets this as an object (STRUCT) and gets attributes out of the STRUCT.
In this case, the Entity Object attributes will have the following attribute load values:
Name -- ATTR_LOAD_BULK Address -- ATTR_LOAD_SKIP Job -- ATTR_LOAD_SKIP
ATTR_LOAD_BULK on Name means that while the framework retrieves data for Name, data for the other attributes, Address and Job is bulk-retrieved as well. ATTR_LOAD_SKIP on Address and Job means that since the framework filled in Address and Job while it retrieved Name, they should be skipped since they were bulk-retrieved with Name.
public void setAttrLoad(byte attrLoad)
public java.lang.Class getJavaType()
For example, if the attribute is of type String, this method returns java.lang.String; if it is of type Number, it returns oracle.jbo.domain.Number.
Subclasses should override this method because Entities without accessors should also be able to get their types from attribute descriptors and beans.
getJavaType
in interface AttributeDef
public void setJavaType(java.lang.Class cls)
public java.lang.Class getElemType()
For VARRAYs, this method returns the class name of the elements that are in the VARRAY.
Element type is relevant only if the attribute is an array attribute.
getElemType
in interface AttributeDef
public int getElemSQLType()
For VARRAYs, this method returns the jdbc type of the elements that are in the VARRAY.
Element type is relevant only if the attribute is an array attribute.
getElemSQLType
in interface AttributeDef
public void setElemType(java.lang.Class cls)
public java.lang.Object getDefaultValue()
The default value for an attribute is expressed in terms of the Java type system, rather than the storage type system.
public void setDefaultValue(java.lang.Object val)
public void setColumnName(java.lang.String colName)
colName
- the database column name of this attribute.public java.lang.String getColumnName()
getColumnName
in interface AttributeDef
public void setTransientExpression(java.lang.String expr)
setTransientExpressionDef(oracle.jbo.common.ExpressionDef)
instead.public void setTransientExpressionDef(ExpressionDef exprDef)
a
- transient expression def built using ExpressionDef.createAttributeTransientExpression(java.lang.String)
.@Concealed public ExpressionDef getTransientExpressionDef()
public void setRecalcExpression(java.lang.String expr)
public void setRecalcExpressionDef(ExpressionDef exprDef)
a
- recalc expression def built using ExpressionDef.createAttributeRecalcExpression(java.lang.String)
.public boolean hasTransientExpression()
public java.lang.String getTransientExpression()
@Concealed public ExprEval getTransientExprEval()
@Concealed public ExprEval.Privilege getTransientExpressionPrivilege()
@Concealed public void setTransientExpressionPrivilege(ExprEval.Privilege pr)
@Concealed public void setTransientExpressionTrustMode(ExprEval.TrustMode trusted)
@Concealed public ExprEval.TrustMode getTransientExpressionTrustMode()
protected void setTransientExpressionSourceHint(java.lang.String property)
public void setTransientExpressionTypeCheckedMode(ExprEval.TypeCheckedMode typeCheckedMode)
setTransientExpressionDef(oracle.jbo.common.ExpressionDef)
instead@Concealed public ExprEval.Privilege getRecalcExpressionPrivilege()
@Concealed public void setRecalcExpressionPrivilege(ExprEval.Privilege pr)
@Concealed public void setRecalcExpressionTrustMode(ExprEval.TrustMode trusted)
setRecalcExpressionDef(oracle.jbo.common.ExpressionDef)
instead@Concealed public void setRecalcExpressionTypeCheckedMode(ExprEval.TypeCheckedMode typeCheckedMode)
setRecalcExpressionDef(oracle.jbo.common.ExpressionDef)
instead@Concealed public ExprEval.TrustMode getRecalcExpressionTrustMode()
public java.lang.String getRecalcExpression()
public boolean shouldEvaluateTransientExpression(Row row)
public java.lang.Object evaluateTransientExpression(Row row)
public java.lang.String getColumnNameForQuery()
For Entity Object attributes, this REF([entity-alias])
if the attribute is an object table reference. Otherwise, it
is [entity-alias].[column-name]
, where [column-name]
is the name of the column to which the attribute is mapped (that is,
the value returned by getColumnName
.
For View Object attributes, the value it returns depends on whether the query was created in expert mode:
getColumnNameForQuery
in interface AttributeDef
public java.lang.Object convertToJava(java.lang.Object data) throws DataCreationException
This method uses AttributeDefImpl() metadata to convert a database value to the corresponding Java value.
data
- a storage value to be converted.DataCreationException
- if the conversion cannot be performed.public java.lang.Object getTypeFactory()
Returns the type factory for this attribute.
public java.lang.Object getElemFactory()
public java.lang.Object loadFromResultSet(java.sql.ResultSet rs, int index, DBTransactionImpl trans) throws DataCreationException
Returns the value from the specified ResultSet at the specified index. This method can be used when customizing the way that attributes are populated in the row. For example, assume you have a database Name column that contains a first name and a last name. You can use this method to fetch an individual entry, then parse the entry into separate Firstname and a Lastname attribute.
rs
- the result set containing the value.index
- the index position for the value.trans
- the transaction containing the ResultSet.DataCreationException
- if the Domain object
cannot be created.public java.lang.Object loadFromStatement(java.sql.PreparedStatement cs, int index, Transaction trans) throws DataCreationException
Returns the value from the specified JDBC prepared statement at the specified index. This method can be used when customizing the way that attributes are populated in the row. For example, assume you have a database Name column that contains a first name and a last name. You can use this method to fetch an individual entry, then parse the entry into separate Firstname and a Lastname attribute.
cs
- the prepared statement containing the value.index
- the index position for the value.trans
- the transaction containing the ResultSet.DataCreationException
- if the Domain object
cannot be created.public java.lang.Object convertToStorage(java.lang.Object data, DBTransactionImpl trans)
Converts a value from the attribute's Java type to a database type.
This method uses AttributeDefImpl
metadata to convert
a Java value to the corresponding database value. This method is typically
called before the framework sets an attribute inside a JDBC statement parameter.
data
- a Java value to be converted.trans
- the database transaction.DataCreationException
- if the conversion cannot be performed.public int getValidatorCount()
public JboValidatorInterface getValidator(int indx)
public java.util.ArrayList getValidators()
getValidators
in interface ValidationManager
public JboValidatorInterface lookupValidator(java.lang.String name)
public void addValidator(JboValidatorInterface listener)
JboValidatorInterface
to the listener list.addValidator
in interface ValidationManager
listener
- The Validator to be addedpublic void removeValidator(JboValidatorInterface listener)
JboValidatorInterface
from the listener list.listener
- The Validator to be removedpublic java.lang.String getLOVName()
getLOVName
in interface AttributeDef
getLOVName
in interface AttributeHints
public void setLOVName(java.lang.String lovName)
public ListBindingDef getListBindingDef()
getListBindingDef
in interface AttributeDef
public java.lang.String getLOVFinder()
public void setLOVFinder(java.lang.String lovFinder)
public ViewObject getAccessorVO(ViewObject originVO)
AttributeDef
getAccessorVO
in interface AttributeDef
originVO
- the View Object that owns the accessorViewObject
instance.public boolean isChangeIndicatorColumn()
public boolean isEffectiveStartDate()
true
or false
public boolean isEffectiveEndDate()
true
or false
public void setEffectiveDateType(byte effDtType)
effDtType
- valid values are EFFECTIVE_DATE_TYPE_START,
EFFECTIVE_DATE_TYPE_END or EFFECTIVE_DATE_TYPE_NONE.public void setEffectiveDateSequence(boolean isEffDtSeq)
public boolean isEffectiveDateSequence()
@Concealed public boolean isEffectiveDateRelated()
public void setEffectiveDateSequenceFlag(boolean isEffDtSeqMarker)
public boolean isEffectiveDateSequenceFlag()
public void setSerializerClassName(java.lang.String className)
ValueSerializer
interface.className
- name of the custom value serializer classpublic java.lang.String getSerializerClassName()
public ValueSerializer getValueSerializer()
null
if it is not defined.JboException
- if an error occurs loading the custom class or
instantiating the objectpublic java.lang.String getDefXMLElementTag()
getDefXMLElementTag
in interface PersistentDefinition
getDefXMLElementTag
in class PersistableDefObject
public void writeChildren(DefWriter jos)
PersistentDefinition
writeChildren
in interface PersistentDefinition
writeChildren
in class DefObject
jos
- the Output storage for persistenceprotected java.util.HashMap adjustPropertyMapForWrite()
adjustPropertyMapForWrite
in class PersistableDefObject
public void writeContents(DefWriter jos)
PersistentDefinition
writeContents
in interface PersistentDefinition
writeContents
in class PersistableDefObject
jos
- the Output storage for persistenceprotected void initFromXML(DefElement xmlElement, RowDef parent, int index)
protected void loadCompOpersFromXML(DefElement xmlElement)
protected void loadPermission(DefElement xmlElement)
public static int getSQLTypeStringToId(java.lang.String sqlType)
sqlType
- the name of a SQL datatype.JboTypeMap
public static java.lang.String getSQLTypeIdToString(int typeId)
typeId
- an SQL type identifier.JboTypeMap
public int getDefTypeId()
getDefTypeId
in class DefObject
protected void setDefForComponent(ComponentObjectImpl comp)
setDefForComponent
in class DefObject
comp
- component definitionprotected void unsetDefForComponent(ComponentObjectImpl comp)
unsetDefForComponent
in class DefObject
comp
- component definitionprotected SQLBuilder getSQLBuilder()
public void storeToBean(java.lang.Object bean, Row store)
public void beanToStore(java.lang.Object bean, Row store)
public java.lang.String getXMLElementTag()
getXMLElementTag
in interface PersistentDefinition
getXMLElementTag
in class PersistableDefObject
protected java.lang.String printXMLDefinition(Row row, java.util.Hashtable allDefs, java.io.PrintWriter pw, int depthCount)
public AttributeHints getUIHelper()
getUIHelper
in interface AttributeDef
AttributeHints
public java.lang.String getLocaleName(LocaleContext locale, java.lang.String sName)
AttributeHints
getLocaleName
in interface AttributeHints
public ResourceBundleDef getResourceBundleDef()
getResourceBundleDef
in interface ResourceBundleOwner
getResourceBundleDef
in interface ValidationManager
getResourceBundleDef
in interface VariableManagerOwnerBase
public java.lang.String getResourcePrefix()
getResourcePrefix
in interface ResourceBundleOwner
public java.lang.Object getProperty(java.lang.String hintName)
NamedObjectImpl
getProperty
in interface Properties
getProperty
in class NamedObjectImpl
hintName
- a string to be used as a hash table key.hintName
, if any,
otherwise null
.protected boolean requiresNamePrefixedResId()
requiresNamePrefixedResId
in class NamedObjectImpl
protected java.lang.Object resolvePropertyRaw(java.lang.String property, LocaleContext locale)
resolvePropertyRaw
in class DefObject
protected java.lang.Object resolveObjectProperty(java.lang.String property, LocaleContext locale)
resolveObjectProperty
in class NamedObjectImpl
public java.util.HashMap getAllProperties(java.util.HashMap map, LocaleContext locale)
getAllProperties
in class DefObject
public final java.lang.String getLabel(LocaleContext locale)
getLabel
in interface GenericHints
public boolean hasHintOverride(LocaleContext locale, java.lang.String hintName)
public boolean hasHintDefined(LocaleContext locale, java.lang.String hintName)
public void addCompOper(JboCompOper oper)
public JboCompOper lookupCompOper(java.lang.String id)
public boolean removeCompOper(java.lang.String id)
public java.util.ArrayList getCompOpers()
public java.lang.String[][] getCompOpers(LocaleContext locale)
AttributeHints
getCompOpers
in interface AttributeHints
public final java.lang.String getTooltip(LocaleContext locale)
getTooltip
in interface GenericHints
public final java.lang.String getLabelPlural(LocaleContext locale)
getLabelPlural
in interface GenericHints
public java.lang.String getDefinitionState(LocaleContext locale)
getDefinitionState
in interface GenericHints
getDefinitionState
in class DefinitionObject
public final java.lang.String getDisplayHint(LocaleContext locale)
getDisplayHint
in interface AttributeHints
public java.lang.String getPayloadHint(LocaleContext locale)
getPayloadHint
in interface AttributeHints
public final int getControlType(LocaleContext locale)
getControlType
in interface AttributeHints
public final int getDisplayWidth(LocaleContext locale)
getDisplayWidth
in interface AttributeHints
public final int getDisplayHeight(LocaleContext locale)
getDisplayHeight
in interface AttributeHints
public final boolean isAutoSubmit(LocaleContext locale)
isAutoSubmit
in interface AttributeHints
public final double getFieldOrder(LocaleContext locale)
getFieldOrder
in interface AttributeHints
public final java.lang.String getCategory(LocaleContext locale)
getCategory
in interface AttributeHints
public java.lang.String getHint(LocaleContext locale, java.lang.String sHintName)
getHint
in interface AttributeHints
public java.lang.String getHintValue(LocaleContext locale, java.lang.String sHintName)
getHintValue
in interface GenericHints
public final java.lang.String getFormat(LocaleContext locale)
AttributeHints
getFormat
in interface AttributeHints
public final Formatter getFormatter(LocaleContext locale)
AttributeHints
getFormatter
in interface AttributeHints
public final boolean hasFormatInformation(LocaleContext locale)
AttributeHints
hasFormatInformation
in interface AttributeHints
public final java.lang.String getFormattedAttribute(AttributeList attrList, LocaleContext locale)
AttributeHints
getFormattedAttribute
in interface AttributeHints
public final java.lang.Object parseFormattedAttribute(java.lang.String sValue, LocaleContext locale)
AttributeHints
parseFormattedAttribute
in interface AttributeHints
public final boolean displayInShortForm(LocaleContext locale)
AttributeHints
displayInShortForm
in interface AttributeHints
public final java.lang.String getFormatterClassName(LocaleContext locale)
getFormatterClassName
in interface AttributeHints
public java.util.Map getHints()
public java.util.HashMap getHintsFromResource(LocaleContext locale)
public byte getHistoryKind()
HISTORY
constants defined for this class.public void setHistoryKind(byte historyKind)
public boolean isHistoryColumn()
public static java.lang.String convertHistoryColumnFlagToString(byte flag)
public static byte convertHistoryColumnStringToFlag(java.lang.String str, byte editable)
protected final boolean isCascadeUpdateParticipant()
public java.lang.Class getMessageBundleClass()
getMessageBundleClass
in interface VariableManagerOwnerBase
public oracle.adf.share.security.binding.BindingPermissionDef getPermissionDef()
Returns the security metadata for this attribute.
public void setPermissionDef(oracle.adf.share.security.binding.BindingPermissionDef permDef)
public java.util.List getBackwardDependencies()
public java.util.List<java.lang.String> getBackwardDependenciesNames()
public void setBackwardDependencies(java.util.List arr)
@Concealed public static AttributeDependency createAttributeDependencyImpl(java.lang.String name, AttributeDependency.Type type)
public void addBackwardDependency(java.lang.String attrName)
public void addBackwardDependency(AttributeDependency attrDep)
public boolean removeBackwardDependency(java.lang.String attrName)
public java.util.ArrayList getForwardDependencyAttributes()
public void addForwardDependency(java.lang.String attrName)
protected void loadDependencies(DefElement xmlElement)
public java.lang.Object getExprVarVal(java.lang.String varName)
getExprVarVal
in interface ExprValueSupplier
public void setExprVarVal(java.lang.String varName, java.lang.Object val)
setExprVarVal
in interface ExprValueSupplier
protected void getResourcesFromBundle(LocaleContext locale, java.util.HashMap map)
getResourcesFromBundle
in class NamedObjectImpl
protected void addExtendedDefObject(DefinitionObject extendedDefObject)
addExtendedDefObject
in class PersistableDefObject
public java.util.ArrayList getExtendedDefObjects()
DefinitionObject
getExtendedDefObjects
in class DefinitionObject
public java.util.List<DefinitionObject> getExtendedDefObjectsInternal()
getExtendedDefObjectsInternal
in class PersistableDefObject
public boolean hasExtendedDefObjects()
hasExtendedDefObjects
in class PersistableDefObject
public java.util.List getAllExtendedDefObjects()
getAllExtendedDefObjects
in class DefinitionObject
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 DefObject
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 applyNewName(DifferDetails dif, java.lang.String newName, int resolution, java.lang.Object editObj, java.lang.Object toMergeObj)
public void applyDiffContents(DifferDetails dif, DiffResolver resolver)
DiffMergeable
orgDef - original def object (from the branch point)
editDef - def object into which changes are to be merge
toMergeDef - def object to be merged (source of changes)
For sandbox refresh operation, orgDef
comes from the branch
point, editDef
from the sandbox, toMergeDef
from the
mainline of the repos. With these three defs, we first diff editDef
against orgDef
, producing editDifDetails
.
Similarly, toMergeDef
is diffed against orgDef
,
producing toMergeDifDetails
. The diff engine then
walks through these two sets of diffs and identifies conflicts.
After the conflicts are all resolved, we apply appropriate
changes to editDef
.
applyDiffContents
is called to apply changes to
scalar values. dif
contains the changed values to
be applied to 'this'
object. Use sample code like
the following:
public void applyDiffContents(DifferDetails dif, DiffResolver resolver) { DifferChangeMap detailMap = dif.getDetailMap(); Object[] updValues; // DIFF_STRING_ELEMS from the above example code for (int j = 0; j < DIFF_STRING_ELEMS.length; j++) { if ((updValues = (Object[]) detailMap.getValue(DIFF_STRING_ELEMS[j])) != null) { switch(j) { case 0: setMyStringVal1((String) updValues[0]); break; case 1: setMyStringVal2((String) updValues[0]); break; } } } for (int j = 0; j < DIFF_INT_ELEMS.length; j++) { if ((updValues = (Object[]) detailMap.getValue(DIFF_INT_ELEMS[j])) != null) { switch(j) { case 0: setMyIntVal((Integer) updValues[0]); break; } } } }
Notice that the index specified in the case
statement is the array index of the attr in the String, int,
or boolean array.
applyDiffContents
in interface DiffMergeable
applyDiffContents
in class PersistableDefObject
dif
- changes to be applied to 'this'
defresolver
- the diff resolver used in diff/merge operationpublic 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 DefObject
public OperationDefinitions getOperationDefinitions()
OperationContainer
getOperationDefinitions
in interface OperationContainer
public OperationDefinitions getRowOperationDefinitions()
OperationContainer
getRowOperationDefinitions
in interface OperationContainer
public ExprCodeSource ensureCodeSource(ExprDef exprDef)
ComponentOperationsManager
#updateCodeSource
to update the component
operations manager with any updates that are made to this CodeSource.ensureCodeSource
in interface ComponentOperationsManager
exprDef
- a null exprDef may be used to indicate the a
built-in code source.public ExprCodeSource editCodeSource(ExprCodeSource codeSource)
ComponentOperationsManager
editCodeSource
in interface ComponentOperationsManager
public ExprDef lookupExprDef(OwnerType type, java.lang.String path)
ComponentOperationsManager
lookupExprDef
in interface ComponentOperationsManager
type
- the {@link oracle.jbo.common.OwnerType) of the expressionpath
- the (@link ExprDef#getPath} of the expression