protected boolean update(final Long objId, final AppDetails definition, final MALInteraction interaction) { // requirement: 3.3.2.5 Boolean success = this.updateDef(objId, definition); if (super.getArchiveService() != null) { // It should also update on the COM Archive try { AppDetailsList defs = new AppDetailsList(); defs.add(definition); final IdentifierList domain = ConfigurationProviderSingleton.getDomain(); ArchiveDetails archiveDetails = HelperArchive.getArchiveDetailsFromArchive(super.getArchiveService(), AppsLauncherHelper.APP_OBJECT_TYPE, domain, objId); ArchiveDetailsList archiveDetailsList = new ArchiveDetailsList(); archiveDetailsList.add(archiveDetails); super.getArchiveService().update( AppsLauncherHelper.APP_OBJECT_TYPE, domain, archiveDetailsList, defs, interaction); } catch (MALException ex) { Logger.getLogger(AppsLauncherManager.class.getName()).log(Level.SEVERE, null, ex); return false; } catch (MALInteractionException ex) { Logger.getLogger(AppsLauncherManager.class.getName()).log(Level.SEVERE, null, ex); return false; } } return success; }
final ArchiveDetailsList groupDetailsList = HelperArchive.getArchiveDetailsListFromArchive(archiveService, GroupHelper.GROUPDEFINITION_OBJECT_TYPE, domain, groupDefIds); ArchiveDetailsList groupDefsReferencingGroupIdentity = new ArchiveDetailsList(); groupDefsReferencingGroupIdentity.add(groupDefDetails); if (groupDefsReferencingGroupIdentity.isEmpty()) { return null; for (int i = 0; i < groupDefsReferencingGroupIdentity.size(); i++) { ArchiveDetails groupDefDetails = groupDefsReferencingGroupIdentity.get(i); if (groupDefDetails.getTimestamp().getValue() > latestTimestamp) { latestDefIndex = i; long latestGroupDefId = groupDefsReferencingGroupIdentity.get(latestDefIndex).getInstId(); return latestGroupDefId;
/** * Decodes the value of this object using the provided MALDecoder. * @param decoder decoder - the decoder to use for decoding. * @return Returns this object. * @throws org.ccsds.moims.mo.mal.MALException if any decoding errors are detected. */ public org.ccsds.moims.mo.mal.structures.Element decode(org.ccsds.moims.mo.mal.MALDecoder decoder) throws org.ccsds.moims.mo.mal.MALException { org.ccsds.moims.mo.mal.MALListDecoder listDecoder = decoder.createListDecoder(this); int decodedSize = listDecoder.size(); if (decodedSize > 0) { ensureCapacity(decodedSize); } while (listDecoder.hasNext()) { add((org.ccsds.moims.mo.com.archive.structures.ArchiveDetails) listDecoder.decodeNullableElement(new org.ccsds.moims.mo.com.archive.structures.ArchiveDetails())); } return this; }
public static UIntegerList checkForDuplicates(ArchiveDetailsList archiveDetailsList) { UIntegerList dupList = new UIntegerList(); for (int i = 0; i < archiveDetailsList.size() - 1; i++) { if (archiveDetailsList.get(i).getInstId().intValue() == 0) { // Wildcard? Then jump over it continue; } for (int j = i + 1; j < archiveDetailsList.size(); j++) { if (archiveDetailsList.get(i).getInstId().intValue() == archiveDetailsList.get(j).getInstId().intValue()) { dupList.add(new UInteger(j)); } } } return dupList; }
/** * Creates an instance of the source type using the default constructor. It is a generic factory method. * @return A new instance of the source type with default field values. */ public org.ccsds.moims.mo.mal.structures.Element createElement() { return new org.ccsds.moims.mo.com.archive.structures.ArchiveDetailsList(); }
ArchiveDetailsList outArchiveDetailsList = new ArchiveDetailsList(); ElementList outMatchedObjects = null; outArchiveDetailsList.add(null); // requirement: 3.4.3.2.12 outArchiveDetailsList.add(perObj.getArchiveDetails()); // requirement: 3.4.3.2.9 if (outArchiveDetailsList.isEmpty()) {
/** * Generates a ArchiveDetailsList structure with one ArchiveDetails object. * The object instance identifier will be set as 0. The operation will use * the submitted related, source, network, provider and objId fields to * fill-in the object. The fields network and provider are not set. * * @param related Related field * @param source Source field * @param network Network field * @param provider Provider field * @param objId Object instance identifier field * @return The ArchiveDetailsList object */ public static ArchiveDetailsList generateArchiveDetailsList(final Long related, final ObjectId source, final Identifier network, final URI provider, final Long objId) { final ArchiveDetailsList archiveDetailsList = HelperArchive.generateArchiveDetailsList( related, source, network, provider ); archiveDetailsList.get(0).setInstId(objId); return archiveDetailsList; }
/** * Encodes the value of this object using the provided MALEncoder. * @param encoder encoder - the encoder to use for encoding. * @throws org.ccsds.moims.mo.mal.MALException if any encoding errors are detected. */ public void encode(org.ccsds.moims.mo.mal.MALEncoder encoder) throws org.ccsds.moims.mo.mal.MALException { org.ccsds.moims.mo.mal.MALListEncoder listEncoder = encoder.createListEncoder(this); for (int i = 0; i < size(); i++) { listEncoder.encodeNullableElement((org.ccsds.moims.mo.com.archive.structures.ArchiveDetails) get(i)); } listEncoder.close(); }
/** * Creates an instance of this type using the default constructor. It is a generic factory method. * @return A new instance of this type with default field values. */ public org.ccsds.moims.mo.mal.structures.Element createElement() { return new ArchiveDetailsList(); }
/** * Get the ArchiveDetails object of a retrieved COM object from the Archive * * @param archiveService The Archive * @param objType The object Type of the COM object * @param domain The domain of the COM object * @param objId The object instance identifier of the COM object * @return The ArchiveDetails object of the retrieved COM objects */ public static ArchiveDetails getArchiveDetailsFromArchive(Object archiveService, final ObjectType objType, final IdentifierList domain, final Long objId) { final LongList objIds = new LongList(); objIds.add(objId); final ArchiveDetailsList archiveDetailsList = (ArchiveDetailsList) getFromArchive(archiveService, objType, domain, objIds, ToBeReturned.ARCHIVE_DETAILS); return archiveDetailsList.get(0); }
/** * Generates a ArchiveDetailsList structure with one ArchiveDetails object. * The object instance identifier will be set as 0. The operation will use * the submitted related, source, network and provider fields to fill-in the * object. The fields network and provider are not set. * * @param related Related field * @param source Source field * @param network Network field * @param provider Provider field * @return The ArchiveDetailsList object */ public static ArchiveDetailsList generateArchiveDetailsList(final Long related, final ObjectId source, final Identifier network, final URI provider) { final ArchiveDetails archiveDetails = new ArchiveDetails(); archiveDetails.setInstId(new Long(0)); archiveDetails.setDetails(new ObjectDetails(related, source)); archiveDetails.setNetwork(network); archiveDetails.setTimestamp(HelperTime.getTimestamp()); archiveDetails.setProvider(provider); final ArchiveDetailsList archiveDetailsList = new ArchiveDetailsList(); archiveDetailsList.add(archiveDetails); return archiveDetailsList; }
protected synchronized LongList insertEntries(final ObjectType objType, final IdentifierList domain, final ArchiveDetailsList lArchiveDetails, final ElementList objects, final MALInteraction interaction) { final LongList objIds = new LongList(lArchiveDetails.size()); final ArrayList<COMObjectEntity> perObjsEntities = new ArrayList<COMObjectEntity>(lArchiveDetails.size()); final int domainId = this.fastDomain.getDomainId(domain); final int objTypeId = this.fastObjectType.getObjectTypeId(objType); for (int i = 0; i < lArchiveDetails.size(); i++) { final int providerURIId = this.fastProviderURI.getProviderURIId(lArchiveDetails.get(i).getProvider()); final int networkId = this.fastNetwork.getNetworkId(lArchiveDetails.get(i).getNetwork()); final SourceLinkContainer sourceLink = this.createSourceContainerFromObjectId(lArchiveDetails.get(i).getDetails().getSource()); final Long objId = this.fastObjId.getUniqueObjId(objTypeId, domainId, lArchiveDetails.get(i).getInstId()); domainId, objId, lArchiveDetails.get(i).getTimestamp().getValue(), providerURIId, networkId, sourceLink, lArchiveDetails.get(i).getDetails().getRelated(), objBody) );
/** * Called by the MAL when a PROGRESS update is received from a provider. * @param msgHeader msgHeader The header of the received message. * @param body body The body of the received message. * @param qosProperties qosProperties The QoS properties associated with the message. * @throws org.ccsds.moims.mo.mal.MALException if an error is detected processing the message. */ public final void progressUpdateReceived(org.ccsds.moims.mo.mal.transport.MALMessageHeader msgHeader, org.ccsds.moims.mo.mal.transport.MALMessageBody body, java.util.Map qosProperties) throws org.ccsds.moims.mo.mal.MALException { switch (msgHeader.getOperation().getValue()) { case org.ccsds.moims.mo.com.archive.ArchiveHelper._QUERY_OP_NUMBER: queryUpdateReceived(msgHeader, (org.ccsds.moims.mo.com.structures.ObjectType) body.getBodyElement(0, new org.ccsds.moims.mo.com.structures.ObjectType()), (org.ccsds.moims.mo.mal.structures.IdentifierList) body.getBodyElement(1, new org.ccsds.moims.mo.mal.structures.IdentifierList()), (org.ccsds.moims.mo.com.archive.structures.ArchiveDetailsList) body.getBodyElement(2, new org.ccsds.moims.mo.com.archive.structures.ArchiveDetailsList()), (org.ccsds.moims.mo.mal.structures.ElementList) body.getBodyElement(3, null), qosProperties); break; default: throw new org.ccsds.moims.mo.mal.MALException("Consumer adapter was not expecting operation number " + msgHeader.getOperation().getValue()); } }
archDetails.get(0).setInstId(objId);
/** * Please consider using the same method but with the provider URI directly * as argument instead of the connectionDetails object * * @param related Related field * @param source Source field * @param connectionDetails The details of the connection * @return The ArchiveDetailsList object */ @Deprecated public static ArchiveDetailsList generateArchiveDetailsList(final Long related, final ObjectId source, final SingleConnectionDetails connectionDetails) { final ArchiveDetails archiveDetails = new ArchiveDetails(); archiveDetails.setInstId(new Long(0)); archiveDetails.setDetails(new ObjectDetails(related, source)); archiveDetails.setNetwork(ConfigurationProviderSingleton.getNetwork()); archiveDetails.setTimestamp(HelperTime.getTimestamp()); archiveDetails.setProvider(connectionDetails.getProviderURI()); final ArchiveDetailsList archiveDetailsList = new ArchiveDetailsList(); archiveDetailsList.add(archiveDetails); return archiveDetailsList; }
protected void updateEntries(final ObjectType objType, final IdentifierList domain, final ArchiveDetailsList lArchiveDetails, final ElementList objects, final MALInteraction interaction) { final int domainId = this.fastDomain.getDomainId(domain); final Integer objTypeId = this.fastObjectType.getObjectTypeId(objType); final ArrayList<COMObjectEntity> newObjs = new ArrayList<COMObjectEntity>(); final LongList objIds = new LongList(); // Generate the object Ids if needed and the persistence objects to be stored for (int i = 0; i < lArchiveDetails.size(); i++) { final Integer providerURIId = this.fastProviderURI.getProviderURIId(lArchiveDetails.get(i).getProvider()); final Integer networkId = this.fastNetwork.getNetworkId(lArchiveDetails.get(i).getNetwork()); // If there are no objects in the list, inject null... Object objBody = (objects == null) ? null : ((objects.get(i) == null) ? null : objects.get(i)); SourceLinkContainer sourceLink = this.createSourceContainerFromObjectId(lArchiveDetails.get(i).getDetails().getSource()); final COMObjectEntity newObj = new COMObjectEntity( objTypeId, domainId, lArchiveDetails.get(i).getInstId(), lArchiveDetails.get(i).getTimestamp().getValue(), providerURIId, networkId, sourceLink, lArchiveDetails.get(i).getDetails().getRelated(), objBody); // 0.170 ms newObjs.add(newObj); objIds.add(lArchiveDetails.get(i).getInstId()); } Runnable publishEvents = this.generatePublishEventsThread(ArchiveHelper.OBJECTUPDATED_OBJECT_TYPE, objType, domain, objIds, interaction); this.dbProcessor.update(newObjs, publishEvents); }
/** * Called by the MAL when an INVOKE response is received from a provider. * @param msgHeader msgHeader The header of the received message. * @param body body The body of the received message. * @param qosProperties qosProperties The QoS properties associated with the message. * @throws org.ccsds.moims.mo.mal.MALException if an error is detected processing the message. */ public final void invokeResponseReceived(org.ccsds.moims.mo.mal.transport.MALMessageHeader msgHeader, org.ccsds.moims.mo.mal.transport.MALMessageBody body, java.util.Map qosProperties) throws org.ccsds.moims.mo.mal.MALException { switch (msgHeader.getOperation().getValue()) { case org.ccsds.moims.mo.com.archive.ArchiveHelper._RETRIEVE_OP_NUMBER: retrieveResponseReceived(msgHeader, (org.ccsds.moims.mo.com.archive.structures.ArchiveDetailsList) body.getBodyElement(0, new org.ccsds.moims.mo.com.archive.structures.ArchiveDetailsList()), (org.ccsds.moims.mo.mal.structures.ElementList) body.getBodyElement(1, null), qosProperties); break; case org.ccsds.moims.mo.com.archive.ArchiveHelper._COUNT_OP_NUMBER: countResponseReceived(msgHeader, (org.ccsds.moims.mo.mal.structures.LongList) body.getBodyElement(0, new org.ccsds.moims.mo.mal.structures.LongList()), qosProperties); break; default: throw new org.ccsds.moims.mo.mal.MALException("Consumer adapter was not expecting operation number " + msgHeader.getOperation().getValue()); } }
archiveDetails.get(0).setInstId(objId); // requirement: 3.5.2.4 archiveDetails.get(0).setNetwork(interaction.getMessageHeader().getNetworkZone()); // RID raised to create this requirement! archiveDetails.get(0).setProvider(interaction.getMessageHeader().getURIFrom()); // RID raised to create this requirement!
ArchiveDetailsList archiveDetailsList = new ArchiveDetailsList(); archiveDetailsList.add(archiveDetails);
if (lArchiveDetailsList.size() != lElementList.size()) { // requirement: ------ (proposed, does not exist yet) UIntegerList error = new UIntegerList(); int size1 = (lArchiveDetailsList.size() < lElementList.size()) ? lArchiveDetailsList.size() : lElementList.size(); int size2 = (lArchiveDetailsList.size() > lElementList.size()) ? lArchiveDetailsList.size() : lElementList.size(); for (int index = 0; index < lArchiveDetailsList.size(); index++) { ArchiveDetails tmpArchiveDetails = lArchiveDetailsList.get(index);