public abstract class OdiProcedure extends oracle.odi.domain.support.AbstractOdiEntity implements IProcedure, IWorkDevelopmentOdiEntity, IFlexFieldUser
OdiProcedure is an abstract class that doesn't represent any actual ODI concept. However, it manages commons requirements, of both OdiUserProcedure and OdiKM (and its subclasses). As such, it provides getter and setter methods for commons properties like name and description. It also provides the notion of defaultTargetTechnology and defaultSourceTechnology, as well as a multiConnectionSupported indicator telling whether the OdiProcedure instance is able to deal with a target DataServer and a source DataServer, or not. Those properties are used during ODI Interface design to assist users by giving it a choice between most appropriates KMs.
An OdiProcedure also provides methods to manage OdiProcedureLines and ProcedureOptions. OdiProcedure is the root entity of the OdiProcedure - OdiProcedureLine - OdiProcedureLineCmd - ProcedureOption aggregate. Thus an instance of OdiProcedure controls life cycle of every instances from this aggregate that belongs to it and provides auditing information about this aggregate. As such, it implements the IOdiEntity interface.
An OdiProcedure has an ID that can be obtained from getProcedureId() method call. This ID is assigned when an OdiProcedure is stored into design time repository. This ID represents the identity of an OdiProcedure. Equals / hashCode method are implemented according this identity.
An OdiProcedure life cycle begins when a user create a concrete implementation such as OdiUserProcedure or OdiKM. It is then typically stored inside ODI design time repository. The users can modify it in order to make it fit their needs. Life cycle ends when a user deletes the concrete implementation from design time repository (i.e. using IOdiEntityManager.remove ()).
OdiKM
,
OdiUserProcedure
,
Serialized FormModifier and Type | Field and Description |
---|---|
static int |
NAME_MAX_LENGTH
Maximum length of an Odi Procedure's name.
|
Modifier and Type | Method and Description |
---|---|
OdiProcedureLine |
addLine(java.lang.Class pLineClass,
java.lang.String pName)
Adds (assigning it the latest position) a new OdiProcedureLine with the
given name and default properties.
|
OdiProcedureLine |
addLine(java.lang.Class pLineClass,
java.lang.String pName,
OdiProcedureLineCmd pTargetCommand,
OdiProcedureLineCmd pSourceCommand,
java.util.Collection pGenerationConditions)
Adds (assigning it the latest position) a new OdiProcedureLine with the
given name, the given target and source commands (possibly nulls) and
options (possibly null) that will condition the generation of the line.
|
OdiProcedureLine |
addLine(java.lang.String pName)
Adds (assigning it the latest position) a new OdiProcedureLine with the
given name and default properties.
|
OdiProcedureLine |
addLine(java.lang.String pName,
OdiProcedureLineCmd pTargetCommand,
OdiProcedureLineCmd pSourceCommand,
java.util.Collection pGenerationConditions)
Adds (assigning it the latest position) a new OdiProcedureLine with the
given name, the given target and source commands (possibly nulls) and
options (possibly null) that will condition the generation of the line.
|
ProcedureOption |
addOption(java.lang.String pOptionName)
Adds (assigning it the lastest position) a new ProcedureOption with the
given name and default OptionType to this OdiProcedure.
|
ProcedureOption |
addOption(java.lang.String pOptionName,
ProcedureOption.OptionType pType,
java.lang.Object pDefaultValue)
Adds (assigning it the lastest position) a new ProcedureOption of the
given type, default value and with the given name to this OdiProcedure.
|
IProcedureLine |
addProcedureLine(java.lang.Class pLineClass,
java.lang.String pName)
Adds a new procedure line to this procedure.
|
IProcedureLine |
addProcedureLine(java.lang.String pName)
Adds a new procedure line to this procedure.
|
void |
addProcedureOption(IProcedureOption opt) |
void |
dumpLineOrder() |
OdiProcedureLine |
duplicateLine(OdiProcedureLine pLine)
Duplicates specified line and adds the new line to the end of list of lines.
|
ProcedureOption |
duplicateOption(ProcedureOption pOption)
Duplicates specified option and adds the new option to the end of list of options.
|
OdiTechnology |
getDefaultSourceTechnology()
Gets the default source technology of this OdiProcedure.
|
OdiTechnology |
getDefaultTargetTechnology()
Gets the default target technology of this OdiProcedure.
|
java.lang.String |
getDescription()
Returns the description of the procedure.
|
java.util.Collection |
getFlexFieldsValues()
Obtains flex fields values related to this
IFlexFieldUser . |
java.io.Serializable |
getInternalId()
Return the internal id of the procedure.
|
java.util.List |
getLines()
Returns an unmodifiable list of OdiProcedureLines held by this
OdiProcedure.
|
abstract java.lang.Class |
getLineType() |
java.lang.String |
getName()
Returns the name of the procedure.
|
ProcedureOption |
getOption(java.lang.String pName)
Retrieves the procedure option which name is the parameter name.
|
java.util.Collection |
getOptionNames()
Returns a collection of names of all this procedure's options.
|
java.util.List |
getOptions()
Returns an unmodifable list of ProcedureOptions held by this
OdiProcedure.
|
java.lang.Number |
getProcedureId()
Return the procedure identifier.
|
IProcedureOption |
getProcedureOption(java.lang.String name)
Gets the procedure option with the specified name
|
java.util.List |
getProcedureOptions()
Gets the list of procedure options for this procedure.
|
IRepositoryEntity |
getSecurityContainer()
Define a generic way to retrieve container for entities.
|
java.util.List |
getTopLevelLines()
Returns a list of OdiProcedureLines held by this
OdiProcedure.
|
void |
initFlexFields(IOdiFlexFieldFinder pOdiFlexFieldFinder)
Initialize flex fields related to this
IFlexFieldUser . |
boolean |
isMultiConnectionSupported()
Return whether this OdiProcedure supports mulitConnection or not.
|
boolean |
isProcedureLine(OdiProcedureLine line)
Return true if the specified line is part of this procedure or a base procedure.
|
void |
moveLineAfter(OdiProcedureLine pSource,
OdiProcedureLine pAfter)
Moves the given OdiProcedureLine after the line specified.
|
void |
moveLineBefore(OdiProcedureLine pSource,
OdiProcedureLine pBefore)
Moves the given Procedure Moves the given OdiProcedureLine before the
line specified.
|
void |
moveLineToBottom(OdiProcedureLine pLine)
Moves the given OdiProcedureLine to the bottom of the list of lines.
|
void |
moveLineToTop(OdiProcedureLine pLine)
Moves the given OdiProcedureLine to the top of the list of lines.
|
void |
moveOptionAfter(ProcedureOption pOption,
ProcedureOption pAfterOption)
Moves the given ProcedureOption after the specified option.
|
void |
moveOptionBefore(ProcedureOption pOption,
ProcedureOption pBeforeOption)
Moves the given ProcedureOption before the specified option.
|
void |
moveOptionToBottom(ProcedureOption pOption)
Moves the given ProcedureOption to the bottom of the list of options.
|
void |
moveOptionToTop(ProcedureOption pOption)
Moves the given ProcedureOption to the top of the list of options.
|
void |
removeLine(OdiProcedureLine pLine)
Removes the given line from this OdiProcedure.
|
void |
removeOption(ProcedureOption pOption)
Remove the specified option from this procedure.
|
void |
removeProcedureLine(IProcedureLine line)
Removes an existing procedure line.
|
void |
setDefaultSourceTechnology(OdiTechnology pTechnology)
Sets the default source technology of this OdiProcedure.
|
void |
setDefaultTargetTechnology(OdiTechnology pTechnology)
Sets the default target technology.
|
void |
setDescription(java.lang.String pDescription)
Sets the description of the procedure.
|
void |
setMultiConnectionSupported(boolean pMultiConnectionSupported)
Defines whether this OdiProcedure supports mulitConnection or not.
|
void |
setName(java.lang.String pName)
Sets the name of the procedure.
|
equals, getFirstDate, getFirstUser, getInternalVersion, getLastDate, getLastUser, hashCode, isInstanceLevelSecurityNeeded, isNew, toString
getGlobalId, getNumericId, hasCustomizedPersistenceMethodFor, invokeCustomizedPersistenceMethodFor
getGlobalId, getNumericId
getFirstDate, getFirstUser, getLastDate, getLastUser, isInstanceLevelSecurityNeeded
getGlobalId
public static final int NAME_MAX_LENGTH
public java.io.Serializable getInternalId()
getInternalId
in interface IRepositoryEntity
getProcedureId()
public java.lang.String getName()
getName
in interface IModelObject
getName
in interface IOdiEntity
getName
in class oracle.odi.domain.support.AbstractOdiEntity
setName(String)
public java.lang.String getDescription()
setDescription(String)
public void setDescription(java.lang.String pDescription)
pDescription
- the descriptiongetDescription()
public void setName(java.lang.String pName)
pName
- the procedure nameDomainRuntimeException
- if the name is invalid.getName()
public abstract java.lang.Class getLineType()
public ProcedureOption getOption(java.lang.String pName)
pName
- the name of the optionaddOption(ProcedureOption)
public java.util.Collection getOptionNames()
getOptions()
,
getOption(String)
public java.util.List getOptions()
The obtained list is ordered by option's positions.
Note that list's indexes and options positions are consistent by not equals since the position of a ProcedureOption can be changed manually from ProcedureOption#setPosition(int). Also, when a ProcedureOption's position is changed, the obtained list is not consistent anymore with the new position.
addOption(ProcedureOption)
,
getOption(String)
public java.util.List getProcedureOptions()
IProcedure
getProcedureOptions
in interface IProcedure
public void addProcedureOption(IProcedureOption opt)
addProcedureOption
in interface IProcedure
public ProcedureOption addOption(java.lang.String pOptionName)
pOptionName
- option nameDomainRuntimeException
- if name is null or empty or if option
already existspublic ProcedureOption addOption(java.lang.String pOptionName, ProcedureOption.OptionType pType, java.lang.Object pDefaultValue)
pOptionName
- Name of option.pType
- Option typepDefaultValue
- Default valuepublic ProcedureOption duplicateOption(ProcedureOption pOption)
pOption
- option to duplicateDomainRuntimeException
- if pOption is null or does not belong to this OdiProcedurepublic void moveOptionBefore(ProcedureOption pOption, ProcedureOption pBeforeOption)
pOption
- option to movepBeforeOption
- move pOption before this optionDomainRuntimeException
- if pOption or pBeforeOption is null or does not belong to this OdiProcedurepublic void moveOptionAfter(ProcedureOption pOption, ProcedureOption pAfterOption)
pOption
- option to movepAfterOption
- move pOption after this optionDomainRuntimeException
- if pOption or pAfterOption is null or does not belong to this OdiProcedurepublic void moveOptionToTop(ProcedureOption pOption)
pOption
- option to moveDomainRuntimeException
- if pOption is null or does not belong to this OdiProcedurepublic void moveOptionToBottom(ProcedureOption pOption)
pOption
- option to moveDomainRuntimeException
- if pOption is null or does not belong to this OdiProcedurepublic void removeOption(ProcedureOption pOption)
The option is also removed from any OdiProcedureLine's generation condition.
pOption
- the option to removeDomainRuntimeException
- if the parameter is null or not
associated to this procedure.public OdiTechnology getDefaultSourceTechnology()
java.lang.IllegalStateException
- if multi connections are not supportedsetDefaultSourceTechnology(oracle.odi.domain.topology.OdiTechnology)
public void setDefaultSourceTechnology(OdiTechnology pTechnology)
Mainly used inside ODI Studio when creating commands.
By default this property is set to null
.
pTechnology
- the default source technologyjava.lang.IllegalStateException
- if multi connections are not supportedgetDefaultSourceTechnology()
public OdiTechnology getDefaultTargetTechnology()
setDefaultTargetTechnology(oracle.odi.domain.topology.OdiTechnology)
public void setDefaultTargetTechnology(OdiTechnology pTechnology)
Mainly used inside ODI Studio when creating commands.
By default this property is set to null
.
pTechnology
- the default target technologygetDefaultTargetTechnology()
public OdiProcedureLine addLine(java.lang.String pName)
pName
- Name of line.DomainRuntimeException
- if the parameter is null or empty.public OdiProcedureLine addLine(java.lang.Class pLineClass, java.lang.String pName)
pName
- Name of line.pLineClass
- The class type of the line.DomainRuntimeException
- if the parameter is null or empty.public OdiProcedureLine addLine(java.lang.String pName, OdiProcedureLineCmd pTargetCommand, OdiProcedureLineCmd pSourceCommand, java.util.Collection pGenerationConditions)
pName
- Name of line.pTargetCommand
- target command, or nullpSourceCommand
- source command, or nullpGenerationConditions
- conditions, or nullDomainRuntimeException
- if the name is null or empty.public OdiProcedureLine addLine(java.lang.Class pLineClass, java.lang.String pName, OdiProcedureLineCmd pTargetCommand, OdiProcedureLineCmd pSourceCommand, java.util.Collection pGenerationConditions)
pLineClass
- The class type of the line to be created.pName
- Name of line.pTargetCommand
- target command, or nullpSourceCommand
- source command, or nullpGenerationConditions
- conditions, or nullDomainRuntimeException
- if the name is null or empty.public OdiProcedureLine duplicateLine(OdiProcedureLine pLine)
pLine
- line to duplicateDomainRuntimeException
- if pLine is null or does not belong to this OdiProcedurepublic java.util.List getLines()
public boolean isProcedureLine(OdiProcedureLine line)
line
- The line to check.public final java.util.List getTopLevelLines()
public void moveLineAfter(OdiProcedureLine pSource, OdiProcedureLine pAfter)
pSource
- source linepAfter
- move source line after this lineDomainRuntimeException
- if source or after do not belong to this
OdiProcedurepublic void dumpLineOrder()
public void moveLineBefore(OdiProcedureLine pSource, OdiProcedureLine pBefore)
pSource
- source linepBefore
- move source line before this lineDomainRuntimeException
- if source or after do not belong to this
OdiProcedurepublic void moveLineToTop(OdiProcedureLine pLine)
pLine
- line to moveDomainRuntimeException
- if pLine is null or does not belong to this OdiProcedurepublic void moveLineToBottom(OdiProcedureLine pLine)
pLine
- line to moveDomainRuntimeException
- if pLine is null or does not belong to this OdiProcedurepublic void removeLine(OdiProcedureLine pLine)
pLine
- line to be removedDomainRuntimeException
- if the given line is null or does not
belong to this OdiProcedure.public void setMultiConnectionSupported(boolean pMultiConnectionSupported)
Setting this will affect source technology. If set to false, source technology will be set to null.
pMultiConnectionSupported
- true
to make this procedure
supports mutliConnection, false
otherwiseisMultiConnectionSupported()
public boolean isMultiConnectionSupported()
true
if the procedure supports mutliConnection,
false
otherwisesetMultiConnectionSupported(boolean)
public java.lang.Number getProcedureId()
public IRepositoryEntity getSecurityContainer()
IRepositoryEntity
getSecurityContainer
in interface IRepositoryEntity
public java.util.Collection getFlexFieldsValues()
IFlexFieldUser
.
Method initFlexFields(IOdiFlexFieldFinder)
should be
called before.getFlexFieldsValues
in interface IFlexFieldUser
public void initFlexFields(IOdiFlexFieldFinder pOdiFlexFieldFinder)
IFlexFieldUser
IFlexFieldUser
.initFlexFields
in interface IFlexFieldUser
pOdiFlexFieldFinder
- OdiFlexField
finder to be used to query flex fieldspublic IProcedureLine addProcedureLine(java.lang.String pName)
IProcedure
addProcedureLine
in interface IProcedure
pName
- the name for the new procedure line.public IProcedureLine addProcedureLine(java.lang.Class pLineClass, java.lang.String pName)
IProcedure
addProcedureLine
in interface IProcedure
pLineClass
- The class type of the new line.pName
- the name of the new line.public void removeProcedureLine(IProcedureLine line)
IProcedure
removeProcedureLine
in interface IProcedure
line
- the line to be removed.public IProcedureOption getProcedureOption(java.lang.String name)
IProcedure
getProcedureOption
in interface IProcedure
name
- the name of the procedure option to be retrieved.