private void relationMateriallyDiffers(IOseeStatement chStmt) throws OseeCoreException { if (!materiallyDifferent) { String currentRationale = chStmt.getString("rationale"); materiallyDifferent |= Strings.isValid(currentRationale) && !currentRationale.equals(netRationale); } }
private void initNextConceptualRelation(int relationTypeId, int artifactAId, int artiafctBId) throws OseeCoreException { obsoleteGammas.clear(); previousRelationTypeId = relationTypeId; previousArtifactAId = artifactAId; previousArtiafctBId = artiafctBId; netGamma = chStmt.getInt("gamma_id"); netRationale = chStmt.getString("rationale"); materiallyDifferent = false; }
private void loadAttributeWasValues( Branch sourceBranch, TransactionRecord transactionId, Set<Integer> artIds, IProgressMonitor monitor, Map<Integer, ChangeBuilder> attributesWasValueCache, boolean hasBranch) throws OseeCoreException, OseeDataStoreException { if (!artIds.isEmpty()) { int sqlParamter; // Will either be a branch id or transaction id Branch wasValueBranch; String sql; if (hasBranch) { wasValueBranch = sourceBranch; sql = ClientSessionManager.getSql(OseeSql.CHANGE_BRANCH_ATTRIBUTE_WAS); sqlParamter = wasValueBranch.getId(); } else { wasValueBranch = transactionId.getBranch(); sql = ClientSessionManager.getSql(OseeSql.CHANGE_TX_ATTRIBUTE_WAS); sqlParamter = transactionId.getId(); } int queryId = ArtifactLoader.getNewQueryId(); Timestamp insertTime = GlobalTime.GreenwichMeanTimestamp(); List<Object[]> datas = new LinkedList<Object[]>(); IOseeStatement chStmt = ConnectionHandler.getStatement(); try { // insert into the artifact_join_table for (int artId : artIds) { datas.add( new Object[] { queryId, insertTime, artId, wasValueBranch.getId(), SQL3DataType.INTEGER }); } ArtifactLoader.insertIntoArtifactJoin(datas); chStmt.runPreparedQuery(sql, sqlParamter, queryId); int previousAttrId = -1; while (chStmt.next()) { int attrId = chStmt.getInt("attr_id"); if (previousAttrId != attrId) { String wasValue = chStmt.getString("was_value"); if (attributesWasValueCache.containsKey(attrId) && attributesWasValueCache.get(attrId) instanceof AttributeChangeBuilder) { AttributeChangeBuilder changeBuilder = (AttributeChangeBuilder) attributesWasValueCache.get(attrId); if (changeBuilder.getArtModType() != ModificationType.NEW) { if (changeBuilder.getModType() != ModificationType.DELETED && changeBuilder.getModType() != ModificationType.ARTIFACT_DELETED) { changeBuilder.setModType(ModificationType.MODIFIED); } changeBuilder.setWasValue(wasValue); } } previousAttrId = attrId; } } } finally { ArtifactLoader.clearQuery(queryId); chStmt.close(); } if (getMonitor() != null) { monitor.worked(12); } } }
private void loadIsValues( Branch sourceBranch, Set<Integer> artIds, ArrayList<ChangeBuilder> changeBuilders, Set<Integer> newAndDeletedArtifactIds, IProgressMonitor monitor, Map<Integer, ChangeBuilder> attributesWasValueCache, Map<Integer, ModificationType> artModTypes, Set<Integer> modifiedArtifacts, IOseeStatement chStmt, boolean hasBranch, long time, TransactionRecord fromTransactionId, TransactionRecord toTransactionId, boolean hasSpecificArtifact) throws OseeCoreException { ModificationType artModType; AttributeChangeBuilder attributeChangeBuilder; try { TransactionDelta txDelta = new TransactionDelta(fromTransactionId, toTransactionId); while (chStmt.next()) { int attrId = chStmt.getInt("attr_id"); int artId = chStmt.getInt("art_id"); int sourceGamma = chStmt.getInt("gamma_id"); int attrTypeId = chStmt.getInt("attr_type_id"); int artTypeId = chStmt.getInt("art_type_id"); String isValue = chStmt.getString("is_value"); ModificationType modificationType = ModificationType.getMod(chStmt.getInt("mod_type")); if (artModTypes.containsKey(artId)) { artModType = artModTypes.get(artId); } else { artModType = ModificationType.MODIFIED; } // This will be false iff the artifact was new and then deleted if (!newAndDeletedArtifactIds.contains(artId)) { // Want to add an artifact changed item once if any attribute was modified && artifact was // not // NEW or DELETED and these changes are not for a specific artifact if (artModType == ModificationType.MODIFIED && !modifiedArtifacts.contains(artId)) { ArtifactChangeBuilder artifactChangeBuilder = new ArtifactChangeBuilder( sourceBranch, ArtifactTypeManager.getType(artTypeId), -1, artId, txDelta, ModificationType.MODIFIED, !hasBranch); changeBuilders.add(artifactChangeBuilder); modifiedArtifacts.add(artId); } // ModTypes will be temporarily set to new and then revised for based on the existence of // a was value if (modificationType == ModificationType.MODIFIED && artModType != ModificationType.INTRODUCED) { modificationType = ModificationType.NEW; } IArtifactType artifactType = ArtifactTypeManager.getType(artTypeId); AttributeType attributeType = AttributeTypeManager.getType(attrTypeId); attributeChangeBuilder = new AttributeChangeBuilder( sourceBranch, artifactType, sourceGamma, artId, txDelta, modificationType, !hasBranch, isValue, "", attrId, attributeType, artModType); changeBuilders.add(attributeChangeBuilder); attributesWasValueCache.put(attrId, attributeChangeBuilder); artIds.add(artId); } } if (getMonitor() != null) { monitor.worked(13); monitor.subTask("Gathering Was values"); } } finally { chStmt.close(); } }