Interface MeterAdminSession
- All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession
- All Known Subinterfaces:
MeterBatchAdminSession
This session creates, updates, and deletes Meters . The data
for create and update is provided by the consumer via the form object.
OsidForms are requested for each create or update and may not be
reused.
Create and update operations differ in their usage. To create a
Meter , a MeterForm is requested using
getMeterFormForCreate() specifying the desired record Types or
none if no record Types are needed. The returned MeterForm
will indicate that it is to be used with a create operation and can be
used to examine metdata or validate data prior to creation. Once the
MeterForm is submiited to a create operation, it cannot be reused
with another create operation unless the first operation was unsuccessful.
Each MeterForm corresponds to an attempted transaction.
For updates, MeterForms are requested to the Meter
Id that is to be updated using getMeterFormForUpdate() .
Similarly, the MeterForm has metadata about the data that can be
updated and it can perform validation before submitting the update. The
MeterForm can only be used once for a successful update and cannot
be reused.
The delete operations delete Meters . To unmap a Meter
from the current Utility , the
MeterUtilityAssignmentSession should be used. These delete operations
attempt to remove the Meter itself thus removing it from all known
Utility catalogs.
This session includes an Id aliasing mechanism to assign an
external Id to an internally assigned Id.
-
Method Summary
Modifier and TypeMethodDescriptionvoidaliasMeter(Id meterId, Id aliasId) Adds anIdto aMeterfor the purpose of creating compatibility.booleanTests if this user can createMetersA return of true does not guarantee successful authorization.booleancanCreateMeterWithRecordTypes(Type[] meterRecordTypes) Tests if this user can create a singleMeterusing the desired record types.booleanTests if this user can deleteMeters.booleanTests if this user can manageIdaliases forMeters.booleanTests if this user can updateMeters.createMeter(MeterForm meterForm) Creates a newMeter.voiddeleteMeter(Id meterId) Deletes aMeter.getMeterFormForCreate(Type[] meterRecordTypes) Gets the meter form for creating new meters.getMeterFormForUpdate(Id meterId) Gets the meter form for updating an existing meter.Gets theUtilityassociated with this session.Gets theUtilityIdassociated with this session.voidupdateMeter(MeterForm meterForm) Updates an existing meter.Methods inherited from interface OsidSession
closeMethods inherited from interface OsidSession
getAuthenticatedAgent, getAuthenticatedAgentId, getClockRate, getDate, getEffectiveAgent, getEffectiveAgentId, getFormatType, getLocale, isAuthenticated, startTransaction, supportsTransactionsModifier and TypeMethodDescriptionGets the agent authenticated to this session.Gets theIdof the agent authenticated to this session.Gets the rate of the service clock.getDate()Gets the service date which may be the current date or the effective date in which this session exists.Gets the effective agent in use by this session.Gets theIdof the effective agent in use by this session.Gets theDisplayTextformatTypepreference in effect for this session.Gets the locale indicating the localization preferences in effect for this session.booleanTests if an agent is authenticated to this session.Starts a new transaction for this sesson.booleanTests for the availability of transactions.
-
Method Details
-
getUtilityId
Id getUtilityId()Gets theUtilityIdassociated with this session.- Returns:
- the
Utility Idassociated with this session - Compliance:
mandatory- This method must be implemented.
-
getUtility
Gets theUtilityassociated with this session.- Returns:
- the
Utilityassociated with this session - Throws:
OperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
canCreateMeters
boolean canCreateMeters()Tests if this user can createMetersA return of true does not guarantee successful authorization. A return of false indicates that it is known creating aMeterwill result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer create operations to an unauthorized user.- Returns:
falseifMetercreation is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
canCreateMeterWithRecordTypes
Tests if this user can create a singleMeterusing the desired record types. WhileMeteringManager.getMeterRecordTypes()can be used to examine which records are supported, this method tests which record(s) are required for creating a specificMeter. Providing an empty array tests if aMetercan be created with no records.- Parameters:
meterRecordTypes- array of meter record types- Returns:
trueifMetercreation using the specified recordTypesis supported,falseotherwise- Throws:
NullArgumentException-meterRecordTypesisnull- Compliance:
mandatory- This method must be implemented.
-
getMeterFormForCreate
MeterForm getMeterFormForCreate(Type[] meterRecordTypes) throws OperationFailedException, PermissionDeniedException Gets the meter form for creating new meters. A new form should be requested for each create transaction.- Parameters:
meterRecordTypes- array of meter record types- Returns:
- the meter form
- Throws:
NullArgumentException-meterRecordTypesisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException- unable to get form for requested record types- Compliance:
mandatory- This method must be implemented.
-
createMeter
Creates a newMeter.- Parameters:
meterForm- the form for thisMeter- Returns:
- the new
Meter - Throws:
IllegalStateException-meterFormalready used in a create transactionInvalidArgumentException- one or more of the form elements is invalidNullArgumentException-meterFormisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException-meterFormdid not originate fromgetMeterFormForCreate()- Compliance:
mandatory- This method must be implemented.
-
canUpdateMeters
boolean canUpdateMeters()Tests if this user can updateMeters. A return of true does not guarantee successful authorization. A return of false indicates that it is known updating aMeterwill result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer update operations to an unauthorized user.- Returns:
falseifMetermodification is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
getMeterFormForUpdate
MeterForm getMeterFormForUpdate(Id meterId) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets the meter form for updating an existing meter. A new meter form should be requested for each update transaction.- Parameters:
meterId- theIdof theMeter- Returns:
- the meter form
- Throws:
NotFoundException-meterIdis not foundNullArgumentException-meterIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
updateMeter
Updates an existing meter.- Parameters:
meterForm- the form containing the elements to be updated- Throws:
IllegalStateException-meterFormalready used in an update transactionInvalidArgumentException- the form contains an invalid valueNullArgumentException-meterFormisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException-meterFormdid not originate fromgetMeterFormForUpdate()- Compliance:
mandatory- This method must be implemented.
-
canDeleteMeters
boolean canDeleteMeters()Tests if this user can deleteMeters. A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting aMeterwill result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer delete operations to an unauthorized user.- Returns:
falseifMeterdeletion is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
deleteMeter
void deleteMeter(Id meterId) throws NotFoundException, OperationFailedException, PermissionDeniedException Deletes aMeter.- Parameters:
meterId- theIdof theMeterto remove- Throws:
NotFoundException-meterIdis not foundNullArgumentException-meterIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
canManageMeterAliases
boolean canManageMeterAliases()Tests if this user can manageIdaliases forMeters. A return of true does not guarantee successful authorization. A return of false indicates that it is known changing an alias will result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer alias operations to an unauthorized user.- Returns:
falseifMeteraliasing is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
aliasMeter
void aliasMeter(Id meterId, Id aliasId) throws AlreadyExistsException, NotFoundException, OperationFailedException, PermissionDeniedException Adds anIdto aMeterfor the purpose of creating compatibility. The primaryIdof theMeteris determined by the provider. The newIdperforms as an alias to the primaryId. If the alias is a pointer to another meter, it is reassigned to the given meterId.- Parameters:
meterId- theIdof aMeteraliasId- the aliasId- Throws:
AlreadyExistsException-aliasIdis already assignedNotFoundException-meterIdnot foundNullArgumentException-meterIdoraliasIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-